315496c08a82010177c28cbb1878cacffdbd8730
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2
3         * lra-constraints.c (get_equiv): Don't return memory equivalence
4         when targetm.cannot_substitute_mem_equiv_p is true.
5         * target.def (cannot_substitute_mem_equiv_p): New hook.
6         * config/sh/sh.c (sh_cannot_substitute_mem_equiv_p): New function.
7         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
8         * doc/tm.texi.in (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): New hook.
9         * doc/tm.texi: Regenerate.
10
11 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
12
13         * lra-constraints.c (process_address_1): Swap base_term and
14         index_term if INDEX_REG_CLASS is assigned to base_term already
15         when INDEX_REG_CLASS is a single register class.
16
17 2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>
18
19         * lra-constraints.c (lra-constraints.c): Exchange places of sclass
20         and dclass.
21
22 2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>
23
24         PR rtl-optimization/64291
25         * lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE.
26         (create_cands): Process only output reload insn with potential
27         cands.
28
29 2014-12-18  H.J. Lu  <hongjiu.lu@intel.com>
30
31         * config/i386/i386.c (ix86_expand_call): Skip setting up RAX
32         register for -mskip-rax-setup when there are no parameters
33         passed in vector registers.
34         * config/i386/i386.opt (mskip-rax-setup): New option.
35         * doc/invoke.texi: Document -mskip-rax-setup.
36
37 2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>
38
39         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift
40         by 64 by moving const0_rtx.
41         (aarch64_ushr_simddi): Delete.
42
43         * config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64.
44
45 2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>
46
47         * config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64.
48
49         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift
50         amount to 63 if was 64.
51         (aarch64_sshr_simddi): Remove.
52
53 2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
54
55         * gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL):
56         Define.
57         (aarch64_min_divisions_for_recip_mul): New function.
58
59 2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
60
61         * config/aarch64/aarch64-protos.h (tune-params): Add code alignment
62         tuning parameters.
63         * gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment
64         tuning parameters.
65         (cortexa53_tunings): Likewise.
66         (cortexa57_tunings): Likewise.
67         (thunderx_tunings): Likewise.
68         (aarch64_override_options): Use new alignment tunings.
69
70 2014-12-18  Martin Liska  <mliska@suse.cz>
71
72         PR tree-optimization/64330
73         * ipa-icf.c (sem_variable::parse): Add checking
74         for externally visible symbols and do not introduce
75         an alias for an external declaration.
76
77 2014-12-18  Jan Hubicka  <hubicka@ucw.cz>
78
79         PR bootstrap/63573
80         * tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p
81         predicate.
82
83 2014-12-18  Martin Liska  <mliska@suse.cz>
84
85         PR ipa/64146
86         * ipa-icf.c (sem_function::merge): Check for
87         decl_binds_to_current_def_p is newly added to merge operation.
88
89 2014-12-18  Bin Cheng  <bin.cheng@arm.com>
90
91         PR tree-optimization/62178
92         * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function.
93         (iv_ca_replace): New function.
94         (try_improve_iv_set): New parameter try_replace_p.
95         Break local optimal fixed-point by calling iv_ca_replace.
96         (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set.
97
98 2014-12-17  Dehao Chen  <dehao@google.com>
99
100         * auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right
101         place.
102         (auto_profile): Recompute inline summary after processing cgraph node.
103
104 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
105
106         PR target/51244
107         * config/sh/sh_treg_combine.cc (is_conditional_insn): New function.
108         (cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it
109         accordingly in constructor.
110         (cbranch_trace::branch_condition_rtx_ref): New function.
111         (cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref.
112         (sh_treg_combine::try_invert_branch_condition): Invert condition rtx
113         in insn using reversed_comparison_code and validate_change instead of
114         invert_jump_1.
115         (sh_treg_combine::execute): Look for conditional insns in basic blocks
116         in addition to conditional branches.
117         * config/sh/sh.md (*movsicc_div0s): Remove combine patterns.
118
119 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
120
121         PR target/51244
122         * config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch):
123         Combine ccreg inversion and cbranch into inverted cbranch.
124
125 2014-12-17  Vladimir Makarov  <vmakarov@redhat.com>
126
127         * lra-constraints.c (process_alt_operands): Remove non
128         allocatable hard regs when considering
129         ira_prohibited_class_mode_regs.
130
131 2014-12-17  Jan Hubicka  <hubicka@ucw.cz>
132
133         * sreal.h (sreal::normalize): Implement inline.
134         (sreal::normalize_up): New function.
135         (sreal::normalize_down): New function.
136         * sreal.c (sreal::normalize): Remove.
137
138 2014-12-17  James Greenhalgh  <james.greenhalgh@arm.com>
139
140         * config/aarch64/aarch64.md (generic_sched): Delete it.
141
142 2014-12-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
143
144         * config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix
145         unused argument warning.
146
147 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
148
149         * dwarf2out.h (struct array_descr_info): Remove the base_decl field.
150         * dwarf2out.c (enum dw_scalar_form): New.
151         (struct loc_descr_context): New.
152         (add_scalar_info): New.
153         (add_bound_info): Add a context parameter.  Use add_scalar_info.
154         (loc_list_from_tree): Add a context parameter.  Handle PLACEHOLDER_EXPR
155         nodes for type-related expressions.  Likewise for base declarations.
156         (loc_descriptor_from_tree): Add a context parameter.
157         (subrange_type_die): Update calls to add_bound_info.
158         (tls_mem_loc_descriptor): Likewise.
159         (loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context
160         parameter.  Update calls to loc_list_from_tree.
161         (add_subscript_info): Update calls to add_bound_info.
162         (gen_array_type_die): Update calls to loc_list_from_tree and to
163         add_bound_info.
164         (descr_info_loc): Remove.
165         (add_descr_info_field): Remove.
166         (gen_descr_array_type_die): Switch add_descr_info_field calls into
167         add_scalar_info/add_bound_info ones.
168         (gen_subprogram_die): Update calls to loc_list_from_tree.
169         (gen_variable_die): Likewise.
170
171 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
172
173         * dwarf2out.c (print_loc_descr): New.
174         (print_dw_val): New.
175         (print_attribute): New.
176         (print_loc_descr): New.
177         (print_die): Use print_dw_val.
178         (debug_dwarf_loc_descr): New.
179         * dwarf2out.h (debug_dwarf_loc_descr): New declaration.
180
181 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
182
183         * dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook
184         even when (dwarf_version < 3 && dwarf_strict).
185         (gen_descr_array_die): Do not output DW_AT_data_locationn,
186         DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF
187         attributes when (dwarf_version < 3 && dwarf_strict).
188
189 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
190
191         * dwarf2out.h (enum array_descr_ordering): New.
192         (array_descr_dimen): Add a bounds_type structure field.
193         (struct array_descr_info): Add a field to hold index type information
194         and another one to hold ordering information.
195         * dwarf2out.c (gen_type_die_with_usage): Get the main variant before
196         invoking the array descriptor language hook.  Initialize the
197         array_descr_info structure before calling the lang-hook.
198         (gen_descr_array_type_die): Use gen_type_die if not processing the main
199         type variant.  Replace Fortran-specific code with generic one using
200         this new field.  Add a GNAT descriptive type, if any.  Output type
201         information for the array bound subrange, if any.
202
203 2014-12-17  H.J. Lu  <hongjiu.lu@intel.com>
204             Jakub Jelinek  <jakub@redhat.com>
205             Uros Bizjak  <ubizjak@gmail.com>
206
207         PR target/61296
208         * config/i386/i386-opts.h (ix86_align_data): New enum.
209         * config/i386/i386.c (ix86_data_alignment): Return the ABI
210         alignment value for -malign-data=abi, the cachine line size
211         for -malign-data=cacheline and the older GCC compatible
212         alignment value for for -malign-data=compat.
213         * config/i386/i386.opt (malign-data=): New.
214         * doc/invoke.texi: Document -malign-data=.
215
216 2014-12-17  Marek Polacek  <polacek@redhat.com>
217
218         PR middle-end/63568
219         * match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern.
220
221 2014-12-17  Jakub Jelinek  <jakub@redhat.com>
222
223         PR tree-optimization/64322
224         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
225         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
226
227 2014-12-17  Tobias Burnus  <burnus@net-b.de>
228
229         PR fortran/54687
230         * flag-types.h (gfc_init_local_real, gfc_fcoarray,
231         gfc_convert): New enums; moved from fortran/.
232
233 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
234
235         * fibonacci_heap.h (min): Return m_data instead of non-existing data.
236
237 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
238
239         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider
240         return values of const calls as constants.
241         (estimate_function_body_sizes): Expect calls to have false predicates.
242
243 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
244
245         * hwint.c (abs_hwi, absu_hwi): Move to ...
246         * hwint.h (abs_hwi, absu_hwi): ... here; make inline.
247
248 2014-12-16  Marek Polacek  <polacek@redhat.com>
249
250         PR middle-end/64309
251         * match.pd: Add ((1 << A) & 1) != 0 -> A == 0 and
252         ((1 << A) & 1) == 0 -> A != 0.
253
254 2014-12-16  Richard Biener  <rguenther@suse.de>
255
256         * genmatch.c (parser::parser): Initialize capture_ids.
257         (parser::parse_pattern): Properly allocate capture_ids before
258         using them.  Set capture_ids to zero when its lifetime is
259         supposed to finish.
260         (parser::parse_simplify): Allocate capture_ids only if
261         required.
262
263 2014-12-16  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
264
265         * sreal.c: Include math.h later.
266
267 2014-12-16  Felix Yang  <felix.yang@huawei.com>
268
269         PR rtl-optimization/64240
270         * ddg.c (mark_mem_use): Check *iter instead of *x.
271
272 2014-12-16  Martin Liska  <mliska@suse.cz>
273
274         PR ipa/64278
275         * sreal.c (sreal::operator*): Replace std::abs with absu_hwi.
276
277 2014-12-16  Igor Zamyatin  <igor.zamyatin@intel.com>
278
279         * config/i386/i386.c (ix86_address_cost): Add explicit restriction
280         to RTL level for the check for PIC register.
281
282 2014-12-16  Uros Bizjak  <ubizjak@gmail.com>
283
284         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ...
285         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): ... and here ...
286         * config/i386/gnu-user-common.h (TARGET_CAN_SPLIT_STACK): ... to here.
287
288 2014-12-16  Chung-Ju Wu  <jasonwucj@gmail.com>
289
290         PR target/64217
291         * config/nds32/nds32.md (casesi_internal): Add '=r' for clobber
292         register constraint.
293
294 2014-12-15  DJ Delorie  <dj@redhat.com>
295
296         * config/rl78/rl78.h: Remove SHORT_IMMEDIATES_SIGN_EXTEND.
297
298 2014-12-15  Jan Hubicka  <hubicka@ucw.cz>
299
300         PR lto/64043
301         * tree-streamer.c (preload_common_nodes): Skip preloading
302         of main_identifier_node, pid_type and optimization/option nodes.
303
304 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
305
306         PR rtl-optimization/63397
307         * ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use
308         int64_t.
309         (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
310         * ira.c (ira_overall_cost, ira_overall_cost_before): Ditto.
311         (ira_reg_cost, ira_mem_cost): Ditto.
312         (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
313         (calculate_allocation_cost, do_reload): Use the right
314         format for int64_t values.
315
316 2014-12-15  Jan Hubicka  <hubicka@ucw.cz>
317
318         * sreal.h (to_double): New method.
319         (shift): Do not ICE on 0.
320         * sreal.c: Include math.h
321         (sreal::to_double): New.
322
323 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
324
325         PR rtl-optimization/64316
326         * simplify-rtx.c (simplify_relational_operation_1): For
327         (eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use
328         CONST0_RTX instead of const0_rtx.
329
330 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
331
332         PR target/62642
333         * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
334
335 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
336
337         * ira-int.h (ira_prohibited_class_mode_regs): Remove.
338         (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
339         ...
340         * ira.h (struct target_ira): ... here.
341         (ira_prohibited_class_mode_regs): Define.
342         * lra-constraints.c (process_alt_operands): Add one more condition
343         to refuse alternative when reload pseudo of given class can not
344         hold value of given mode.
345
346 2014-12-15  Richard Biener  <rguenther@suse.de>
347
348         PR tree-optimization/64312
349         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
350         vuse_ssa_val as callback to walk_non_aliased_vuses.
351         (vn_reference_lookup): Likewise.
352
353 2014-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
354
355         * gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot,
356         *add<mode>3_imm_dot2): Change the constraint for the second
357         alternative for operand 1 from "r" to "b".
358
359 2014-12-15  Richard Biener  <rguenther@suse.de>
360
361         * vec.h (vec::safe_grow): Guard against a grow to zero size.
362
363 2014-12-15  Richard Biener  <rguenther@suse.de>
364
365         PR middle-end/64295
366         * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
367         fold_binary to compute the constant to multiply with.
368
369 2014-12-15  Richard Biener  <rguenther@suse.de>
370
371         PR middle-end/64246
372         * cfgloop.c (mark_loop_for_removal): Make safe against multiple
373         invocations on the same loop.
374
375 2014-12-15  Marek Polacek  <polacek@redhat.com>
376
377         PR middle-end/64292
378         * fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check.
379
380 2014-12-15  Renlin Li  <renlin.li@arm.com>
381
382         * config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
383         (CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes.
384
385 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
386
387         PR sanitizer/64265
388         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
389         call on edge from entry block to single succ instead
390         of after labels of single succ of entry block.
391
392 2014-12-15  Richard Biener  <rguenther@suse.de>
393
394         PR tree-optimization/64284
395         * tree-ssa-threadupdate.c (duplicate_seme_region): Mark
396         the loop for removal if we copied the loop header.
397
398 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
399
400         PR ipa/61602
401         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Return bool.
402         * ipa.c (set_writeonly_bit): Track if reference was removed.
403         (ipa_discover_readonly_nonaddressable_vars): Return true if any
404         references was removed.
405         * ipa-reference.c (propagate): Return TODO_remove_functions if
406         reference was removed.
407
408 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
409
410         * ipa.c (process_references): Fix conditoinal on flag_optimize
411
412 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
413
414         PR ipa/61558
415         * symtab.c (symbol_table::insert_to_assembler_name_hash
416         symbol_table::unlink_from_assembler_name_hash): Do not ICE when
417         DECL_ASSEMBLER_NAME is NULL.
418
419 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
420
421         * cgraphunit.c (analyze_functions): Always analyze targets of aliases.
422
423 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
424
425         PR lto/64043
426         * tree.c (virtual_method_call_p): Return false when OTR type has
427         no BINFO.
428
429 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
430
431         * cgraphunit.c (analyze_functions): Do not analyze extern inline
432         funtions when not optimizing; skip comdat locals.
433
434 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
435
436         PR rtl-optimization/64037
437         * combine.c (setup_incoming_promotions): Pass the argument
438         before any promotions happen to promote_function_mode.
439
440 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
441
442         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.
443
444 2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>
445
446         PR target/64110
447         * lra-constraints.c (process_alt_operands): Refuse alternative
448         when reload pseudo of given class can not hold value of given
449         mode.
450
451 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
452
453         * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
454         intermediate walk_tree results for for_incr.
455         <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
456         <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.
457
458 2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>
459
460         PR middle-end/64182
461         * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
462         cases.
463         * double-int.c (div_and_round_double): Fix handling of unsigned
464         cases.  Use same rounding approach as wide-int.h.
465
466 2014-12-12  Marek Polacek  <polacek@redhat.com>
467
468         PR middle-end/64274
469         * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
470
471 2014-12-12  Jakub Jelinek  <jakub@redhat.com>
472
473         PR tree-optimization/64269
474         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
475         len2 or diff are too large.
476
477 2014-12-12  Richard Biener  <rguenther@suse.de>
478
479         PR middle-end/64280
480         * tree-cfg.c (replace_uses_by): Guard assert properly.
481
482 2014-12-12  Anthony Green  <green@moxielogic.com>
483
484         * config/moxie/moxie.md: Add use of zex instruction.
485
486 2014-12-12  Marc Glisse  <marc.glisse@inria.fr>
487
488         * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
489         HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
490         declarations.
491         * real.c (HONOR_NANS): Fix indentation.
492         (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
493         HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
494         * builtins.c (fold_builtin_cproj, fold_builtin_signbit,
495         fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
496         of HONOR_*.
497         * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
498         Likewise.
499         * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
500         * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
501         * omp-low.c (omp_reduction_init): Likewise.
502         * rtlanal.c (may_trap_p_1): Likewise.
503         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
504         * tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
505         * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
506         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
507         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
508
509 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
510
511         * ipa-inline.c (ipa_inline): Fix condition on when
512         TODO_remove_unreachable_functions is needed.
513
514 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
515
516         * ipa-devirt.c (possible_polymorphic_call_targets): Return early
517         if otr_type has no BINFO.
518
519 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
520
521         PR rtl-optimization/63917
522         * ifcvt.c (cc_in_cond): New function.
523         (end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
524         (noce_process_if_block, check_cond_move_block): Check CC references.
525
526 2014-12-11  Andrew Pinski  <apinski@cavium.com>
527
528         * config/aarch64/aarch64-protos.h (tune_params): Add align field.
529         * config/aarch64/aarch64.c (generic_tunings): Specify align.
530         (cortexa53_tunings): Likewise.
531         (cortexa57_tunings): Likewise.
532         (thunderx_tunings): Likewise.
533         (aarch64_override_options): Set align_loops, align_jumps,
534         align_functions based on what the tuning struct.
535
536 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
537
538         * doc/md.texi (Insn Lengths): Fix description of (pc).
539
540 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
541
542         PR ipa/61324
543         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
544         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
545         * cgraphunit.c (symbol_table::process_new_functions): Add
546         IPA_SSA_AFTER_INLINING.
547         (ipa_passes): Update call of remove_unreachable_nodes.
548         (symbol_table::compile): Remove call of remove_unreachable_nodes.
549         * ipa-inline.c (inline_small_functions): Do not ICE with
550         -flto-partition=none
551         (ipa_inline): Update symtab->state; fix formatting
552         update call of remove_unreachable_nodes.
553         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
554         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
555         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
556         (remove_unreachable_nodes): Update.
557         * ipa.c (process_references): Keep external references only
558         when optimizing.
559         (walk_polymorphic_call_targets): Keep possible polymorphic call
560         target only when devirtualizing.
561         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
562         parameter.
563         (ipa_single_use): Update comment.
564         * ipa-pure-const.c (cdtor_p): New function.
565         (propagate_pure_const): Track if some cdtor was turned pure/const.
566         (execute): Return TODO_remove_functions if needed.
567         * ipa-comdats.c (ipa_comdats): Update comment.
568
569 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
570
571         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
572         parameter.
573         (gen_inlined_subroutine_die): Same.
574         (gen_block_die): Same.
575         (decls_for_scope): Same.
576
577 2014-12-11  Renlin Li  <renlin.li@arm.com>
578
579         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
580         AARCH64_FL_FOR_ARCH8.
581         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
582         aarch64-cores.def file only.
583
584 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
585
586         PR fortran/44054
587         * diagnostic.c (diagnostic_action_after_output): Make it extern.
588         Take diagnostic_t argument instead of diagnostic_info. Count also
589         DK_WERROR towards max_errors.
590         (diagnostic_report_diagnostic): Update call according to the above.
591         (error_recursion): Likewise.
592         * diagnostic.h (diagnostic_action_after_output): Declare.
593         * pretty-print.c (pp_formatted_text_data): Delete.
594         (pp_append_r): Call output_buffer_append_r.
595         (pp_formatted_text): Call output_buffer_formatted_text.
596         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
597         * pretty-print.h (output_buffer_formatted_text): New.
598         (output_buffer_append_r): New.
599         (output_buffer_last_position_in_text): New.
600
601 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
602
603         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
604         message to say +no only when removing extension.
605
606 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
607
608         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
609         for generator file.  Add comment indicating it is a generated file.
610         * config/tilepro/mul-tables.c: Update generated file.
611         * config/tilegx/mul-tables.c: Likewise.
612
613 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
614
615         * combine.c (try_combine): Do not allow combining a PARALLEL I2
616         with a register move I3 if that I2 is an asm.
617
618 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
619
620         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
621         (vrndnq_f32): ... this.
622         (vrndqa_f32): Rename to...
623         (vrndaq_f32): ... this.
624         (vrndqp_f32): Rename to...
625         (vrndpq_f32): ... this.
626         (vrndqm_f32): Rename to...
627         (vrndmq_f32): ... this.
628         (vrndx_f32): New intrinsic.
629         (vrndxq_f32): Likewise.
630
631 2014-12-11  Marek Polacek  <polacek@redhat.com>
632
633         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
634         (extract_muldiv_1): Likewise.
635         (maybe_canonicalize_comparison_1): Likewise.
636         (fold_comparison): Likewise.
637         (tree_binary_nonnegative_warnv_p): Likewise.
638         (tree_binary_nonzero_warnv_p): Likewise.
639         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
640         * tree-scalar-evolution.c (simple_iv): Likewise.
641         (scev_const_prop): Likewise.
642         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
643         * tree-vect-generic.c (expand_vector_operation): Likewise.
644         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
645         (ANY_INTEGRAL_TYPE_P): Define.
646         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
647         Add ANY_INTEGRAL_TYPE_CHECK.
648         (any_integral_type_check): New function.
649
650 2014-12-11  Tobias Burnus  <burnus@net-b.de>
651             Manuel López-Ibáñez  <manu@gcc.gnu.org>
652
653         * error.c (gfc_get_terminal_width): Renamed from
654         get_terminal_width and use same-named common function.
655         (gfc_error_init_1): Update call.
656
657 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
658
659         * gdbhooks.py (class DWDieRefPrinter): New class.
660         (build_pretty_printer): Register dw_die_ref's.
661
662 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
663
664         * config.gcc: Support "knl".
665         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
666         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
667         PROCESSOR_KNL.
668         * config/i386/i386.c (m_KNL): Define.
669         (processor_target_table): Add "knl".
670         (PTA_KNL): Define.
671         (ix86_issue_rate): Add PROCESSOR_KNL.
672         (ix86_adjust_cost): Ditto.
673         (ia32_multipass_dfa_lookahead): Ditto.
674         (get_builtin_code_for_version): Handle "knl".
675         (fold_builtin_cpu): Ditto.
676         * config/i386/i386.h (TARGET_KNL): Define.
677         (processor_type): Add PROCESSOR_KNL.
678         * config/i386/i386.md (attr "cpu"): Add knl.
679         * config/i386/x86-tune.def: Add m_KNL.
680
681 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
682
683         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
684         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
685         when it is not streamed to the given ltrans.
686         (compute_ltrans_boundary): Make code adding all polymorphic
687         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
688         * common.opt (fdevirtualize-at-ltrans): New flag.
689
690 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
691
692         * varpool.c (varpool_node::get_create): Force output of vars with
693         "omp declare target" attribute.
694
695 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
696
697         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
698         * real.c: Include rtl.h and options.h.
699         (HONOR_NANS): Define three overloads.
700         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
701         Simplify argument of HONOR_NANS.
702         * fold-const.c (combine_comparisons, fold_truth_not_expr,
703         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
704         fold_comparison, fold_binary_loc): Likewise.
705         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
706         * ipa-inline-analysis.c (add_clause,
707         set_cond_stmt_execution_predicate): Likewise.
708         * match.pd: Likewise.
709         * rtlanal.c (may_trap_p_1): Likewise.
710         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
711         * tree-if-conv.c (parse_predicate): Likewise.
712         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
713         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
714         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
715         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
716         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
717
718 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
719
720         PR tree-optimization/62021
721         * omp-low.c (simd_clone_adjust_return_type): Use
722         vector of pointer_sized_int_node types instead vector of pointer
723         types.
724         (simd_clone_adjust_argument_types): Likewise.
725
726 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
727             Evgeny Stupachenko  <evstupac@gmail.com>
728
729         PR target/64252
730         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
731         set dcopy.target to a new pseudo.
732
733 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
734
735         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
736
737 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
738
739         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
740         config/rs6000/440.md (ppc440-compare): Remove "compare".
741         config/rs6000/476.md (ppc476-compare): Remove "compare".
742         config/rs6000/601.md (ppc601-compare): Remove "compare".
743         config/rs6000/603.md (ppc603-compare): Remove "compare".
744         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
745         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
746         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
747         config/rs6000/8540.md (ppc8540_su): Remove "compare".
748         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
749         "compare".
750         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
751         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
752         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
753         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
754         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
755         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
756         config/rs6000/power4.md (power4-compare): Remove "compare".
757         config/rs6000/power5.md (power5-compare): Remove "compare".
758         config/rs6000/power6.md (power6-compare): Remove "compare".
759         config/rs6000/power7.md (power7-compare): Remove "compare".
760         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
761         comment.
762         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
763         (three times).
764         (is_cracked_insn): Remove TYPE_COMPARE case.
765         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
766         config/rs6000/rs6000.md (type): Remove "compare".
767         (cell_micro): Remove "compare".
768         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
769
770 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
771
772         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
773         Change type from "compare" to "two".
774
775 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
776
777         PR target/64180
778         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
779         (signed_comparison_operator): New.
780         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
781         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
782         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
783         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
784         add to addc,adde directly, if !TARGET_POWERPC64.
785         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
786         if !TARGET_POWERPC64.
787         (neg<mode>2): Delete expander.
788         (*neg<mode>2): Rename to "neg<mode>2".
789         (addti3, subti3): Delete.
790         (addti3, subti3): New expanders.
791         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
792         (cstore<mode>4_unsigned): New expander.
793         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
794         (cstore<mode>4 for FP): Remove superfluous quotes.
795         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
796         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
797         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
798         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
799         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
800         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
801         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
802         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
803         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
804         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
805         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
806         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
807         Delete.
808         (eq<mode>3, ne<mode>3): New.
809         (*neg_eq_<mode>, *neg_ne_<mode>): New.
810         (*plus_eq_<mode>, *plus_ne_<mode>): New.
811         (*minus_eq_<mode>, *minus_ne_<mode>): New.
812
813 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
814
815         PR target/64180
816         * config/rs6000/predicates.md (adde_operand): New.
817         * config/rs6000/rs6000.md (add<mode>3_carry): New.
818         (*add<mode>3_imm_carry_pos): New.
819         (*add<mode>3_imm_carry_0): New.
820         (*add<mode>3_imm_carry_m1): New.
821         (*add<mode>3_imm_carry_neg): New.
822         (add<mode>3_carry_in): New.
823         (*add<mode>3_carry_in_internal): New.
824         (add<mode>3_carry_in_0): New.
825         (add<mode>3_carry_in_m1): New.
826         (subf<mode>3_carry): New.
827         (*subf<mode>3_imm_carry_0): New.
828         (*subf<mode>3_imm_carry_m1): New.
829         (subf<mode>3_carry_in): New.
830         (*subf<mode>3_carry_in_internal): New.
831         (subf<mode>3_carry_in_0): New.
832         (subf<mode>3_carry_in_m1): New.
833         (subf<mode>3_carry_in_xx): New.
834
835 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
836
837         PR target/64180
838         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
839         "*add<mode>3".
840         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
841         Delete.
842         (*add<mode>3_dot, *add<mode>3_dot2): New.
843         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
844
845 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
846
847         PR target/64180
848         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
849         alternative.
850
851 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
852
853         PR target/64180
854         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
855         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
856         to "b".  Increase length.
857         (splitters for these): Split to cmp+addi instead of addic.
858
859 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
860
861         PR target/64180
862         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
863         (macho_low_di): Ditto.
864         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
865         (tocref<mode>): Ditto.
866         (elf_low): Ditto.
867         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
868         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
869         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
870         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
871
872 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
873
874         PR target/64180
875         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
876         (rs6000_md_asm_clobbers): New function.
877
878 2014-12-10  Felix Yang  <felix.yang@huawei.com>
879
880         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
881         declaration of removed function.
882
883 2014-12-10  Richard Biener  <rguenther@suse.de>
884
885         * tree-ssa-loop-im.c
886         (move_computations_dom_walker::before_dom_children): Clear
887         SSA_NAME_RANGE_INFO on moved stmts.
888
889 2014-12-10  Martin Liska  <mliska@suse.cz>
890
891         * sreal.c (sreal::shift_right): New implementation
892         for int64_t as m_sig.
893         (sreal::normalize): Likewise.
894         (sreal::to_int): Likewise.
895         (sreal::operator+): Likewise.
896         (sreal::operator-): Likewise.
897         (sreal::operator*): Likewise.
898         (sreal::operator/): Likewise.
899         (sreal::signedless_minus): Removed.
900         (sreal::signedless_plus): Removed.
901         (sreal::debug): const keyword is added.
902         * sreal.h (sreal::operator<): New implementation
903         for int64_t as m_sig.
904         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
905         with sreal::min ().
906
907 2014-12-10  Martin Liska  <mliska@suse.cz>
908
909         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
910         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
911         replaces loop based on precomputed number of non-debug statements.
912
913 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
914
915         * config/linux.c (linux_has_ifunc_p): Remove.
916         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
917
918 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
919
920         * contrib/check_GNU_style.sh (col): Got rid of cut operation
921         from the pipe chain and instead added cut inside awk command.
922
923 2014-12-10  Richard Biener  <rguenther@suse.de>
924
925         PR tree-optimization/64191
926         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
927         mark clobbers as necessary.
928         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
929
930 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
931
932         PR target/63594
933         * config/i386/sse.md (vec_dupv4sf): Move after
934         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
935         (*vec_dupv4si, *vec_dupv2di): Likewise.
936         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
937         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
938         pattern.
939         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
940         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
941         is set too).
942         * config/i386/i386.c (enum ix86_builtins): Remove
943         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
944         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
945         IX86_BUILTIN_PBROADCASTQ512_MEM.
946         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
947         __builtin_ia32_pbroadcastq256_gpr_mask and
948         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
949         regardless of OPTION_MASK_ISA_64BIT.
950         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
951         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
952         builtins regardless of whether TARGET_64BIT is defined or not.
953         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
954         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
955         Likewise.
956
957         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
958         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
959
960 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
961
962         PR target/53513
963         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
964
965 2014-12-10  Marek Polacek  <polacek@redhat.com>
966
967         PR tree-optimization/61686
968         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
969         p->high.
970
971 2014-12-10  Kito Cheng  <kito@0xlab.org>
972
973         * doc/libgcc.texi: Update text to match implementation in
974         libgcc/libgcc2.c
975
976 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
977
978         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
979         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
980         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
981         param_is.
982
983 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
984
985         PR target/53513
986         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
987         Document it.
988
989 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
990
991         PR middle-end/64225
992         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
993         for BUILT_IN_POW when flag_errno_math is present.
994
995 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
996
997         * lto-wrapper.c (compile_offload_image): Start processing in_argv
998         from 0 instead of 1.
999         (run_gcc): Put offload objects into offload_argv, put LTO objects and
1000         possible preceding arguments into lto_argv.
1001         Pass offload_argv to compile_images_for_offload_targets instead of argv.
1002         Use lto_argv for LTO recompilation instead of argv.
1003
1004 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
1005
1006         * doc/install.texi: Describe --with-aix-soname option.
1007
1008 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1009
1010         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
1011
1012 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1013
1014         PR target/63870
1015         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
1016         Delete.
1017         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
1018         Delete.
1019         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
1020         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
1021         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
1022         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
1023         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
1024         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
1025         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
1026         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
1027         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
1028         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
1029         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
1030         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
1031         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
1032         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
1033         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
1034         'q2' argument.
1035         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
1036         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
1037         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
1038         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
1039         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
1040         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
1041         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
1042         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
1043         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
1044         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
1045         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
1046         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
1047         to __aarch64_vdup_lane_any.
1048         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
1049         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
1050         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
1051         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
1052         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
1053         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
1054         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
1055         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
1056         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
1057         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
1058         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
1059         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
1060         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
1061         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
1062         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
1063         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
1064         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
1065         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
1066         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
1067         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
1068         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
1069         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
1070         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
1071         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
1072         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
1073         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
1074         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
1075         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
1076         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
1077         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
1078         __aarch64_vget_lane_any.
1079
1080 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1081
1082         PR target/63870
1083         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
1084         message for SIMD_ARG_CONSTANT.
1085
1086 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1087
1088         PR target/63870
1089         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
1090         TYPES_BINOPV): Delete.
1091         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
1092         AARCH64_SIMD_PATTERN_START.
1093         (aarch64_init_simd_builtins): Register
1094         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
1095         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
1096         AARCH64_SIMD_PATTERN_START.
1097
1098         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
1099         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
1100
1101         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
1102         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
1103         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
1104         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
1105         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
1106         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
1107         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
1108         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
1109
1110 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1111
1112         PR target/63950
1113         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
1114         New.
1115         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
1116         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
1117         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
1118         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
1119         number of lanes.
1120         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
1121         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
1122         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
1123         __aarch64_vset_lane_any rather than vset_lane_xxx.
1124
1125 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1126
1127         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
1128         earlyclobbering result operand.
1129
1130         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
1131         Remove final qualifier_internal.
1132         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
1133
1134 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1135
1136         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
1137         tuning parameters.
1138         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
1139         Define.
1140         (aarch64_reassociation_width): New function.
1141         (generic_tunings): Add reassociation tuning parameters.
1142         (cortexa53_tunings): Likewise.
1143         (cortexa57_tunings): Likewise.
1144         (thunderx_tunings): Likewise.
1145
1146 2014-12-09  Andrew Pinski  <apinski@cavium.com>
1147             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1148
1149         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
1150         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
1151         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
1152
1153 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
1154
1155         PR jit/64166
1156         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
1157         New function.
1158         (gcc::dump_manager::get_dump_file_name): Split out bulk of
1159         implementation into a new overloaded variant taking a
1160         dump_file_info *.
1161         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
1162         New function.
1163         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
1164         this function, taking a dump_file_info *.
1165
1166 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
1167
1168         PR bootstrap/64213
1169         Revert:
1170         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1171
1172         PR rtl-optimization/64037
1173         * combine.c (setup_incoming_promotions): Pass the argument
1174         before any promotions happen to promote_function_mode.
1175
1176 2014-12-09  Richard Biener  <rguenther@suse.de>
1177
1178         PR tree-optimization/64193
1179         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
1180         and valueize the VUSE before looking up the def stmt.
1181         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1182         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
1183         to walk_non_aliased_vuses.
1184         (vn_reference_lookup): Likewise.
1185         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
1186         callback to walk_non_aliased_vuses.
1187
1188 2014-12-09  Richard Biener  <rguenther@suse.de>
1189
1190         PR middle-end/64199
1191         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
1192
1193 2014-12-09  Richard Biener  <rguenther@suse.de>
1194
1195         PR tree-optimization/64191
1196         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1197         not relevant (nor are their uses).
1198
1199 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1200
1201         * lto/lto-partition.c (privatize_symbol_name): Correctly
1202         privatize instrumentation clones.
1203
1204 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1205
1206         * lto-cgraph.c (input_cgraph_1): Don't break existing
1207         instrumentation clone references.
1208         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
1209         instrumented_version references appropriately.
1210
1211 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1212
1213         PR bootstrap/63995
1214         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
1215         between nodes sharing assembler name.
1216
1217 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1218
1219         PR target/64204
1220         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
1221         constant moves if -mupper-regs-df.
1222
1223         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
1224         0.0L to TFmode.
1225         (movtd_64bit_nodm): Likewise.
1226         (mov<mode>_32bit, FMOVE128 case): Likewise.
1227
1228 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
1229
1230         * simplify-rtx.c (simplify_relational_operation_1): Handle
1231         simplification identities for BICS patterns.
1232
1233 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
1234
1235         * config/nvptx/nvptx.c: Convert htabs to hash_table.
1236
1237 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
1238
1239         PR target/64226
1240         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
1241         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
1242         TARGET_TOC. Always use rs6000_emit_move.
1243
1244 2014-12-08  Mark Wielaard  <mjw@redhat.com>
1245
1246         PR debug/60782
1247         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
1248
1249 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
1250
1251         PR target/61692
1252         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
1253
1254 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
1255
1256         PR jit/63854
1257         * cgraph.h (xstrdup_for_dump): New function.
1258         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
1259         within fprintf with xstrdup_for_dump.
1260         (cgraph_edge::make_speculative): Likewise.
1261         (cgraph_edge::resolve_speculation): Likewise.
1262         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1263         (cgraph_node::dump): Likewise.
1264         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1265         * ipa-cp.c (perhaps_add_new_callers): Likewise.
1266         * ipa-inline.c (report_inline_failed_reason): Likewise.
1267         (want_early_inline_function_p): Likewise.
1268         (edge_badness): Likewise.
1269         (update_edge_key): Likewise.
1270         (flatten_function): Likewise.
1271         (inline_always_inline_functions): Likewise.
1272         * ipa-profile.c (ipa_profile): Likewise.
1273         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
1274         (ipa_make_edge_direct_to_target): Likewise.
1275         (remove_described_reference): Likewise.
1276         (propagate_controlled_uses): Likewise.
1277         * ipa-utils.c (ipa_merge_profiles): Likewise.
1278
1279 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1280
1281         PR ipa/64049
1282         * ipa-polymorphic-call.c
1283         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
1284
1285 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
1286
1287         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
1288         New define_insn.
1289         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
1290         Likewise.
1291
1292 2014-12-08  Felix Yang  <felix.yang@huawei.com>
1293             Haijian Zhang  <z.zhanghaijian@huawei.com>
1294             Jiji Jiang  <jiangjiji@huawei.com>
1295             Pengfei Sui  <suipengfei@huawei.com>
1296
1297         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
1298         builtin functions.
1299         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
1300         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
1301         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
1302         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
1303         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
1304         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
1305         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
1306         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
1307         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
1308         vrsubhn_high_u64): Likewise.
1309         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
1310         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
1311         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
1312         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
1313         subhn2, rsubhn2, urecpe): New builtins.
1314
1315 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
1316
1317         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
1318         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
1319
1320 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
1321
1322         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
1323         (expand_vec_perm_vpermi2_vpshub2): New.
1324         (ix86_expand_vec_perm_const_1): Use it.
1325         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
1326         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
1327
1328 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1329
1330         * tree-chkp.c (chkp_build_returned_bound): Don't predict
1331         return bounds for strchr calls.
1332
1333 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1334
1335         * tree-chkp.c (chkp_call_returns_bounds_p): New.
1336         (chkp_build_returned_bound): Use zero bounds as
1337         returned by calls not returning bounds.
1338
1339 2014-12-08  Richard Biener  <rguenther@suse.de>
1340
1341         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
1342         (fold_builtin_1): Likewise.
1343         (fold_builtin_3): Likewise.
1344         (fold_builtin_varargs): Likewise.
1345         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
1346         (fold_builtin_n): Adjust.
1347         (fold_builtin_stpcpy): Move to gimple-fold.c.
1348         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
1349         (gimple_fold_builtin): Fold stpcpy here.
1350
1351 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
1352
1353         * symtab.c (symtab_node::verify): Check for section attribute before
1354         asserting something isn't in a section and a comdat group.
1355
1356 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1357
1358         PR target/50751
1359         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1360
1361 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1362
1363         * compare-elim.c: Fix head comment.
1364         (conforming_compare): Remove redundant test.
1365         (can_eliminate_compare): New function extracted from...
1366         (before_dom_children): ...here.  Use it, replace direct uses of
1367         flag_non_call_exceptions and tidy up.
1368         (maybe_select_cc_mode): Tidy up.
1369
1370 2014-12-07  Felix Yang  <felix.yang@huawei.com>
1371             Shanyao Chen  <chenshanyao@huawei.com>
1372
1373         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
1374         patterns.
1375         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
1376         builtins.
1377         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
1378         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
1379         vcntq_u8): Rewrite using builtin functions.
1380
1381 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
1382
1383         * symtab.c (symtab_node::equal_address_to): New function.
1384         * cgraph.h (symtab_node::equal_address_to): Declare.
1385         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
1386         * c-family/c-common.c: Refuse weaks for symbols that can not change
1387         visibility.
1388
1389 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
1390
1391         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
1392
1393 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
1394             Sebastian Pop  <s.pop@samsung.com>
1395             Brian Rzycki  <b.rzycki@samsung.com>
1396
1397         PR tree-optimization/54742
1398         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
1399         max-fsm-thread-paths): New.
1400
1401         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
1402         max-fsm-thread-paths): Documented.
1403
1404         * tree-cfg.c (split_edge_bb_loc): Export.
1405         * tree-cfg.h (split_edge_bb_loc): Declared extern.
1406
1407         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
1408         original value of cond when simplification fails.
1409         (fsm_find_thread_path): New.
1410         (fsm_find_control_statement_thread_paths): New.
1411         (thread_through_normal_block): Call find_control_statement_thread_paths.
1412
1413         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
1414         EDGE_FSM_THREAD.
1415         (verify_seme): New.
1416         (duplicate_seme_region): New.
1417         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
1418         calling duplicate_seme_region.
1419
1420         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
1421
1422 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1423
1424         PR target/64200
1425         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1426         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1427
1428 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
1429
1430         PR sanitizer/64170
1431         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
1432         non-NULL, call maybe_get_dominating_check on it even if g is
1433         non-NULL.
1434
1435 2014-12-05  Jeff Law  <law@redhat.com>
1436
1437         * doc/md.texi: Note problems using function calls to determine
1438         insn lengths and point readers to a potential workaround.
1439
1440 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
1441
1442         * combine.c (is_parallel_of_n_reg_sets)
1443         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
1444
1445 2014-12-05  Andrew Pinski  <apinski@cavium.com>
1446
1447         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
1448         than CF10 so 2 is appended on the code.
1449         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
1450         (bswap<mode>2): This so it matches for the optabs.
1451
1452 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1453
1454         * regrename.c (find_best_rename_reg): Rename to ...
1455         (find_rename_reg): This. Also add a parameter to skip tick check.
1456         * regrename.h: Likewise.
1457         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
1458
1459 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1460
1461         PR ipa/64192
1462         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
1463         from bits to bytes after checking they are byte-aligned.
1464
1465 2014-12-05  Renlin Li  <renlin.li@arm.com>
1466
1467         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
1468         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1469         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
1470         IDENT to SCHED.
1471
1472 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
1473
1474         * config/aarch64/aarch64.md (load_pair<mode>): Split to
1475         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
1476         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
1477         from load_pair<mode>.  New alternative to support int/fp
1478         registers in fp/int mode patterns.
1479         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
1480         store_pairsf and store_pairdi.
1481         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
1482         from store_pair<mode>.  New alternative to support int/fp
1483         registers in fp/int mode patterns.
1484         (*load_pair_extendsidi2_aarch64): New pattern.
1485         (*load_pair_zero_extendsidi2_aarch64): New pattern.
1486         (aarch64-ldpstp.md): Include.
1487         * config/aarch64/aarch64-ldpstp.md: New file.
1488         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
1489         New.
1490         (extract_base_offset_in_addr): New.
1491         (aarch64_operands_ok_for_ldpstp): New.
1492         (aarch64_operands_adjust_ok_for_ldpstp): New.
1493         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
1494         (TARGET_SCHED_FUSION_PRIORITY): New hook.
1495         (fusion_load_store): New functon.
1496         (extract_base_offset_in_addr): New function.
1497         (aarch64_gen_adjusted_ldpstp): New function.
1498         (aarch64_sched_fusion_priority): New function.
1499         (aarch64_operands_ok_for_ldpstp): New function.
1500         (aarch64_operands_adjust_ok_for_ldpstp): New function.
1501
1502 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1503
1504         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
1505         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
1506         DWARF_REG_TO_UNWIND_COLUMN.
1507
1508 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1509
1510         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
1511         one particular reg for expand_builtin_init_dwarf_reg_sizes.
1512         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
1513         account for dwarf register spans.
1514
1515 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1516
1517         PR target/64003
1518         * config/i386/i386.md (*jcc_1_bnd): New.
1519         (*jcc_2_bnd): New.
1520         (jump_bnd): New.
1521         (*jcc_1): Remove bnd prefix.
1522         (*jcc_2): Likewise.
1523         (jump): Likewise.
1524
1525 2014-12-05  Renlin Li  <renlin.li@arm.com>
1526
1527         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1528         selected_tune.
1529         (aarch64_override_options): Use selected_cpu's tuning.
1530
1531 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1532
1533         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1534         alignment to section name. Increase default alignment to word.
1535
1536 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1537
1538         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1539         (cgraph_edge): New method redirect_callee_duplicating_thunks.
1540         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1541         created thunks.
1542         (redirect_edge_duplicating_thunks): Turned into edge method
1543         redirect_callee_duplicating_thunks.
1544         (cgraph_node::expand_all_artificial_thunks): New method.
1545         (create_clone): Call expand_all_artificial_thunks.
1546         * ipa-cp.c (perhaps_add_new_callers): Call
1547         redirect_callee_duplicating_thunks instead of redirect_callee.
1548         Also call expand_all_artificial_thunks.
1549
1550 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1551
1552         PR target/64056
1553         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target
1554         Keywords.
1555
1556 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1557
1558         * diagnostic.h (diagnostic_expand_location): New inline function.
1559         * diagnostic.c (diagnostic_build_prefix): Use it.
1560         (diagnostic_show_locus): Likewise.
1561
1562 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
1563
1564         PR bootstrap/64189
1565         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1566         * configure: Regenerated.
1567
1568 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1569
1570         * diagnostic.c (diagnostic_color_init): New.
1571         * diagnostic.h: Declare.
1572         * gcc.c (driver::global_initializations): Use it.
1573         (driver_handle_option): Handle -fdiagnostics-color_.
1574         * toplev.c: Do not include diagnostic-color.h.
1575         (process_options): Do not initialize color diagnostics here.
1576         * common.opt (fdiagnostics-color=): Add Driver.
1577         * opts-global.c (init_options_once): Initialize color here.
1578         * opts.c (common_handle_option): Use diagnostics_color_init.
1579         * diagnostic-color.h: Fix comment.
1580
1581 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1582
1583         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1584         (NIY): Likewise.
1585         (buffer): Rename this variable to...
1586         (tree_pp): ...this.
1587
1588         (do_niy): Rename param from "buffer" to "pp".
1589         (dump_decl_name): Likewise.
1590         (dump_function_name): Likewise.
1591         (dump_function_declaration): Likewise.
1592         (dump_array_domain): Likewise.
1593         (dump_omp_clause): Likewise.
1594         (dump_omp_clauses): Likewise.
1595         (dump_location): Likewise.
1596         (dump_block_node): Likewise.
1597         (dump_generic_node): Likewise.
1598         (print_declaration): Likewise.
1599         (print_struct_decl): Likewise.
1600         (print_call_name): Likewise.
1601         (pretty_print_string): Likewise.
1602         (newline_and_indent): Likewise.
1603
1604         (print_generic_decl): Update for renaming of "buffer" to
1605         "tree_pp".
1606         (print_generic_stmt): Likewise.
1607         (print_generic_stmt_indented): Likewise.
1608         (print_generic_expr): Likewise.
1609         (maybe_init_pretty_print): Likewise.
1610
1611 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1612
1613         PR jit/63854
1614         * tree-pretty-print.c: Eliminate include of <new>.
1615         (buffer): Convert this variable from a pretty_printer to a
1616         pretty_printer *.
1617         (initialized): Eliminate this variable in favor of the NULL-ness
1618         of "buffer".
1619         (print_generic_decl): Update for "buffer" becoming a pointer.
1620         (print_generic_stmt): Likewise.
1621         (print_generic_stmt_indented): Likewise.
1622         (print_generic_expr): Likewise.
1623         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1624         heap and using its non-NULL-ness to ensure idempotency.
1625
1626 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1627
1628         PR jit/63854
1629         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1630         ipa_add_new_function on function_insertion_hook_holder being
1631         non-NULL.
1632         * ipa-reference.c (ipa_reference_c_finalize): Remove
1633         node_removal_hook_holder and node_duplication_hook_holder if
1634         they've been added to symtab.
1635         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1636         before cgraph_c_finalize so that the former can access "symtab".
1637
1638 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1639
1640         * doc/cfg.texi (GIMPLE statement iterators): Add note about
1641         gphi_iterator, and use one in the example.
1642         * doc/gimple.texi (Tuple specific accessors): Add missing
1643         GIMPLE_GOTO section and menu item.
1644         (gimple_build_asm, gimple gimple_build_assign_with_ops)
1645         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1646         description of removed functions.
1647         (gimple_build_assign, gimple_build_bind, gimple_build_call,
1648         gimple_build_call_from_tree, gimple_build_call_vec,
1649         gimple_build_catch, gimple_build_cond,
1650         gimple_build_cond_from_tree, gimple_build_debug_bind,
1651         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1652         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1653         gimple_build_omp_continue, gimple_build_omp_critical,
1654         gimple_build_omp_for, gimple_build_omp_parallel,
1655         gimple_build_omp_sections, gimple_build_omp_single,
1656         gimple_build_return, gimple_build_resx, gimple_build_switch,
1657         gimple_build_try): Update return type within description to
1658         reflect changes in gimple.h to using gimple subclasses.
1659         (gimple_build_asm_vec): Update return type, params and
1660         description.
1661         (gimple_asm_ninputs): Update param.
1662         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1663         gimple_asm_set_input_op, gimple_asm_output_op
1664         gimple_asm_set_output_op, gimple_asm_clobber_op,
1665         gimple_asm_set_clobber_op, gimple_asm_string,
1666         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1667         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1668         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1669         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1670         gimple_call_return_type, gimple_call_set_chain,
1671         gimple_call_set_tail, gimple_call_tail_p,
1672         gimple_call_copy_skip_args, gimple_catch_types,
1673         gimple_catch_types_ptr, gimple_catch_handler,
1674         gimple_catch_set_types, gimple_catch_set_handler,
1675         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1676         gimple_cond_true_label, gimple_cond_set_true_label,
1677         gimple_cond_set_false_label, gimple_cond_false_label,
1678         gimple_cond_make_false, gimple_cond_make_true,
1679         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1680         gimple_eh_must_not_throw_fndecl,
1681         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1682         gimple_label_set_label, gimple_goto_set_dest,
1683         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1684         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1685         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1686         gimple_omp_continue_control_def,
1687         gimple_omp_continue_control_def_ptr,
1688         gimple_omp_continue_set_control_def,
1689         gimple_omp_continue_control_use,
1690         gimple_omp_continue_control_use_ptr,
1691         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1692         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1693         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1694         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1695         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1696         gimple_omp_parallel_data_arg_ptr,
1697         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1698         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1699         gimple_resx_set_region, gimple_return_retval,
1700         gimple_return_set_retval, gimple_switch_num_labels,
1701         gimple_switch_set_num_labels, gimple_switch_index,
1702         gimple_switch_set_index, gimple_switch_label,
1703         gimple_switch_set_label, gimple_switch_default_label,
1704         gimple_switch_set_default_label, gimple_try_set_eval,
1705         gimple_try_set_cleanup): Update initial param within description
1706         to reflect changes in gimple.h to using gimple subclasses.
1707         (Adding a new GIMPLE statement code): Update to reflect gimple
1708         statement subclassing.
1709
1710 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
1711             H.J. Lu  <hongjiu.lu@intel.com>
1712
1713         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1714         Linux/x86-64 linker supports PIE with copy reloc.
1715         * config.in: Regenerated.
1716         * configure: Likewise.
1717
1718         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1719         pc-relative address for undefined, non-weak, non-function
1720         symbol reference in 64-bit PIE if linker supports PIE with
1721         copy reloc.
1722
1723         * doc/sourcebuild.texi: Document pie_copyreloc target.
1724
1725 2014-12-04  Marek Polacek  <polacek@redhat.com>
1726
1727         PR middle-end/56917
1728         * fold-const.c (fold_unary_loc): Perform the negation in A's type
1729         when transforming ~ (A - 1) or ~ (A + -1) to -A.
1730
1731 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1732
1733         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1734
1735 2014-12-04  Richard Biener  <rguenther@suse.de>
1736
1737         * doc/match-and-simplify.texi: Update for recent changes.
1738
1739 2014-12-04  Martin Jambor  <mjambor@suse.cz>
1740
1741         * ipa-prop.h (ipa_alignment): New type.
1742         (ipa_jump_func): New field alignment.
1743         (ipcp_transformation_summary) New type.
1744         (ipcp_grow_transformations_if_necessary): Declare.
1745         (ipa_node_agg_replacements): Removed.
1746         (ipcp_transformations): Declare.
1747         (ipcp_get_transformation_summary): New function.
1748         (ipa_get_agg_replacements_for_node): Use it.
1749         * ipa-cp.c (ipcp_param_lattices): New field alignment.
1750         (print_all_lattices): Also print alignment.
1751         (alignment_bottom_p): New function.
1752         (set_alignment_to_bottom): Likewise.
1753         (set_all_contains_variable): Also set alignment to bottom.
1754         (initialize_node_lattices): Likewise.
1755         (propagate_alignment_accross_jump_function): New function.
1756         (propagate_constants_accross_call): Call it.
1757         (ipcp_store_alignment_results): New function.
1758         (ipcp_driver): Call it.
1759         * ipa-prop.c (ipa_node_agg_replacements): Removed.
1760         (ipcp_transformations): New.
1761         (ipa_print_node_jump_functions_for_edge): Also print alignment.
1762         (ipa_set_jf_unknown): New function.
1763         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1764         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1765         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1766         (ipcp_grow_transformations_if_necessary): New function.
1767         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1768         (ipa_node_removal_hook): Likewise.
1769         (ipa_node_duplication_hook): Also duplicate alignment results.
1770         (ipa_write_jump_function): Also stream alignments.
1771         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1772         alignments.
1773         (write_agg_replacement_chain): Renamed to
1774         write_ipcp_transformation_info, also stream alignments.
1775         (read_agg_replacement_chain): Renamed to
1776         read_ipcp_transformation_info, also stream alignments.
1777         (ipa_prop_write_all_agg_replacement): Renamed to
1778         ipcp_write_transformation_summaries. Stream always.
1779         (ipa_prop_read_all_agg_replacement): Renamed to
1780         ipcp_read_transformation_summaries.
1781         (ipcp_update_alignments): New function.
1782         (ipcp_transform_function): Call it, free also alignments.
1783
1784 2014-12-04  Richard Biener  <rguenther@suse.de>
1785
1786         * gimple-fold.c (replace_stmt_with_simplification): Properly
1787         fail when maybe_push_res_to_seq fails.
1788
1789 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1790
1791         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1792
1793 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1794
1795         * doc/install.texi: Remove mentions of cloog and ppl.
1796         * doc/invoke.texi: Likewise
1797
1798 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1799
1800         PR c++/56493
1801         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1802         Handle COMPOUND_EXPR.
1803
1804 2014-12-04  Richard Biener  <rguenther@suse.de>
1805
1806         * builtins.c (target_newline): Export.
1807         (target_percent_s_newline): Likewise.
1808         (fold_builtin_1): Do not fold printf functions here.
1809         (fold_builtin_2): Likewise.
1810         (fold_builtin_3): Likewise, do not fold strncat.
1811         (fold_builtin_strncat): Move to gimple-fold.c.
1812         (fold_builtin_printf): Likewise.
1813         * builtins.h (target_newline): Declare.
1814         (target_percent_s_newline): Likewise.
1815         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1816         builtins.c and gimplify.
1817         (gimple_fold_builtin_printf): Likewise.
1818         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1819         vprintf, printf_chk and vprintf_chk here.
1820
1821 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
1822
1823         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1824         (floatunssidf2_internal): Same.
1825         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1826         (rs6000_emit_int_cmove): Same.
1827         (rs6000_sched_reorder): Same.
1828         (altivec_expand_vec_perm_const): Same.
1829         (rs6000_expand_vec_perm_const_1): Same.
1830
1831 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1832
1833         PR rtl-optimization/64010
1834         * reload.c (push_reload): Before reusing a register contained
1835         in an operand as input reload register, ensure that it is not
1836         used in CALL_INSN_FUNCTION_USAGE.
1837
1838 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
1839
1840         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1841         if it exists.
1842
1843 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1844
1845         * expmed.c (expand_mult): Use std::swap.
1846
1847         PR c/59708
1848         * expmed.c (expand_widening_mult): Return const0_rtx if
1849         coeff is 0.
1850
1851         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1852         (gimple_build_assign): Document the new overloads.
1853
1854 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1855
1856         PR target/64019
1857         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1858         not create LO_SUM address for constant addresses if the type can
1859         go in Altivec registers.
1860
1861 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1862
1863         PR fortran/44054
1864         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1865         (pp_flush): Flush only if flush_p.
1866         (pp_really_flush): New.
1867         * pretty-print.h (struct output_buffer): Add flush_p.
1868         (pp_really_flush): Declare.
1869
1870 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1871
1872         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1873         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1874         (GENGTYPE_OBJS): New.
1875         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1876         Remove explicit dependencies.
1877         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1878         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1879         instead of -DGENERATOR_FILE.
1880         (CFLAGS-errors.o): New.
1881         * gengtype.c: Instead of testing GENERATOR_FILE define, test
1882         HOST_GENERATOR_FILE.  If defined, include config.h and define
1883         GENERATOR_FILE afterwards, otherwise include bconfig.h.
1884         * gengtype-parse.c: Likewise.
1885         * gengtype-state.c: Likewise.
1886         * gengtype-lex.l: Likewise.
1887         * errors.c: Likewise.
1888
1889 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1890
1891         * config/epiphany/epiphany.c (epiphany_override_options):
1892         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1893         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1894         reverse_condition_maybe_unordered if flag_finite_math_only is set.
1895
1896 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
1897
1898         Revert:
1899
1900         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
1901         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1902         when architecture is older than ARMv7.
1903
1904 2014-12-03  Richard Biener  <rguenther@suse.de>
1905
1906         * builtins.c (target_percent_c): Export.
1907         (fold_builtin_fprintf): Move to gimple-fold.c.
1908         (fold_builtin_2): Do not fold fprintf functions.
1909         (fold_builtin_3): Likewise.
1910         (fold_builtin_4): Remove.
1911         (fold_builtin_n): Do not call fold_builtin_4.
1912         * builtins.h (target_percent_c): Declare.
1913         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1914         builtins.c and gimplify.
1915         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1916         fprintf_chk and vfprintf_chk here.
1917
1918 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1919
1920         PR ipa/64153
1921         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1922         type sizes before view_converting.
1923
1924 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1925
1926         PR rtl-optimization/64151
1927         PR rtl-optimization/64156
1928         * ira-costs.c (scan_one_insn): Revert r218266.
1929
1930 2014-12-03  Richard Biener  <rguenther@suse.de>
1931
1932         * builtins.c (fold_builtin_fpclassify): Change to take
1933         array of arguments instead of CALL_EXPR tree.
1934         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1935         (fold_builtin_n): Dispatch to fold_builtin_varargs.
1936         (fold_call_expr): Always use fold_builtin_n.
1937         (fold_builtin_call_array): Change to not build the unfolded call,
1938         always use fold_builtin_n.
1939         (fold_builtin_varargs): Change to take array of arguments instead
1940         of CALL_EXPR tree.
1941         (fold_call_stmt): Always use fold_builtin_n.
1942         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1943         * fold-const.c (fold_build_call_array_loc): Build the call
1944         if fold_builtin_call_array returned NULL_TREE.
1945         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1946         a CALL_EXPR and use fold_builtin_call_array instead of
1947         fold_call_expr.
1948
1949 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
1950
1951         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1952         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1953         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1954         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1955         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1956         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1957         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1958         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1959         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1960         Change VDQ to VDQ_I.
1961
1962         (mul<mode>3): Change VDQM to VDQ_BHSI.
1963         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1964         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1965         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1966
1967         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1968         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1969         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1970         Change VDW to VD_BHSI.
1971         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1972         Change VDIC to VD_BHSI.
1973
1974         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1975         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1976         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1977
1978         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1979         VDIC, VDQQHS): Remove.
1980         (Vwtype): Update comment (changing VDW to VD_BHSI).
1981
1982 2014-12-03  Richard Biener  <rguenther@suse.de>
1983
1984         PR middle-end/14541
1985         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1986         * match.pd: ... here as patterns.
1987
1988 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
1989
1990         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1991         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1992         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1993         reservation order.
1994
1995 2014-12-03  Tom de Vries  <tom@codesourcery.com>
1996
1997         PR rtl-optimization/63957
1998         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1999         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
2000         flag_ipa_ra.
2001         (get_call_reg_set_usage): Same.
2002         * lra-assigns.c (lra_assign): Same.
2003         * lra-constraints.c (need_for_call_save_p): Same.
2004         * lra-lives.c (process_bb_lives): Same.
2005         * lra.c (lra): Same.
2006         * calls.c (expand_call): Same.
2007         (emit_library_call_value_1): Same.
2008         * config/arm/arm.c (arm_option_override): Same.
2009         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
2010         OPT_fipa_ra.
2011         * target.def (call_fusage_contains_non_callee_clobbers): Replace
2012         fuse-caller-save with fipa-ra.
2013         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
2014         * common.opt: Same.
2015
2016 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
2017
2018         * sanopt.c (maybe_get_single_definition): New function.
2019         (maybe_get_dominating_check): Ditto.
2020         (can_remove_asan_check): Ditto.
2021         (struct tree_map_traits): New struct.
2022         (struct sanopt_ctx): Use custom traits for asan_check_map.
2023         (maybe_optimize_ubsan_null_ifn): Move code to
2024         maybe_get_dominating_check.
2025         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
2026         into account when optimizing.
2027         (sanopt_optimize_walker): Optimize ASan checks even when
2028         recovering.
2029
2030 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
2031
2032         * config/i386/constraints.md (Yr): New.
2033         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
2034         (REG_CLASS_NAMES): Likewise.
2035         (REG_CLASS_CONTENTS): Likewise.
2036         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
2037         which use only NO_REX_SSE_REGS.
2038         (vec_set<mode>_0): Likewise.
2039         (*vec_setv4sf_sse4_1): Likewise.
2040         (sse4_1_insertps): Likewise.
2041         (*sse4_1_extractps): Likewise.
2042         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
2043         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
2044         (*sse4_1_<code><mode>3<mask_name>): Likewise.
2045         (*sse4_1_<code><mode>3): Likewise.
2046         (*sse4_1_eqv2di3): Likewise.
2047         (sse4_2_gtv2di3): Likewise.
2048         (*vec_extractv4si): Likewise.
2049         (*vec_concatv2si_sse4_1): Likewise.
2050         (vec_concatv2di): Likewise.
2051         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
2052         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
2053         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
2054         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
2055         (<sse4_1_avx2>_mpsadbw): Likewise.
2056         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
2057         (<sse4_1_avx2>_pblendvb): Likewise.
2058         (sse4_1_pblendw): Likewise.
2059         (sse4_1_phminposuw): Likewise.
2060         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
2061         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
2062         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
2063         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
2064         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
2065         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
2066         (sse4_1_ptest): Likewise.
2067         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
2068         (sse4_1_round<ssescalarmodesuffix>): Likewise.
2069         * config/i386/subst.md (mask_prefix4): New.
2070         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
2071
2072 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
2073
2074         PR rtl-optimization/52714
2075         * combine.c (try_combine): Allow combining two insns into two
2076         new insns if at least one of those is a noop.
2077
2078 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
2079
2080         * target.def (fusion_priority): Wrap code with @smallexample.
2081         * doc/tm.texi: Regenerated.
2082
2083 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2084
2085         * diagnostic.c (diagnostic_show_locus): Honor override_column when
2086         placing the caret.
2087
2088 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
2089
2090         * asan.c: (asan_finish_file): Use default priority for constructors
2091         in kernel mode.
2092
2093 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2094
2095         PR target/64115
2096         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
2097         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
2098
2099 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2100
2101         PR target/64108
2102         * config/i386/i386.c (decide_alg): Stop only if there aren't
2103         any usable algorithms.
2104
2105 2014-12-02  Tom de Vries  <tom@codesourcery.com>
2106
2107         PR rtl-optimization/63718
2108         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
2109         Thumb1.
2110
2111 2014-12-02  Richard Biener  <rguenther@suse.de>
2112
2113         * match.pd: When combining divisions exclude the degenerate
2114         case involving INT_MIN from overflow handling.
2115
2116 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2117
2118         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
2119
2120 2014-12-02  Martin Jambor  <mjambor@suse.cz>
2121
2122         PR ipa/63814
2123         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
2124         (cgraph_edge_brings_value_p): New parameter dest, use
2125         same_node_or_its_all_contexts_clone_p and check availability.
2126         (cgraph_edge_brings_value_p): Likewise.
2127         (get_info_about_necessary_edges): New parameter dest, pass it to
2128         cgraph_edge_brings_value_p.  Update caller.
2129         (gather_edges_for_value): Likewise.
2130         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
2131         both the destination and availability.
2132
2133 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
2134
2135         PR target/64113
2136         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
2137         using post-reload splitter.  Use peephole2 pass instead.
2138         (call_value_osf_tlsldm): Ditto.
2139         (TLS_CALL): New int iterator.
2140         (tls): New int attribute.
2141         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
2142         and call_value_tlsldm using TLS_CALL int iterator.
2143
2144 2014-12-02  Richard Biener  <rguenther@suse.de>
2145             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2146
2147         * genmatch.c: Include hash-set.h.
2148         (fatal_at): Add source_location overload.
2149         (parser::record_operlist): New method.
2150         (parser::push_simplify): Likewise.
2151         (parser::oper_lists_set): New member.
2152         (parser::oper_lists): Likewise.
2153         (parser::parse_operation): Record seen operator list references.
2154         (parser::parse_c_expr): Likewise.
2155         (parser::parse_simplify): Init oper_lists_set and oper_lists
2156         and use push_simplify.
2157         (parser::parser): Init oper_lists_set and oper_lists.
2158
2159 2014-12-02  Richard Biener  <rguenther@suse.de>
2160
2161         * match.pd: Restrict division combining to trunc_div and
2162         exact_div.
2163
2164 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
2165
2166         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
2167         Remove NULL last argument from create_tmp_var calls.
2168         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
2169         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
2170         * config/i386/i386.c (add_condition_to_bb,
2171         ix86_atomic_assign_expand_fenv): Likewise.
2172         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
2173         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
2174         * config/aarch64/aarch64-builtins.c
2175         (aarch64_atomic_assign_expand_fenv): Likewise.
2176         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
2177         Likewise.
2178         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
2179         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
2180         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
2181
2182         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
2183         gimple_build_assign instead of gimple_build_assign_with_ops and swap
2184         the order of first two arguments.
2185         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
2186         Likewise.  Remove last NULL_TREE argument.
2187
2188 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2189
2190         PR rtl-optimization/59278
2191         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
2192
2193 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2194
2195         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
2196
2197 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2198
2199         * combine.c (is_parallel_of_n_reg_sets): New function.
2200         (can_split_parallel_of_n_reg_sets): New function.
2201         (try_combine): If I2 is a PARALLEL of two SETs, split it into
2202         two insns if possible.
2203
2204 2014-12-01  Tobias Burnus  <burnus@net-b.de>
2205             Jack Howarth  <howarth@bromo.med.uc.edu>
2206
2207         PR middle-end/64017
2208         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
2209         New check.
2210         * doc/install.texi (ISL): Permit ISL 0.14.
2211         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
2212         Conditionally use ISL 0.13+ functions.
2213         * graphite-interchange.c: Make 'extern "C"' conditional.
2214         * graphite-isl-ast-to-gimple.c: Ditto.
2215         * graphite-poly.c: Ditto.
2216         * graphite-sese-to-poly.c: Ditto.
2217         * config.in: Regenerate.
2218         * gcc/configure: Regenerate.
2219
2220 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2221
2222         * combine.c (distribute_links): Handle multiple SETs.
2223
2224 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2225
2226         * combine.c (struct insn_link): New field `regno'.
2227         (alloc_insn_link): New parameter `regno'.  Use it.
2228         (find_single_use): Check the new field.
2229         (can_combine_def_p, can_combine_use_p): New functions.  Split
2230         off from ...
2231         (create_log_links): ... here.  Correct data type of `regno'.
2232         Adjust call to alloc_insn_link.
2233         (adjust_for_new_dest): Find regno, use it in call to
2234         alloc_insn_link.
2235         (try_combine): Check reg_used_between_p when combining a PARALLEL
2236         as earlier insn.  Adjust call to alloc_insn_link.
2237         (distribute_links): Check the new field.
2238
2239 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
2240
2241         PR jit/63854
2242         * real.c (real_from_string): Add missing mpfr_clear.
2243
2244 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
2245
2246         PR jit/63854
2247         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
2248         release of stmts by converting it to an auto_vec.
2249
2250 2014-12-01  Richard Biener  <rguenther@suse.de>
2251
2252         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
2253         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
2254         bootstrap with old GCC.
2255         (generic-match.o-warn): Likewise.
2256
2257 2014-12-01  Richard Biener  <rguenther@suse.de>
2258
2259         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
2260         Properly handle FIXED_CST shifts by INTEGER_CST.
2261         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
2262         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
2263         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
2264         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
2265         (fold_binary_loc): ... here.  Call const_binop overload
2266         with result type.
2267
2268 2014-12-01  Marek Polacek  <polacek@redhat.com>
2269             Jakub Jelinek  <jakub@redhat.com>
2270
2271         PR sanitizer/64121
2272         * ubsan.c (instrument_object_size): Stop searching if the base
2273         occurs in abnormal phi.
2274
2275 2014-12-01  Marek Polacek  <polacek@redhat.com>
2276
2277         PR sanitizer/63956
2278         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
2279
2280 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
2281
2282         * gimple.h (gimple_build_assign_stat): Remove prototype.
2283         (gimple_build_assign): Remove define.  Add overload prototypes
2284         with tree lhs and either a tree rhs, or enum tree_code and
2285         1, 2 or 3 tree operands.
2286         * gimple.c (gimple_build_assign_stat): Renamed to...
2287         (gimple_build_assign): ... this.  Add overloads with
2288         enum tree_code and 1, 2 or 3 tree operands.
2289         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
2290         Rename the 3 operand overload to ...
2291         (gimple_build_assign_1): ... this.  Make it static inline.
2292         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
2293         instead of gimple_build_assign_with_ops, swap the order of first
2294         two arguments and adjust formatting where necessary.
2295         * tree-vect-slp.c (vect_get_constant_vectors,
2296         vect_create_mask_and_perm): Likewise.
2297         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2298         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2299         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2300         * tsan.c (instrument_builtin_call): Likewise.
2301         * tree-chkp.c (chkp_compute_bounds_for_assignment,
2302         chkp_generate_extern_var_bounds): Likewise.
2303         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2304         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
2305         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2306         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
2307         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
2308         gimple_mod_subtract): Likewise.
2309         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2310         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
2311         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
2312         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
2313         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
2314         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
2315         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2316         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2317         adjust_bool_pattern_cast, adjust_bool_pattern,
2318         vect_recog_bool_pattern): Likewise.
2319         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
2320         insert_initializers, introduce_cast_before_cand,
2321         replace_one_candidate): Likewise.
2322         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
2323         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
2324         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
2325         Likewise.
2326         * tree-tailcall.c (adjust_return_value_with_ops,
2327         update_accumulator_with_ops): Likewise.
2328         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
2329         * tree-ssa-reassoc.c (build_and_add_sum,
2330         optimize_range_tests_to_bit_test, update_ops,
2331         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2332         negate_value, repropagate_negates, attempt_builtin_powi,
2333         reassociate_bb): Likewise.
2334         * tree-vect-loop.c (vect_is_simple_reduction_1,
2335         get_initial_def_for_induction, vect_create_epilog_for_reduction):
2336         Likewise.
2337         * ipa-split.c (split_function): Likewise.
2338         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
2339         abs_replacement, neg_replacement): Likewise.
2340         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
2341         * tree-vrp.c (simplify_truth_ops_using_ranges,
2342         simplify_float_conversion_using_ranges,
2343         simplify_internal_call_using_ranges): Likewise.
2344         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
2345         * tree-vect-generic.c (expand_vector_divmod,
2346         optimize_vector_constructor): Likewise.
2347         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
2348         instrument_bool_enum_load): Likewise.
2349         * tree-ssa-loop-manip.c (create_iv): Likewise.
2350         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
2351         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
2352         expand_cilk_for, simd_clone_adjust): Likewise.
2353         * trans-mem.c (expand_transaction): Likewise.
2354         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
2355         vect_setup_realignment, vect_permute_load_chain,
2356         vect_shift_permute_load_chain): Likewise.
2357         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2358         vectorizable_simd_clone_call, vect_gen_widened_results_half,
2359         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
2360         vectorizable_shift, vectorizable_operation, vectorizable_store,
2361         permute_vec_elements, vectorizable_load): Likewise.
2362
2363 2014-12-01  Richard Biener  <rguenther@suse.de>
2364
2365         PR middle-end/64111
2366         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
2367         htab_hash_pointer to not break PCH.
2368
2369 2014-12-01  Richard Biener  <rguenther@suse.de>
2370
2371         PR tree-optimization/15346
2372         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
2373         add -Wno-unused-but-set-variable.
2374         * match.pd: Combine two successive divisions.
2375
2376 2014-12-01  Richard Biener  <rguenther@suse.de>
2377
2378         PR middle-end/64126
2379         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
2380         and -1 - A -> ~A.
2381         * fold-const.c (fold_binary_loc): Remove transforms here.
2382
2383 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
2384
2385         * config/mips/mips.c (mips16_build_call_stub): Move the save of
2386         the return address in $18 ahead of passing arguments to FPRs.
2387
2388 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
2389
2390         PR target/64055
2391         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
2392         values in array domain.
2393
2394 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2395
2396         PR tree-optimization/63941
2397         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
2398         DOM_BB has non-true predicate, conditionally set non-true predicate
2399         for BB.
2400
2401 2014-12-01  Martin Jambor  <mjambor@suse.cz>
2402
2403         PR ipa/63551
2404         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
2405         value of the argument to the type of the value in the condition.
2406
2407 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
2408
2409         PR target/63986
2410         PR target/51244
2411         * config/sh/sh.c (sh_unspec_insn_p,
2412         sh_insn_operands_modified_between_p): New functions.
2413         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
2414         are modified or if it has side effects, may trap or is volatile.
2415
2416 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2417
2418         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
2419         create_tmp_reg): Add default NULL value to last argument.
2420         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
2421         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
2422         last argument from create_tmp_var_raw, create_tmp_var,
2423         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
2424         * tree-ssa-strlen.c (get_string_length): Likewise.
2425         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
2426         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2427         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2428         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2429         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2430         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2431         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2432         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2433         * tsan.c (instrument_expr, instrument_builtin_call,
2434         instrument_func_entry): Likewise.
2435         * varpool.c (add_new_static_var): Likewise.
2436         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2437         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
2438         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
2439         gimplify_init_ctor_eval_range, gimplify_init_constructor,
2440         gimplify_omp_atomic, gimplify_expr): Likewise.
2441         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2442         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
2443         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
2444         vect_loop_versioning): Likewise.
2445         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
2446         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2447         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2448         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2449         vect_recog_over_widening_pattern): Likewise.
2450         * tree-sra.c (build_ref_for_offset, create_access_replacement):
2451         Likewise.
2452         * tree-cfg.c (make_blocks): Likewise.
2453         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
2454         Likewise.
2455         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
2456         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
2457         Likewise.
2458         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
2459         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
2460         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
2461         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
2462         * tree-ssa-reassoc.c (build_and_add_sum,
2463         optimize_range_tests_to_bit_test, update_ops,
2464         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2465         negate_value, repropagate_negates): Likewise.
2466         * tree-vect-loop.c (vect_is_simple_reduction_1,
2467         vect_create_epilog_for_reduction): Likewise.
2468         * ipa-split.c (split_function): Likewise.
2469         * tree-inline.c (remap_ssa_name, setup_one_parameter,
2470         declare_return_variable, tree_function_versioning): Likewise.
2471         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2472         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
2473         Likewise.
2474         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
2475         neg_replacement): Likewise.
2476         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
2477         Likewise.
2478         * tree-vrp.c (simplify_truth_ops_using_ranges,
2479         simplify_float_conversion_using_ranges,
2480         simplify_internal_call_using_ranges): Likewise.
2481         * tree-switch-conversion.c (emit_case_bit_tests,
2482         build_one_array, build_arrays, gen_def_assigns): Likewise.
2483         * gimple-fold.c (gimple_fold_builtin_memory_op,
2484         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
2485         * tree-vect-generic.c (expand_vector_divmod,
2486         optimize_vector_constructor): Likewise.
2487         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
2488         ubsan_expand_objsize_ifn, instrument_si_overflow,
2489         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
2490         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
2491         * tree-ssa-loop-manip.c (create_iv,
2492         tree_transform_and_unroll_loop): Likewise.
2493         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
2494         lower_rec_input_clauses, lower_lastprivate_clauses,
2495         expand_parallel_call, expand_omp_for_static_chunk,
2496         expand_omp_atomic_pipeline, expand_omp_target,
2497         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
2498         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
2499         lower_depend_clauses, lower_omp_target, lower_omp_1,
2500         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
2501         * tree-parloops.c (take_address_of, create_phi_for_local_result,
2502         create_call_for_reduction_1, separate_decls_in_region,
2503         create_parallel_loop): Likewise.
2504         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
2505         handle_scalar_deps_crossing_scop_limits): Likewise.
2506         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
2507         expand_assign_tm, expand_call_tm, expand_transaction,
2508         ipa_tm_insert_gettmclone_call): Likewise.
2509         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
2510         Likewise.
2511         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2512         vectorizable_call, vectorizable_simd_clone_call,
2513         vectorizable_conversion, vectorizable_store, permute_vec_elements,
2514         vectorizable_load): Likewise.
2515
2516 2014-11-29  Tobias Burnus  <burnus@net-b.de>
2517             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2518
2519         * opt-functions.awk (lang_enabled_by): Support || for
2520         enabled-by.
2521         * optc-gen.awk: Ditto.
2522         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
2523         || syntax.
2524
2525 2014-11-28  Mike Stump  <mikestump@comcast.net>
2526
2527         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
2528         (bitmap_ior_and_compl): Likewise.
2529
2530 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2531
2532         PR target/64061
2533         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
2534         subreg.
2535
2536 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
2537
2538         PR target/64093
2539         * config/rs6000/rs6000.md (and<mode>3): Don't generate
2540         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2541
2542 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2543
2544         PR rtl-optimization/64087
2545         * lra-lives.c (process_bb_lives): Add debug output.
2546         (lra_create_live_ranges): Don't remove dead insn on the second
2547         call of lra_create_live_ranges_1.
2548
2549 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
2550
2551         PR rtl-optimization/64037
2552         * combine.c (setup_incoming_promotions): Pass the argument
2553         before any promotions happen to promote_function_mode.
2554
2555 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
2556
2557         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2558         permutations to loads group of size 3.
2559
2560 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
2561
2562         * config/arm/arm.md (copysignsf3): New pattern.
2563         (copysigndf3): Likewise.
2564
2565 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2566             Ilya Verbin  <ilya.verbin@intel.com>
2567
2568         * omp-low.c (lower_omp_critical): Mark critical sections
2569         inside target functions as offloadable.
2570
2571 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2572
2573         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2574         file contains sections with LTO and offload IR, respectively.
2575
2576 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2577
2578         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2579         (symbol_table::compile): Set flag_generate_offload if there is something
2580         to offload.
2581         * common.opt (flag_generate_offload): New Variable declaration.
2582         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2583         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2584         flag_generate_offload is set.
2585         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2586         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2587         is set.
2588         * toplev.c (compile_file): Emit LTO marker if offload info has been
2589         previously emitted.  Do not emit lto_slim marker if
2590         flag_generate_offload is without flag_generate_lto.
2591         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2592
2593 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2594
2595         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2596         * config/arm/arm-tables.opt: Regenerate.
2597         * config/arm/arm-tune.md: Regenerate.
2598         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2599         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2600         MULTILIB_MATCHES.
2601
2602 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2603
2604         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2605         Include cortex-a17.md.
2606         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2607         * config/arm/arm-cores.def (cortex-a17): New entry.
2608         * config/arm/arm-tables.opt: Regenerate.
2609         * config/arm/arm-tune.md: Regenerate.
2610         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2611         * config/arm/cortex-a17.md: New file.
2612         * config/arm/cortex-a17-neon.md: New file.
2613         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2614         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2615
2616 2014-11-28  Richard Biener  <rguenther@suse.de>
2617
2618         PR middle-end/64084
2619         * genmatch.c (dt_node::gen_kids_1): New function, split out
2620         from dt_node::gen_kids.
2621         (decision_tree::cmp_node): DT_TRUE are generally not equal.
2622         (decision_tree::find_node): Treat DT_TRUE as barrier for
2623         node CSE on the same level.
2624         (dt_node::append_node): Do not keep DT_TRUE last.
2625         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2626
2627 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2628
2629         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2630         -march=armv8-a+crc.
2631
2632 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
2633
2634         * config/i386/i386.md (preferred_for_size): New attribute
2635         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
2636         attribute to conditionally disable alternative 1.
2637         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
2638         and prefered_for_speed attributes to conditionally disable
2639         alternative 1.
2640         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
2641         preferred_for_size attribute to conditionally disable
2642         alternatives 3 and 4.
2643         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
2644         preferred_for_size and prefered_for_speed attributes to conditionally
2645         disable alternatives 3 and 4.
2646         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2647
2648 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2649
2650         * dwarf2out.c (set_block_origin_self): Skip nested functions.
2651
2652 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
2653
2654         PR target/63833
2655         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2656         R15_REG for 64-bit.
2657         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2658
2659 2014-11-27  Martin Liska  <mliska@suse.cz>
2660             David Malcolm  <dmalcolm@redhat.com>
2661
2662         * ipa-icf.c (sem_function::equals_private): int* is replaced with
2663         auto_vec.
2664         (sem_function::bb_dict_test): Likewise.
2665         * ipa-icf.h: Likewise.
2666
2667 2014-11-27  Richard Biener  <rguenther@suse.de>
2668
2669         PR middle-end/64088
2670         * fold-const.c (const_unop): Re-instantiate missing condition
2671         before calling fold_abs_const.
2672
2673         PR tree-optimization/64088
2674         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2675         the stmt break from the loop over use operands.
2676
2677 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
2678
2679         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2680         Define.
2681         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2682         (fold_builtin_cpu): Ditto.
2683         * doc/extend.texi: Documment it.
2684
2685 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
2686
2687         PR middle-end/64067
2688         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2689         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2690         not only if modifier is EXPAND_INITIALIZER, but whenever
2691         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2692
2693         PR tree-optimization/64024
2694         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2695         field.  Add simd_clone_info field.
2696         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2697         (STMT_VINFO_SIMD_CLONE_INFO): Define.
2698         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2699         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2700         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
2701         base and linear_step from analysis phase and use it during transform
2702         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2703         multiplied by linear_step.
2704         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2705
2706         PR lto/64025
2707         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
2708         if it is CONSTANT_P other than CONST_INT.
2709
2710 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2711
2712         PR target/59593
2713         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2714         based on mode size.
2715         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2716         make it TARGET_EITHER.
2717         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2718         and move HFmode handling from consttable_4 to it.
2719         (consttable_4): Move HFmode handling to consttable_2 pattern.
2720         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2721         (consttable_2): Ditto.
2722
2723 2014-11-27  Richard Biener  <rguenther@suse.de>
2724
2725         * tree-ssa-sccvn.c (try_to_simplify): Allow
2726         gimple_fold_stmt_to_constant_1 to follow SSA edges.
2727
2728 2014-11-27  Richard Biener  <rguenther@suse.de>
2729
2730         PR tree-optimization/64083
2731         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2732         forcibly mark loop for removal the wrong way.
2733
2734 2014-11-27  Richard Biener  <rguenther@suse.de>
2735
2736         PR middle-end/63704
2737         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2738         and instead return false when !fstrict-aliasing.
2739
2740 2014-11-27  Richard Biener  <rguenther@suse.de>
2741
2742         PR tree-optimization/61634
2743         * tree-vect-slp.c: Include gimple-walk.h.
2744         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2745         down the SLP tree for one scalar statement.
2746         (vect_detect_hybrid_slp_1): New walker function.
2747         (vect_detect_hybrid_slp_2): Likewise.
2748         (vect_detect_hybrid_slp): Properly handle pattern statements
2749         in a pre-scan over all loop stmts.
2750
2751 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2752
2753         Revert:
2754         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2755         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2756         aarch64_convert_mode, aarch64_gen_ccmp_first,
2757         aarch64_gen_ccmp_next): New functions.
2758         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2759
2760 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
2761
2762         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2763         without -pie or -shared, error on -fsanitize=thread -static instead.
2764
2765 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2766
2767         PR ipa/61190
2768         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2769         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2770         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2771         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2772         Add new optional parameter exclude_virtual_thunks.
2773         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2774         optional parameter exclude_virtual_thunks.
2775         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2776         (cgraph_node::set_pure_flag): Likewise.
2777         (cgraph_node::function_symbol): Simplified.
2778         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2779         * ipa-pure-const.c (analyze_function): For virtual thunks set
2780         pure_const_state to IPA_NEITHER.
2781         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2782
2783 2014-11-26  Richard Biener  <rguenther@suse.de>
2784
2785         PR middle-end/63738
2786         * tree-data-ref.c (split_constant_offset_1): Do not follow
2787         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2788
2789 2014-11-26  Richard Biener  <rguenther@suse.de>
2790
2791         * fold-const.h (const_unop): Declare.
2792         (const_binop): Likewise.
2793         * fold-const.c (const_binop): Export overload that expects
2794         a type parameter and dispatches to fold_relational_const as well.
2795         Check both operand kinds for guarding the transforms.
2796         (const_unop): New function, with constant folding from fold_unary_loc.
2797         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2798         Remove constant folding done there from the simplifications.
2799         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2800         (fold_negate_expr): Remove dead code from the REAL_CST case.
2801         Avoid building garbage in the COMPLEX_CST case.
2802         * gimple-match-head.c (gimple_resimplify1): Dispatch to
2803         const_unop.
2804         (gimple_resimplify2): Dispatch to const_binop.
2805         (gimple_simplify): Likewise.
2806
2807 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2808
2809         PR bootstrap/63995
2810         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2811         debug statement when searching for a new position for
2812         bounds load/creation statement.
2813
2814 2014-11-26  Marek Polacek  <polacek@redhat.com>
2815
2816         PR sanitizer/63788
2817         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2818         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
2819         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2820
2821 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2822
2823         PR lto/64075
2824         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2825         proper size for function_code bitfield.
2826         (pack_ts_function_decl_value_fields): Likewise.
2827
2828 2014-11-21  Mark Wielaard  <mjw@redhat.com>
2829
2830         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2831         * opts.c (common_handle_option): Accept -gdwarf-5.
2832         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2833         DW_LANG_C_plus_plus_14.
2834         (lower_bound_default): Likewise. Plus DW_LANG_C11.
2835         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2836         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2837         (output_compilation_unit_header): Output at most a DWARFv4 header.
2838         (output_skeleton_debug_sections): Likewise.
2839         (output_line_info): Likewise.
2840         (output_aranges): Document header version number.
2841
2842 2014-11-26  Richard Biener  <rguenther@suse.de>
2843
2844         * gimple-fold.c (get_symbol_constant_value): Allow all
2845         GIMPLE register type zero-constants.
2846
2847 2014-11-26  Mark Wielaard  <mjw@redhat.com>
2848
2849         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2850         function decl has TREE_THIS_VOLATILE.
2851
2852 2014-11-26  Richard Biener  <rguenther@suse.de>
2853
2854         PR tree-optimization/62238
2855         * tree-predcom.c (ref_at_iteration): Unshare the expression
2856         before gimplifying it.
2857         (prepare_initializers_chain): Discard unused seq.
2858
2859 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
2860
2861         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2862         for p5600.
2863
2864 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2865
2866         * ira-lives.c (process_bb_node_lives): Make code with conditional
2867         REAL_PIC_OFFSET_TABLE_REGNUM.
2868
2869 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2870
2871         PR target/63527
2872         * ira-lives.c (process_bb_node_lives): Check and remove conflict
2873         of pic pseudo with pic hard reg.
2874
2875 2014-11-25  Rohit  <rohitarulraj@freescale.com>
2876
2877         PR bootstrap/63703
2878         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2879         added GCC hard register numbers for SPE high registers.
2880
2881 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2882
2883         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2884         before removing it, not after.
2885
2886 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2887
2888         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2889         PATTERN call.
2890
2891 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2892
2893         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2894         of addic.
2895
2896 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2897
2898         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2899         (rest of file): Replace those with code resp. CODE.
2900
2901 2014-11-25  Tom de Vries  <tom@codesourcery.com>
2902
2903         * tree-cfg.c (verify_sese): New function.
2904         (move_sese_region_to_fn): Call verify_sese.
2905         * tree-cfg.h (verify_sese): Declare.
2906
2907 2014-11-25  Richard Biener  <rguenther@suse.de>
2908
2909         PR lto/64065
2910         * lto-streamer-out.c (output_struct_function_base): Stream
2911         last_clique field.
2912         * lto-streamer-in.c (input_struct_function_base): Likewise.
2913
2914 2014-11-25  Martin Liska  <mliska@suse.cz>
2915
2916         PR bootstrap/64050
2917         PR ipa/64060
2918         * sreal.c (sreal::operator+): Addition fixed.
2919         (sreal::signedless_plus): Negative numbers are
2920         handled correctly.
2921         (sreal::operator-): Subtraction is fixed.
2922         (sreal::signedless_minus): Negative numbers are
2923         handled correctly.
2924         * sreal.h (sreal::operator<): Equal negative numbers
2925         are compared correctly.
2926         (sreal::shift): New checking asserts are introduced.
2927         Operation is fixed.
2928
2929 2014-11-25  Richard Biener  <rguenther@suse.de>
2930
2931         PR tree-optimization/61927
2932         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2933         of group and pattern analysis to the one in GCC 4.8.
2934
2935 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
2936             Jakub Jelinek  <jakub@redhat.com>
2937
2938         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2939         strlen, strncpy.
2940         * lto-wrapper.c (append_offload_options): Likewise.
2941
2942 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2943
2944         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2945         load the static chain if the call was originally direct.
2946
2947 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
2948
2949         PR ipa/64059
2950         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2951         devirtualization is disabled.
2952
2953 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2954
2955         PR target/63965
2956         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2957         Altivec & -16 mask if the type is not valid for Altivec registers.
2958         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2959         reg) that occurs during push_reload processing.
2960
2961         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2962         alternative for moving constant vectors which are easy altivec
2963         constants to GPRs.  Set the length attribute each of the
2964         alternatives.
2965
2966         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2967         work in progress patch was committed instead of the fixes for
2968         63965.
2969         * config/rs6000/rs6000.c: Likewise.
2970
2971 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2972
2973         PR ipa/63671
2974         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2975         and -fno-devirtualize more carefully.
2976         (can_remove_node_now_p): Update.
2977
2978 2014-11-24  Andrew Pinski  <apinski@cavium.com>
2979
2980         PR rtl-opt/63972
2981         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2982
2983 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2984
2985         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2986
2987 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2988
2989         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2990         Refactor by combining switch statements and make arrays into scalars.
2991
2992 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
2993
2994         PR c++/58561
2995         * dbxout.c: Include stringpool.h
2996         (dbxout_type) [default]: Ignore auto type.
2997
2998 2014-11-24  Richard Biener  <rguenther@suse.de>
2999
3000         PR tree-optimization/63679
3001         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
3002         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
3003         to properly leave off at -1.
3004         (fully_constant_vn_reference_p): Generalize folding from
3005         constant initializers.
3006         (vn_reference_lookup_3): When looking through aggregate copies
3007         handle offsetted reads and try simplifying the result to
3008         a constant.
3009         * gimple-fold.h (fold_ctor_reference): Export.
3010         * gimple-fold.c (fold_ctor_reference): Likewise.
3011
3012 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
3013
3014         * simplify-rtx.c (simplify_ternary_operation): Simplify
3015         vec_merge (vec_duplicate (vec_select)).
3016
3017 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3018
3019         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
3020         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
3021         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
3022
3023 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3024
3025         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
3026         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
3027         (cortexa57_tunings): Likewise.
3028         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
3029
3030 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3031
3032         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
3033         in the not conditional jump case.
3034         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
3035         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
3036
3037 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3038
3039         * config/aarch64/aarch64.c: Include tm-constrs.h
3040         (AARCH64_FUSE_ADRP_ADD): Define.
3041         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
3042         (cortexa53_tunings): Likewise.
3043         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
3044
3045 2014-11-24  Martin Liska  <mliska@suse.cz>
3046
3047         * ipa-inline.c (edge_badness): long is replaced by sreal
3048         as fibonacci_heap template type.
3049         (update_edge_key): Likewise.
3050         (inline_small_functions): Likewise.
3051
3052 2014-11-24  Martin Liska  <mliska@suse.cz>
3053
3054         * predict.c (propagate_freq): More elegant sreal API is used.
3055         (estimate_bb_frequencies): Precomputed constants replaced by integer
3056         constants.
3057         * sreal.c (sreal::normalize): New function.
3058         (sreal::to_int): Likewise.
3059         (sreal::operator+): Likewise.
3060         (sreal::operator-): Likewise.
3061         (sreal::signedless_plus): Likewise.
3062         (sreal::signedless_minus): Likewise.
3063         (sreal::operator/): Negative number support is added.
3064         * sreal.h: Definition of new functions added.
3065         (inline sreal operator<<): New function.
3066         (inline sreal operator>>): Likewise.
3067
3068 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3069
3070         * config/aarch64/aarch64-protos.h (struct tune_params): Add
3071         fuseable_ops field.
3072         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
3073         (cortexa53_tunings): Likewise.
3074         (cortexa57_tunings): Likewise.
3075         (thunderx_tunings): Likewise.
3076         (aarch64_macro_fusion_p): New function.
3077         (aarch_macro_fusion_pair_p): Likewise.
3078         (TARGET_SCHED_MACRO_FUSION_P): Define.
3079         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
3080         (AARCH64_FUSE_MOV_MOVK): Likewise.
3081         (AARCH64_FUSE_NOTHING): Likewise.
3082
3083 2014-11-24  Martin Liska  <mliska@suse.cz>
3084
3085         PR lto/63968
3086         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
3087         with replace_key method.
3088         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
3089         (fibonacci_heap::replace_key_data): Likewise.
3090         (fibonacci_heap::replace_key): New method that can even increment key,
3091         this operation costs O(log N).
3092         (fibonacci_heap::extract_min): New argument.
3093         (fibonacci_heap::delete_node): Likewise.
3094
3095 2014-11-24  Richard Biener  <rguenther@suse.de>
3096
3097         PR tree-optimization/55334
3098         * function.h (struct function): Add last_clique member.
3099         * tree-inline.c (remap_dependence_clique): New function.
3100         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
3101         (copy_tree_body_r): Likewise.
3102         (copy_cfg_body): Free dependence map.
3103         (copy_gimple_seq_and_replace_locals): Likewise.
3104         * tree-pretty-print.c (dump_generic_node): Dump
3105         dependence info.
3106         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
3107         to answer alias query.
3108         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
3109         tree-pretty-print.h and gimple-walk.h.
3110         (struct variable_info): Add is_restrict_var flag and ruid
3111         member.
3112         (new_var_info): Initialize is_restrict_var.
3113         (make_constraint_from_restrict): Likewise.
3114         (create_variable_info_for): Exclude restricts from global vars
3115         from new handling.
3116         (intra_create_variable_infos): But not those from parameters.
3117         (visit_loadstore): New function.
3118         (maybe_set_dependence_info): Likewise.
3119         (compute_dependence_clique): Likewise.
3120         (compute_may_aliases): Call compute_dependence_clique.
3121         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
3122         to fake MEM_REF.
3123         (dr_may_alias_p): Use recorded dependence info to answer
3124         alias query.
3125         * tree-core.h (struct tree_base): Add clique, base struct in
3126         union.
3127         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
3128         (MR_DEPENDENCE_BASE): Likewise.
3129         * tree-inline.h (dependence_hasher): New hash-map kind.
3130         (struct copy_body_data): Add dependence_map pointer.
3131         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
3132         throwing away dependence info.
3133         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
3134         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
3135
3136 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
3137
3138         PR target/53976
3139         * config/sh/sh_optimize_sett_clrt.cc
3140         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
3141         of void.  Abort at complex edges.
3142         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
3143         returned false.
3144
3145 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
3146
3147         PR other/63694
3148         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
3149         declarations.
3150         * configure: Regenerated.
3151         * config.in: Regenerated.
3152
3153 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
3154
3155         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
3156         clones as having abstract origin used.
3157         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
3158         origin check.
3159         (clone_inlined_nodes): Copy abstract originflag.
3160         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
3161         abstract origin node.
3162
3163 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
3164
3165         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
3166         * config/i386/i386.c (ix86_option_override_internal): Do not increase
3167         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3168
3169 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
3170
3171         PR target/63783
3172         PR target/51244
3173         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
3174         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
3175         Adjust related comments throughout the file.
3176
3177 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
3178
3179         PR target/63986
3180         PR target/51244
3181         * config/sh/sh.c (sh_is_logical_t_store_expr,
3182         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
3183         (sh_split_movrt_negc_to_movt_xor): New function.
3184         (sh_find_set_of_reg): Move to ...
3185         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
3186         to template function.
3187         (set_of_reg): Use rtx_insn* for insn member.
3188         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
3189         rtx_insn* for insn argument.
3190         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
3191         sequence using new sh_split_movrt_negc_to_movt_xor function.
3192         (movrt_xor): Allow also for SH2A.
3193         (*movt_movrt): Delete insns and splits.
3194
3195 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
3196
3197         PR tree-optimization/60770
3198         * tree-sra.c (clobber_subtree): New function.
3199         (sra_modify_constructor_assign): Call it.
3200
3201 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
3202
3203         PR target/63897
3204         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
3205         argument.
3206         (process_bb_lives): Rename dead_insn_p on remove_p
3207         and global_live_info_p on dead_insn_p.  Calculate local live info
3208         unconditionally.  Remove last argument in calls mark_regno_live and
3209         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
3210         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
3211         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
3212         flag of live info change.
3213         (lra_create_live_ranges): New.
3214
3215 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR target/63848
3218         PR target/63975
3219         * internal-fn.c (expand_arith_overflow_result_store,
3220         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
3221         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
3222         adjust arguments to those functions.  Use unsignedp = true for
3223         EQ, NE, GEU, LEU, LTU and GTU comparisons.
3224
3225         PR tree-optimization/64006
3226         * tree-vrp.c (stmt_interesting_for_vrp): Return true
3227         for {ADD,SUB,MUL}_OVERFLOW internal calls.
3228         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
3229         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
3230         immediate uses would change their value ranges and return
3231         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
3232         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
3233         interesting for vrp.
3234
3235 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3236
3237         PR target/63965
3238         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
3239         Altivec & -16 mask if the type is not valid for Altivec registers.
3240         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
3241         reg) that occurs during push_reload processing.
3242
3243         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
3244         alternative for moving constant vectors which are easy altivec
3245         constants to GPRs.  Set the length attribute each of the
3246         alternatives.
3247
3248 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
3249
3250         * configure.ac: When checking for MIPS .module support ensure that
3251         o32 FPXX is supported to avoid a second configure check.
3252         * configure: Regenerate.
3253
3254 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
3255
3256         * config/aarch64/iterators.md (VS): New mode iterator.
3257         (vsi2qi): New mode attribute.
3258         (VSI2QI): Likewise.
3259         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
3260         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
3261         * config/aarch64/aarch64-builtins.c
3262         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
3263
3264 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
3265
3266         PR bootstrap/63784
3267         * configure: Regenerated.
3268
3269 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3270
3271         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
3272
3273 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3274
3275         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
3276         OPTION_MASK_ISA_PCOMMIT_SET): New.
3277         (ix86_handle_option): Handle OPT_mpcommit.
3278         * config.gcc: Add pcommitintrin.h
3279         * config/i386/pcommitintrin.h: New file.
3280         * config/i386/cpuid.h (bit_PCOMMIT): Define.
3281         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
3282         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3283         __PCOMMIT__.
3284         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
3285         (PTA_PCOMMIT): Define.
3286         (ix86_option_override_internal): Handle new option.
3287         (ix86_valid_target_attribute_inner_p): Add pcommit.
3288         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
3289         (bdesc_special_args): Add __builtin_ia32_pcommit.
3290         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
3291         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
3292         (pcommit): New instruction.
3293         * config/i386/i386.opt: Add mpcommit.
3294         * config/i386/x86intrin.h: Include pcommitintrin.h.
3295
3296 2014-11-20  Mark Wielaard  <mjw@redhat.com>
3297
3298         PR debug/38757
3299         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
3300         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
3301         (darwin_override_options): Likewise.
3302         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
3303         Likewise.
3304         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
3305         Likewise.
3306         * dbxout.c (get_lang_number): Likewise.
3307         (dbxout_type): Likewise.
3308         (dbxout_symbol_location): Likewise.
3309         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
3310         also for DW_LANG_{C,C99,ObjC}.
3311         (highest_c_language): New function.
3312         (gen_compile_unit_die): Call highest_c_language to merge LTO
3313         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
3314         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
3315         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
3316         * langhooks.h (struct lang_hooks): Add version comment to name.
3317         (lang_GNU_C): New function declaration.
3318         (lang_GNU_CXX): Likewise.
3319         * langhooks.c (lang_GNU_C): New function.
3320         (lang_GNU_CXX): Likewise.
3321         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
3322
3323 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3324
3325         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
3326         OPTION_MASK_ISA_CLWB_SET): New.
3327         (ix86_handle_option): Handle OPT_mclwb.
3328         * config.gcc: Add clwbintrin.h.
3329         * config/i386/clwbintrin.h: New file.
3330         * config/i386/cpuid.h (bit_CLWB): Define.
3331         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
3332         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3333         __CLWB__.
3334         * config/i386/i386.c (ix86_target_string): Add -mclwb.
3335         (PTA_CLWB): Define.
3336         (ix86_option_override_internal): Handle new option.
3337         (ix86_valid_target_attribute_inner_p): Add clwb.
3338         (ix86_builtins): Add IX86_BUILTIN_CLWB.
3339         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
3340         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
3341         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
3342         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
3343         (clwb): New instruction.
3344         * config/i386/i386.opt: Add mclwb.
3345         * config/i386/x86intrin.h: Include clwbintrin.h.
3346
3347 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3348
3349         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
3350         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
3351         (ix86_handle_option): Handle OPT_mavx512vbmi.
3352         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
3353         * config/i386/avx512vbmiintrin.h: New file.
3354         * config/i386/avx512vbmivlintrin.h: Ditto.
3355         * config/i386/cpuid.h (bit_AVX512VBMI): New.
3356         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
3357         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3358         __AVX512VBMI__.
3359         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
3360         (PTA_AVX512VBMI): Define.
3361         (ix86_option_override_internal): Handle new options.
3362         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
3363         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
3364         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
3365         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
3366         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
3367         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
3368         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
3369         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
3370         IX86_BUILTIN_VPERMI2VARQI128.
3371         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
3372         __builtin_ia32_vpmultishiftqb256_mask,
3373         __builtin_ia32_vpmultishiftqb128_mask,
3374         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
3375         __builtin_ia32_vpermt2varqi512_maskz,
3376         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
3377         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
3378         __builtin_ia32_vpermt2varqi256_maskz,
3379         __builtin_ia32_vpermt2varqi128_mask,
3380         __builtin_ia32_vpermt2varqi128_maskz,
3381         __builtin_ia32_vpermi2varqi256_mask,
3382         __builtin_ia32_vpermi2varqi128_mask.
3383         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
3384         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
3385         * config/i386/i386.opt: Add mavx512vbmi.
3386         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
3387         avx512vbmivlintrin.h.
3388         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
3389         (VI1_AVX512VL): New iterator.
3390         (<avx512>_permvar<mode><mask_name>): Use it.
3391         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
3392         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
3393         (<avx512>_vpermi2var<mode>3_mask): Ditto.
3394         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
3395         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
3396         (<avx512>_vpermt2var<mode>3_mask): Ditto.
3397         (vpmultishiftqb<mode><mask_name>): Ditto.
3398
3399 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3400
3401         PR rtl-optimization/63952
3402         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
3403         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
3404         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
3405
3406 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3407
3408         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
3409         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
3410         (ix86_handle_option): Handle OPT_mavx512ifma.
3411         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
3412         * config/i386/avx512ifmaintrin.h: New file.
3413         * config/i386/avx512ifmaivlntrin.h: Ditto.
3414         * config/i386/cpuid.h (bit_AVX512IFMA): New.
3415         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3416         avx512ifma.
3417         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3418         __AVX512IFMA__.
3419         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
3420         (PTA_AVX512IFMA): Define.
3421         (ix86_option_override_internal): Handle new options.
3422         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
3423         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
3424         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
3425         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
3426         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
3427         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
3428         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
3429         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
3430         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
3431         __builtin_ia32_vpmadd52luq512_maskz,
3432         __builtin_ia32_vpmadd52huq512_mask,
3433         __builtin_ia32_vpmadd52huq512_maskx,
3434         __builtin_ia32_vpmadd52luq256_mask,
3435         __builtin_ia32_vpmadd52luq256_maskz,
3436         __builtin_ia32_vpmadd52huq256_mask,
3437         __builtin_ia32_vpmadd52huq256_maskz,
3438         __builtin_ia32_vpmadd52luq128_mask,
3439         __builtin_ia32_vpmadd52luq128_maskz,
3440         __builtin_ia32_vpmadd52huq128_mask,
3441         __builtin_ia32_vpmadd52huq128_maskz,
3442         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
3443         * config/i386/i386.opt: Add mavx512ifma.
3444         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
3445         avx512ifmavlintrin.h.
3446         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
3447         UNSPEC_VPMADD52HUQ.
3448         (VPMADD52): New iterator.
3449         (vpmadd52type): New attribute.
3450         (vpamdd52huq<mode>_maskz): New.
3451         (vpamdd52luq<mode>_maskz): Ditto.
3452         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
3453         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
3454
3455 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
3456
3457         Revert:
3458         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
3459         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
3460
3461 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
3462
3463         * config/mips/mips.c (mips_process_sync_loop): Place a
3464         nop in the delay slot of the branch likely instruction.
3465         (mips_output_sync_loop): Ensure mips_branch_likely is
3466         set before calling mips_output_sync_loop.
3467         (mips_sync_loop_insns): Likewise.
3468
3469 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3470
3471         PR/target 63673
3472         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
3473         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
3474         double.
3475
3476 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
3477
3478         Forward-port from 2014-10-30 4_9-branch r216934
3479
3480         PR target/63633
3481         * config/avr/avr-protos.h (regmask): New inline function.
3482         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
3483         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
3484         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
3485         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
3486         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
3487         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
3488         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
3489         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
3490         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
3491         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
3492         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
3493         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
3494         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
3495         needed.
3496
3497 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3498
3499         PR target/61137
3500         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
3501         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
3502
3503 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
3504
3505         * config/aarch64/aarch64-simd.md
3506         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
3507         output mnemonic and operands.
3508         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
3509         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
3510
3511 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3512
3513         * config/i386/i386.c (ix86_option_override_internal): Increase
3514         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3515
3516 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3517
3518         PR target/60451
3519         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
3520         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
3521         replace for V16QI, V16HI and V32QI modes.
3522         (ix86_expand_vec_perm_const_1): Add new expand.
3523
3524 2014-11-21  Nick Clifton  <nickc@redhat.com>
3525
3526         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
3527         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
3528         (rl78_expand_prologue): Save the ES register in interrupt handlers
3529         that use it.
3530         (rl78_expand_epilogue): Restore the ES register if necessary.
3531         (rl78_start_function): Mention if the function uses the ES
3532         register.
3533         (rl78_lo16): Record the use of the ES register.
3534         (transcode_memory_rtx): Likewise.
3535
3536 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3537
3538         PR tree-optimization/61773
3539         * tree-ssa-strlen.c (get_string_length): Don't assert
3540         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3541
3542         PR target/63910
3543         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3544         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
3545         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3546
3547 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
3548
3549         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3550         HOST_WIDE_INT_M1U instead of ~0.
3551         (includes_rldicr_lshift_p): Likewise.
3552
3553 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3554
3555         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3556         we need to look into its operand to determine if it is a valid
3557         address.
3558
3559 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3560
3561         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3562         vaarg_p argument and create correct CFI info.
3563         (nds32_expand_prologue): Pass true or false to
3564         nds32_emit_stack_push_multiple function.
3565
3566 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3567
3568         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3569         as RTX_FRAME_RELATED_P rtx.
3570
3571 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3572
3573         * config/nds32/nds32.opt (march): Add help message.
3574
3575 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
3576
3577         * tree-vrp.c (test_for_singularity): New parameter
3578         strict_overflow_p.  Set *strict_overflow_p to true if signed
3579         overflow must be undefined for the return value to satisfy the
3580         conditional.
3581         (simplify_cond_using_ranges): Don't perform the simplification
3582         if it violates overflow rules.
3583
3584 2014-11-20  Marek Polacek  <polacek@redhat.com>
3585
3586         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3587
3588 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3589
3590         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3591         condition would be removed due to undefined behaviour.
3592
3593 2014-11-20  Andrew Pinski  <apinski@cavium.com>
3594
3595         PR ipa/63981
3596         PR ipa/63982
3597         * ipa-polymorphic-call.c (possible_placement_new):
3598         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3599         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3600         (extr_type_from_vtbl_ptr_store): Likewise.
3601
3602 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
3603
3604         * config/rs6000/constraints.md: Avoid signed integer overflows.
3605         * config/rs6000/predicates.md: Likewise.
3606         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3607         (includes_rldic_lshift_p): Likewise.
3608         (includes_rldicr_lshift_p): Likewise.
3609         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3610         * loop-iv.c (determine_max_iter): Likewise.
3611         (iv_number_of_iterations): Likewise.
3612         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3613         * varasm.c (get_section_anchor): Likewise.
3614
3615 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
3616
3617         PR target/63870
3618         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3619         expression to aarch64_simd_lane_bounds.
3620         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3621         prototype.
3622         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3623         call to aarch64_simd_lane_bounds.
3624         (aarch64_get_lanedi): Likewise.
3625         (aarch64_ld2_lane<mode>): Likewise.
3626         (aarch64_ld3_lane<mode>): Likewise.
3627         (aarch64_ld4_lane<mode>): Likewise.
3628         (aarch64_im_lane_boundsi): Likewise.
3629         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3630         parameter. Report calling function in error message if exp is non-NULL.
3631
3632 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3633
3634         PR target/60111
3635         * config/sh/sh.c: Use signed char for signed field.
3636
3637 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3638
3639         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3640         hash_table.
3641
3642 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3643
3644         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3645         tree-scalar-evolution.c: Replace htab with hash_table.
3646
3647 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3648
3649         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3650         (lto_free_function_in_decl_state): Likewise.
3651         * lto-streamer-out.c (copy_function_or_variable): Likewise.
3652         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3653         (lto_file_decl_data_num_ ## name ## s): Likewise.
3654         (struct lto_tree_ref_table): Remove.
3655         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3656
3657 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3658
3659         * hash-map.h (hash_map::iterator): New class.
3660         (hash_map::begin): New method.
3661         (hash_map::end): Likewise.
3662         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3663         replace splay_tree with hash_map.
3664
3665 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3666
3667         * hash-table.h (hash_table::hash_table): Call alloc_entries.
3668         (hash_table::alloc_entries): new method.
3669         (hash_table::expand): Call alloc_entries.
3670         (hash_table::empty): Likewise.
3671
3672 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3673
3674         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3675         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3676
3677 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3678
3679         * doc/gty.texi: Document the new cache gty attribute.
3680         * gengtype.c (finish_cache_funcs): New function.
3681         (write_roots): Call gt_clear_cache on global variables with the cache
3682         gty attribute.
3683         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3684         * ggc.h (gt_clear_caches): New declaration.
3685         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3686         memory.
3687         (gt_cleare_cache): New function.
3688         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3689
3690 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3691
3692         * combine.c (try_combine): Prefer to delete dead SETs inside
3693         a PARALLEL over keeping them.
3694
3695 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3696
3697         * combine.c (combine_validate_cost): Always print the insn costs
3698         to the dump file.
3699
3700 2014-11-20  Richard Henderson <rth@redhat.com>
3701
3702         PR target/63977
3703         * config/i386/i386.c (ix86_static_chain): Reinstate the check
3704         for DECL_STATIC_CHAIN.
3705
3706 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
3707
3708         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3709         Fixup prototype.
3710         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3711         aarch64_cannot_force_const_mem, aarch64_classify_address,
3712         aarch64_classify_symbolic_expression): Fixup call to
3713         aarch64_classify_symbol.
3714         (aarch64_classify_symbol): Add range-checking for
3715         symbol + offset addressing for tiny and small models.
3716
3717 2014-11-20  Richard Biener  <rguenther@suse.de>
3718
3719         PR middle-end/63962
3720         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3721         Guard with single-use operand 0.
3722
3723 2014-11-20   Richard Biener  <rguenther@suse.de>
3724
3725         PR tree-optimization/63677
3726         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3727         (avail_exprs_stack): Make a vector of pairs.
3728         (struct hash_expr_elt): Replace stmt member with vop member.
3729         (expr_elt_hasher::equal): Simplify.
3730         (initialize_hash_element): Adjust.
3731         (initialize_hash_element_from_expr): Likewise.
3732         (dom_opt_dom_walker::thread_across_edge): Likewise.
3733         (record_cond): Likewise.
3734         (dom_opt_dom_walker::before_dom_children): Likewise.
3735         (print_expr_hash_elt): Likewise.
3736         (remove_local_expressions_from_table): Restore previous state
3737         if requested.
3738         (record_equivalences_from_stmt): Record &x + CST as constant
3739         &MEM[&x, CST] for further propagation.
3740         (vuse_eq): New function.
3741         (lookup_avail_expr): For loads use the alias oracle to see
3742         whether a candidate from the expr hash is usable.
3743         (avail_expr_hash): Do not hash VUSEs.
3744
3745 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3746
3747         PR target/59593
3748         * config/arm/arm.md (*movhi_insn): Use right formatting
3749         for immediate.
3750
3751 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
3752
3753         PR sanitizer/63845
3754         * function.c (assign_parms): Move init of pic_offset_table_rtx
3755         from here to...
3756         * cfgexpand.c (expand_used_vars): ...here.
3757
3758 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3759
3760         * tree.c (free_lang_data_in_type): If BINFO has no important
3761         information in it, set it to NULL.
3762         (get_binfo_at_offset): Do not walk fields, only bases.
3763         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3764         to be NULL.
3765         * ipa-polymorphic-call.c (record_known_type): Likewise.
3766
3767 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3768
3769         PR jit/63854
3770         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3771         congruence_class_group *.
3772
3773 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
3774
3775         PR target/63947
3776         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3777         Output "b" and "nb" suffix for FP mode.
3778
3779 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3780
3781         PR bootstrap/63963
3782         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream
3783         out DECL_FUNCTION_SPECIFIC_TARGET
3784         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream
3785         in DECL_FUNCTION_SPECIFIC_TARGET.
3786
3787 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3788
3789         PR jit/63854
3790         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3791
3792 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3793
3794         PR jit/63854
3795         * lra.c (lra): After creating live ranges in preparation for call
3796         to lra_inheritance, set live_p to true.
3797
3798 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3799
3800         PR jit/63854
3801         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3802         "path", delete it.
3803         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3804
3805 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3806
3807         PR jit/63854
3808         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3809         vec<> to auto_vec<> to fix a leak.
3810
3811 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3812
3813         PR jit/63854
3814         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3815
3816 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3817
3818         PR jit/63854
3819         * ira-costs.c (ira_costs_c_finalize): New function.
3820         * ira.h (ira_costs_c_finalize): New prototype.
3821         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3822
3823 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3824
3825         PR jit/63854
3826         * ipa-reference.c (ipa_reference_c_finalize): Release
3827         optimization_summary_obstack.
3828
3829 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3830
3831         PR jit/63854
3832         * toplev.c (toplev::finalize): Free opts_obstack.
3833
3834 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3835
3836         PR jit/63854
3837         * toplev.c (toplev::finalize): Clean up save_decoded_options.
3838
3839 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3840
3841         PR jit/63854
3842         * bb-reorder.c
3843         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3844         local bbs_in_hot_partition from vec<> to auto_vec<>.
3845
3846 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3847
3848         PR jit/63854
3849         * config/alpha/alpha.c (alpha_option_override): Remove static from
3850         "handle_trap_shadows_info" and "align_insns_info".
3851         * config/i386/i386.c (ix86_option_override): Likewise for
3852         "insert_vzeroupper_info".
3853         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3854         "rl78_devirt_info" and "rl78_move_elim_info".
3855         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3856         "analyze_swaps_info".
3857         * context.c (gcc::context::~context): New.
3858         * context.h (gcc::context::~context): New.
3859         * dumpfile.c (dump_files): Add "false" initializers for new field
3860         "owns_strings".
3861         (gcc::dump_manager::~dump_manager): New.
3862         (gcc::dump_manager::dump_register): Add param "take_ownership".
3863         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3864         (gcc::dump_manager::~dump_manager): New.
3865         (gcc::dump_manager::dump_register): Add param "take_ownership".
3866         * pass_manager.h (gcc::pass_manager::operator delete): New.
3867         (gcc::pass_manager::~pass_manager): New.
3868         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3869         new "owns_strings" argument to dump_register.
3870         (pass_manager::operator delete): New.
3871         (delete_pass_tree): New function.
3872         (pass_manager::~pass_manager): New.
3873         * statistics.c (statistics_early_init): Pass "false" to
3874         new "owns_strings" argument to dump_register.
3875         * toplev.c (toplev::finalize): Clean up the context and thus the
3876         things it owns.
3877
3878 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3879
3880         PR jit/63854
3881         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3882         obstack_free when cleaning up valid_mode_changes_obstack.
3883
3884 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3885
3886         PR jit/63854
3887         * opts.c (finalize_options_struct): New.
3888         * opts.h (finalize_options_struct): New.
3889         * toplev.c (toplev::finalize): Call finalize_options_struct
3890         on global_options and global_options_set.
3891
3892 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3893             Jakub Jelinek  <jakub@redhat.com>
3894
3895         PR driver/36312
3896         PR driver/63837
3897         * gcc.c (process_command): Don't check for input/output
3898         filename equality if output is HOST_BIT_BUCKET.
3899         * toplev.c (init_asm_output): Likewise.
3900
3901 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3902
3903         Merger of git branch "gimple-classes-v2-option-3".
3904
3905         * ChangeLog.gimple-classes: New.
3906
3907         * coretypes.h (struct gcond): Add forward decl.
3908         (struct gdebug): Likewise.
3909         (struct ggoto): Likewise.
3910         (struct glabel): Likewise.
3911         (struct gswitch): Likewise.
3912         (struct gassign): Likewise.
3913         (struct gasm): Likewise.
3914         (struct gcall): Likewise.
3915         (struct gtransaction): Likewise.
3916         (struct greturn): Likewise.
3917         (struct gbind): Likewise.
3918         (struct gcatch): Likewise.
3919         (struct geh_filter): Likewise.
3920         (struct geh_mnt): Likewise.
3921         (struct geh_else): Likewise.
3922         (struct gresx): Likewise.
3923         (struct geh_dispatch): Likewise.
3924         (struct gphi): Likewise.
3925         (struct gtry): Likewise.
3926         (struct gomp_atomic_load): Likewise.
3927         (struct gomp_atomic_store): Likewise.
3928         (struct gomp_continue): Likewise.
3929         (struct gomp_critical): Likewise.
3930         (struct gomp_for): Likewise.
3931         (struct gomp_parallel): Likewise.
3932         (struct gomp_task): Likewise.
3933         (struct gomp_sections): Likewise.
3934         (struct gomp_single): Likewise.
3935         (struct gomp_target): Likewise.
3936         (struct gomp_teams): Likewise.
3937
3938         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3939         for renaming of gimple subclasses.
3940
3941         * gdbhooks.py: Update.
3942
3943         * gimple-iterator.c (gsi_for_phi): New.
3944         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3945         to gphi_iterator.
3946         * gimple-iterator.h (struct gphi_iterator): New subclass of
3947         gimple_stmt_iterator.
3948         (gsi_for_phi): New prototype.
3949         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3950         to gphi_iterator.
3951         (gsi_next_nonvirtual_phi): Strengthen param from
3952         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3953         gimple to gphi *.
3954
3955         * gsstruct.def: Update for renamings of classes.
3956
3957         * gimple.c (gimple_build_return): Strengthen return type from
3958         gimple to greturn *.
3959         (gimple_call_reset_alias_info): Strengthen param to gcall *.
3960         (gimple_build_call_1): Strengthen return type from gimple to
3961         gcall *.
3962         (gimple_build_call_vec): Likewise.
3963         (gimple_build_call): Likewise.
3964         (gimple_build_call_valist): Likewise.
3965         (gimple_build_call_internal_1): Likewise.
3966         (gimple_build_call_internal): Likewise.
3967         (gimple_build_call_internal_vec): Likewise.
3968         (gimple_build_call_from_tree): Likewise.
3969         (gimple_build_assign_stat): Strengthen return type from gimple to
3970         gassign *.
3971         (gimple_build_assign_with_ops): Likewise.
3972         (gimple_build_assign_with_ops): Likewise.
3973         (gimple_build_cond): Strengthen return type from gimple to
3974         gcond *.
3975         (gimple_build_cond_from_tree): Likewise.
3976         (gimple_cond_set_condition_from_tree): Require a gcond *.
3977         (gimple_build_label): Strengthen return type from gimple to
3978         glabel *.
3979         (gimple_build_goto): Strengthen return type from gimple to
3980         ggoto *.
3981         (gimple_build_bind): Strengthen return type from gimple to
3982         gbind *.
3983         (gimple_build_asm_1): Strengthen return type from gimple to
3984         gasm *.
3985         (gimple_build_asm_vec): Likewise.
3986         (gimple_build_catch): Strengthen return type from gimple to
3987         gcatch *.
3988         (gimple_build_eh_filter): Strengthen return type from gimple to
3989         geh_filter *.
3990         (gimple_build_eh_must_not_throw): Strengthen return type from
3991         gimple to geh_mnt *.
3992         (gimple_build_eh_else): Strengthen return type from gimple to
3993         geh_else *.
3994         (gimple_build_try): Update for renaming of gimple_statement_try to
3995         gtry.
3996         (gimple_build_resx): Strengthen return type from gimple to
3997         gresx *.
3998         (gimple_build_switch_nlabels): Strengthen return type from gimple
3999         to gswitch *.
4000         (gimple_build_switch): Likewise.
4001         (gimple_build_eh_dispatch): Strengthen return type from gimple to
4002         geh_dispatch *.
4003         (gimple_build_debug_bind_stat): Strengthen return type from gimple
4004         to gdebug *.
4005         (gimple_build_debug_source_bind_stat): Strengthen return type from
4006         gimple to gdebug *.
4007         (gimple_build_omp_critical): Strengthen return type from gimple to
4008         gomp_critical *.
4009         (gimple_build_omp_for): Strengthen return type from gimple to
4010         gomp_for *.
4011         (gimple_build_omp_parallel): Strengthen return type from gimple to
4012         gomp_parallel *.
4013         (gimple_build_omp_task): Strengthen return type from gimple to
4014         gomp_task *.
4015         (gimple_build_omp_continue): Strengthen return type from gimple to
4016         gomp_continue *.
4017         (gimple_build_omp_sections): Strengthen return type from gimple to
4018         gomp_sections *.
4019         (gimple_build_omp_single): Strengthen return type from gimple to
4020         gomp_single *.
4021         (gimple_build_omp_target): Strengthen return type from gimple to
4022         gomp_target *.
4023         (gimple_build_omp_teams): Strengthen return type from gimple to
4024         gomp_teams *.
4025         (gimple_build_omp_atomic_load): Strengthen return type from gimple
4026         to gomp_atomic_load *.
4027         (gimple_build_omp_atomic_store): Strengthen return type from gimple
4028         to gomp_atomic_store *.
4029         (gimple_build_transaction): Strengthen return type from gimple
4030         to gtransaction *.
4031         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
4032         (gimple_call_fnspec): Require a const gcall *.
4033         (gimple_call_arg_flags): Likewise.
4034         (gimple_call_return_flags): Likewise.
4035         (gimple_set_bb): Add a checked cast.
4036         (gimple_copy): Within the cases, add locals of the appropriate
4037         subclass and use in place of "stmt" and "copy" for typesafety.
4038         (gimple_has_side_effects): Add a checked cast.
4039         (gimple_could_trap_p_1): Likewise.
4040         (gimple_call_copy_skip_args): Require a gcall *, and return one.
4041         (gimple_asm_clobbers_memory_p): Require a const gasm *.
4042         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
4043         dyn_cast, introducing local "return_stmt" and using ti in place
4044         of "stmt".
4045
4046         * gimple.h (gimple_vec): Eliminate this typedef.
4047         (struct gimple_statement_call): Rename to...
4048         (struct gcall): ...this.
4049         (struct gimple_statement_bind): Rename to...
4050         (struct gbind): ...this.
4051         (struct gimple_statement_catch): Rename to...
4052         (struct gcatch): ...this.
4053         (struct gimple_statement_eh_filter): Rename to...
4054         (struct geh_filter): ...this.
4055         (struct gimple_statement_eh_else): Rename to...
4056         (struct geh_else): ...this.
4057         (struct gimple_statement_eh_mnt): Rename to...
4058         (struct geh_mnt): ...this.
4059         (struct gimple_statement_phi): Rename to...
4060         (struct gphi): ...this.
4061         (struct gimple_statement_resx): Rename to...
4062         (struct gresx): ...this.
4063         (struct gimple_statement_eh_dispatch): Rename to...
4064         (struct geh_dispatch): ...this.
4065         (struct gimple_statement_try): Rename to...
4066         (struct gtry): ...this.
4067         (struct gimple_statement_asm): Rename to...
4068         (struct gasm): ...this.
4069         (struct gimple_statement_omp_critical): Rename to...
4070         (struct gomp_critical): ...this.
4071         (struct gimple_statement_omp_for): Rename to...
4072         (struct gomp_for): ...this.
4073         (struct gimple_statement_omp_parallel): Rename to...
4074         (struct gomp_parallel): ...this.
4075         (struct gimple_statement_omp_target): Rename to...
4076         (struct gomp_target): ...this.
4077         (struct gimple_statement_omp_task): Rename to...
4078         (struct gomp_task): ...this.
4079         (struct gimple_statement_omp_sections): Rename to...
4080         (struct gomp_sections): ...this.
4081         (struct gimple_statement_omp_continue): Rename to...
4082         (struct gomp_continue): ...this.
4083         (struct gimple_statement_omp_single): Rename to...
4084         (struct gomp_single): ...this.
4085         (struct gimple_statement_omp_teams): Rename to...
4086         (struct gomp_teams): ...this.
4087         (struct gimple_statement_omp_atomic_load): Rename to...
4088         (struct gomp_atomic_load): ...this.
4089         (struct gimple_statement_omp_atomic_store :): Rename to...
4090         (struct gomp_atomic_store :): ...this.
4091         (struct gimple_statement_transaction): Rename to...
4092         (struct gtransaction): ...this.
4093         (struct gcond): New subclass.
4094         (struct gdebug): New subclass.
4095         (struct ggoto): New subclass.
4096         (struct glabel): New subclass.
4097         (struct gswitch): New subclass.
4098         (struct gassign): New subclass.
4099         (struct greturn): New subclass.
4100         (is_a_helper <gimple_statement_asm *>::test): Rename to...
4101         (is_a_helper <gasm *>::test): ...this.
4102         (is_a_helper <gimple_statement_bind *>::test): Rename to...
4103         (is_a_helper <gbind *>::test): ...this.
4104         (is_a_helper <gassign *>::test): New.
4105         (is_a_helper <gimple_statement_call *>::test): Rename to...
4106         (is_a_helper <gcall *>::test): ...this.
4107         (is_a_helper <gimple_statement_catch *>::test): Rename to...
4108         (is_a_helper <gcatch *>::test): ...this.
4109         (is_a_helper <gimple_statement_resx *>::test): Rename to...
4110         (is_a_helper <gresx *>::test): ...this.
4111         (is_a_helper <gcond *>::test): New.
4112         (is_a_helper <gdebug *>::test): New.
4113         (is_a_helper <ggoto *>::test): New.
4114         (is_a_helper <glabel *>::test): New.
4115         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
4116         (is_a_helper <geh_dispatch *>::test): ...this.
4117         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
4118         (is_a_helper <geh_else *>::test): ...this.
4119         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
4120         (is_a_helper <geh_filter *>::test): ...this.
4121         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
4122         (is_a_helper <geh_mnt *>::test): ...this.
4123         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
4124         (is_a_helper <gomp_atomic_load *>::test): ...this.
4125         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
4126         (is_a_helper <gomp_atomic_store *>::test): ...this.
4127         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
4128         (is_a_helper <gomp_continue *>::test): ...this.
4129         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
4130         (is_a_helper <gomp_critical *>::test): ...this.
4131         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
4132         (is_a_helper <gomp_for *>::test): ...this.
4133         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
4134         (is_a_helper <gomp_parallel *>::test): ...this.
4135         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
4136         (is_a_helper <gomp_target *>::test): ...this.
4137         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
4138         (is_a_helper <gomp_sections *>::test): ...this.
4139         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
4140         (is_a_helper <gomp_single *>::test): ...this.
4141         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
4142         (is_a_helper <gomp_teams *>::test): ...this.
4143         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
4144         (is_a_helper <gomp_task *>::test): ...this.
4145         (is_a_helper <gimple_statement_phi *>::test): Rename to...
4146         (is_a_helper <gphi *>::test): ...this.
4147         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
4148         (is_a_helper <gtransaction *>::test): ...this.
4149         (is_a_helper <greturn *>::test): New.
4150         (is_a_helper <gswitch *>::test): New.
4151         (is_a_helper <gimple_statement_try *>::test): Rename to...
4152         (is_a_helper <gtry *>::test): ...this.
4153         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
4154         (is_a_helper <const gasm *>::test): ...this.
4155         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
4156         (is_a_helper <const gbind *>::test): ...this.
4157         (is_a_helper <const gimple_statement_call *>::test): Rename to...
4158         (is_a_helper <const gcall *>::test): ...this.
4159         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
4160         (is_a_helper <const gcatch *>::test): ...this.
4161         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
4162         (is_a_helper <const gresx *>::test): ...this.
4163         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
4164         (is_a_helper <const geh_dispatch *>::test): ...this.
4165         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
4166         (is_a_helper <const geh_filter *>::test): ...this.
4167         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
4168         Rename to...
4169         (is_a_helper <const gomp_atomic_load *>::test): ...this.
4170         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
4171         Rename to...
4172         (is_a_helper <const gomp_atomic_store *>::test): ...this.
4173         (is_a_helper <const gimple_statement_omp_continue *>::test):
4174         Rename to...
4175         (is_a_helper <const gomp_continue *>::test): ...this.
4176         (is_a_helper <const gimple_statement_omp_critical *>::test):
4177         Rename to...
4178         (is_a_helper <const gomp_critical *>::test): ...this.
4179         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
4180         (is_a_helper <const gomp_for *>::test): ...this.
4181         (is_a_helper <const gimple_statement_omp_parallel *>::test):
4182         Rename to...
4183         (is_a_helper <const gomp_parallel *>::test): ...this.
4184         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
4185         (is_a_helper <const gomp_target *>::test): ...this.
4186         (is_a_helper <const gimple_statement_omp_sections *>::test):
4187         Rename to...
4188         (is_a_helper <const gomp_sections *>::test): ...this.
4189         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
4190         (is_a_helper <const gomp_single *>::test): ...this.
4191         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
4192         (is_a_helper <const gomp_teams *>::test): ...this.
4193         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
4194         (is_a_helper <const gomp_task *>::test): ...this.
4195         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
4196         (is_a_helper <const gphi *>::test): ...this.
4197         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
4198         (is_a_helper <const gtransaction *>::test): ...this.
4199         (gimple_build_return): Strengthen return type to greturn *.
4200         (gimple_call_reset_alias_info): Require a gcall *.
4201         (gimple_build_call_vec): Return a gcall *.
4202         (gimple_build_call): Likewise.
4203         (gimple_build_call_valist): Likewise.
4204         (gimple_build_call_internal): Likewise.
4205         (gimple_build_call_internal_vec): Likewise.
4206         (gimple_build_call_from_tree): Likewise.
4207         (gimple_build_assign_stat): Return a gassign *.
4208         (gimple_build_assign_with_ops): Likewise.
4209         (gimple_build_cond): Return a gcond *.
4210         (gimple_build_cond_from_tree): Likewise.
4211         (gimple_cond_set_condition_from_tree): Require a gcond *.
4212         (gimple_build_label): Return a glabel *.
4213         (gimple_build_goto): Return a ggoto *.
4214         (gimple_build_bind): Return a gbind *.
4215         (gimple_build_asm_vec): Return a gasm *.
4216         (gimple_build_catch): Return a gcatch *.
4217         (gimple_build_eh_filter): Return a geh_filter *.
4218         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
4219         (gimple_build_eh_else): Return a geh_else *.
4220         (gimple_build_try): Return a gtry *.
4221         (gimple_build_resx): Return a gresx *.
4222         (gimple_build_switch_nlabels): Return a gswitch *.
4223         (gimple_build_switch): Return a gswitch *.
4224         (gimple_build_eh_dispatch): Return a geh_dispatch *.
4225         (gimple_build_debug_bind_stat): Return a gdebug *.
4226         (gimple_build_debug_source_bind_stat): Return a gdebug *.
4227         (gimple_build_omp_critical): Return a gomp_critical *.
4228         (gimple_build_omp_for): Return a gomp_for *.
4229         (gimple_build_omp_parallel): Return a gomp_parallel *.
4230         (gimple_build_omp_task): Return a gomp_task *.
4231         (gimple_build_omp_continue): Return a gomp_continue *.
4232         (gimple_build_omp_sections): Return a gomp_sections *.
4233         (gimple_build_omp_single): Return a gomp_single *.
4234         (gimple_build_omp_target): Return a gomp_target *.
4235         (gimple_build_omp_teams): Return a gomp_teams *.
4236         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
4237         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
4238         (gimple_build_transaction): Return a gtransaction *.
4239         (gimple_call_arg_flags): Require a const gcall *.
4240         (gimple_call_return_flags): Likewise.
4241         (gimple_call_copy_skip_args): Require and return a gcall *.
4242         (gimple_asm_clobbers_memory_p): Require a const gasm *.
4243         (gimple_seq_first_stmt_as_a_bind): New.
4244         (gimple_assign_nontemporal_move_p): Require a const gassign *
4245         rather than a const_gimple.
4246         (gimple_call_internal_fn): Update for renaming to gcall.
4247         (gimple_call_fntype): Likewise.
4248         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
4249         (gimple_call_set_fn): Likewise.
4250         (gimple_call_set_internal_fn): Likewise.
4251         (gimple_call_set_chain): Likewise.
4252         (gimple_call_set_tail): Likewise.
4253         (gimple_call_tail_p): Likewise.
4254         (gimple_call_set_return_slot_opt): Likewise.
4255         (gimple_call_return_slot_opt_p): Likewise.
4256         (gimple_call_set_from_thunk): Likewise.
4257         (gimple_call_from_thunk_p): Likewise.
4258         (gimple_call_set_va_arg_pack): Likewise.
4259         (gimple_call_va_arg_pack_p): Likewise.
4260         (gimple_call_set_nothrow): Likewise.
4261         (gimple_call_nothrow_p): Likewise.
4262         (gimple_call_set_alloca_for_var): Likewise.
4263         (gimple_call_alloca_for_var_p): Likewise.
4264         (gimple_call_use_set): Likewise.
4265         (gimple_call_clobber_set): Likewise.
4266         (gimple_call_return_type): Require a const gcall * rather than a
4267         const_gimple.
4268         (gimple_call_chain_ptr): Likewise.
4269         (gimple_call_copy_flags): Require a pair of gcall *.
4270         (gimple_cond_set_code): Require a gcond * rather than a gimple
4271         (gimple_cond_set_lhs): Likewise.
4272         (gimple_cond_set_rhs): Likewise.
4273         (gimple_cond_set_true_label): Likewise.
4274         (gimple_cond_set_false_label): Likewise.
4275         (gimple_cond_make_false): Likewise.
4276         (gimple_cond_make_true): Likewise.
4277         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
4278         const_gimple.
4279         (gimple_cond_rhs_ptr): Likewise.
4280         (gimple_cond_true_label): Likewise.
4281         (gimple_cond_false_label): Likewise.
4282         (gimple_cond_true_p): Likewise.
4283         (gimple_cond_false_p): Likewise.
4284         (gimple_cond_set_condition): Likewise.
4285         (gimple_label_label): Require a const glabel *.
4286         (gimple_label_set_label): Require a glabel *.
4287         (gimple_goto_set_dest): Require a ggoto *.
4288         (gimple_bind_vars): Require a const gbind *.
4289         (gimple_bind_block): Likewise.
4290         (gimple_bind_set_vars): Require a gbind *.
4291         (gimple_bind_append_vars): Likewise.
4292         (gimple_bind_body_ptr): Likewise.
4293         (gimple_bind_body): Likewise.
4294         (gimple_bind_set_body): Likewise.
4295         (gimple_bind_add_stmt): Likewise.
4296         (gimple_bind_add_seq): Likewise.
4297         (gimple_bind_set_block): Likewise.
4298         (gimple_asm_ninputs): Require a const gasm *.
4299         (gimple_asm_noutputs): Likewise.
4300         (gimple_asm_nclobbers): Likewise.
4301         (gimple_asm_nlabels): Likewise.
4302         (gimple_asm_input_op): Likewise.
4303         (gimple_asm_input_op_ptr): Likewise.
4304         (gimple_asm_output_op): Likewise.
4305         (gimple_asm_output_op_ptr): Likewise.
4306         (gimple_asm_clobber_op): Likewise.
4307         (gimple_asm_label_op): Likewise.
4308         (gimple_asm_string): Likewise.
4309         (gimple_asm_volatile_p): Likewise.
4310         (gimple_asm_input_p): Likewise.
4311         (gimple_asm_set_input_op): Require a gasm *.
4312         (gimple_asm_set_output_op): Likewise.
4313         (gimple_asm_set_clobber_op): Likewise.
4314         (gimple_asm_set_label_op): Likewise.
4315         (gimple_asm_set_volatile): Likewise.
4316         (gimple_asm_set_input): Likewise.
4317         (gimple_catch_types): Require a const gcatch *.
4318         (gimple_catch_types_ptr): Require a gcatch *.
4319         (gimple_catch_handler_ptr): Likewise.
4320         (gimple_catch_handler): Likewise.
4321         (gimple_catch_set_types): Likewise.
4322         (gimple_catch_set_handler): Likewise.
4323         (gimple_eh_filter_types): Update for renaming of subclass to
4324         geh_filter.
4325         (gimple_eh_filter_types_ptr): Likewise.
4326         (gimple_eh_filter_failure_ptr): Likewise.
4327         (gimple_eh_filter_set_types): Require a geh_filter *.
4328         (gimple_eh_filter_set_failure): Likewise.
4329         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
4330         (gimple_eh_must_not_throw_set_fndecl): Likewise.
4331         (gimple_eh_else_n_body_ptr): Require a geh_else *.
4332         (gimple_eh_else_n_body): Likewise.
4333         (gimple_eh_else_e_body_ptr): Likewise.
4334         (gimple_eh_else_e_body): Likewise.
4335         (gimple_eh_else_set_n_body): Likewise.
4336         (gimple_eh_else_set_e_body): Likewise.
4337         (gimple_try_set_kind): Require a gtry *.
4338         (gimple_try_set_catch_is_cleanup): Likewise.
4339         (gimple_try_set_eval): Likewise.
4340         (gimple_try_set_cleanup): Likewise.
4341         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
4342         (gimple_try_cleanup_ptr): Likewise.
4343         (gimple_phi_capacity): Update for renaming of subclass to gphi.
4344         (gimple_phi_num_args): Likewise.
4345         (gimple_phi_result): Likewise.
4346         (gimple_phi_result_ptr): Likewise.
4347         (gimple_phi_arg): Likewise.
4348         (gimple_phi_set_result): Require a gphi *.
4349         (gimple_phi_set_arg): Likewise.
4350         (gimple_phi_arg_def_ptr): Likewise.
4351         (gimple_phi_arg_edge): Likewise.
4352         (gimple_phi_arg_location): Likewise.
4353         (gimple_phi_arg_location_from_edge): Likewise.
4354         (gimple_phi_arg_set_location): Likewise.
4355         (gimple_phi_arg_has_location): Likewise.
4356         (gimple_resx_region): Require a const gresx *.
4357         (gimple_resx_set_region): Require a gresx *.
4358         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
4359         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
4360         (gimple_switch_num_labels): Require a const gswitch *.
4361         (gimple_switch_set_num_labels): Likewise.
4362         (gimple_switch_index): Likewise.
4363         (gimple_switch_index_ptr): Likewise.
4364         (gimple_switch_label): Likewise.
4365         (gimple_switch_default_label): Likewise.
4366         (gimple_switch_set_index): Require a gswitch *.
4367         (gimple_switch_set_label): Likewise.
4368         (gimple_switch_set_default_label): Likewise.
4369         (gimple_omp_critical_name): Require a const gomp_critical *.
4370         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
4371         (gimple_omp_critical_set_name): Likewise.
4372         (gimple_omp_for_set_kind): Require a gomp_for *.
4373         (gimple_omp_for_set_combined_p): Likewise.
4374         (gimple_omp_for_set_combined_into_p): Likewise.
4375         (gimple_omp_for_clauses): Update for renaming of subclass to
4376         gomp_for.
4377         (gimple_omp_for_clauses_ptr): Likewise.
4378         (gimple_omp_for_set_clauses): Likewise.
4379         (gimple_omp_for_collapse): Likewise.
4380         (gimple_omp_for_index): Likewise.
4381         (gimple_omp_for_index_ptr): Likewise.
4382         (gimple_omp_for_set_index): Likewise.
4383         (gimple_omp_for_initial): Likewise.
4384         (gimple_omp_for_initial_ptr): Likewise.
4385         (gimple_omp_for_set_initial): Likewise.
4386         (gimple_omp_for_final): Likewise.
4387         (gimple_omp_for_final_ptr): Likewise.
4388         (gimple_omp_for_set_final): Likewise.
4389         (gimple_omp_for_incr): Likewise.
4390         (gimple_omp_for_incr_ptr): Likewise.
4391         (gimple_omp_for_set_incr): Likewise.
4392         (gimple_omp_for_pre_body): Likewise.
4393         (gimple_omp_for_set_pre_body): Likewise.
4394         (gimple_omp_parallel_clauses): Update for renaming of subclass to
4395         gomp_parallel.
4396         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
4397         (gimple_omp_parallel_set_clauses): Likewise.
4398         (gimple_omp_parallel_child_fn_ptr): Likewise.
4399         (gimple_omp_parallel_set_child_fn): Likewise.
4400         (gimple_omp_parallel_data_arg_ptr): Likewise.
4401         (gimple_omp_parallel_set_data_arg): Likewise.
4402         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
4403         (gimple_omp_parallel_data_arg): Likewise.
4404         (gimple_omp_task_clauses): Update for renaming of subclass to
4405         gomp_task.
4406         (gimple_omp_task_clauses_ptr): Likewise.
4407         (gimple_omp_task_set_clauses): Likewise.
4408         (gimple_omp_task_child_fn): Likewise.
4409         (gimple_omp_task_child_fn_ptr): Likewise.
4410         (gimple_omp_task_set_child_fn): Likewise.
4411         (gimple_omp_task_data_arg): Likewise.
4412         (gimple_omp_task_data_arg_ptr): Likewise.
4413         (gimple_omp_task_set_data_arg): Likewise.
4414         (gimple_omp_taskreg_clauses): Whitespace fixes.
4415         (gimple_omp_taskreg_clauses_ptr): Likewise.
4416         (gimple_omp_taskreg_set_clauses): Likewise.
4417         (gimple_omp_taskreg_child_fn): Likewise.
4418         (gimple_omp_taskreg_child_fn_ptr): Likewise.
4419         (gimple_omp_taskreg_set_child_fn): Likewise.
4420         (gimple_omp_taskreg_data_arg): Likewise.
4421         (gimple_omp_taskreg_data_arg_ptr): Likewise.
4422         (gimple_omp_taskreg_set_data_arg): Likewise.
4423         (gimple_omp_task_copy_fn): Update for renaming of subclass to
4424         gomp_task.
4425         (gimple_omp_task_copy_fn_ptr): Likewise.
4426         (gimple_omp_task_set_copy_fn): Likewise.
4427         (gimple_omp_task_arg_size): Likewise.
4428         (gimple_omp_task_arg_size_ptr): Likewise.
4429         (gimple_omp_task_set_arg_size): Likewise.
4430         (gimple_omp_task_arg_align): Likewise.
4431         (gimple_omp_task_arg_align_ptr): Likewise.
4432         (gimple_omp_task_set_arg_align): Likewise.
4433         (gimple_omp_single_clauses): Update for renaming of subclass to
4434         gomp_single.
4435         (gimple_omp_single_clauses_ptr): Likewise.
4436         (gimple_omp_single_set_clauses): Likewise.
4437         (gimple_omp_target_clauses): Update for renaming of subclass to
4438         gomp_target.
4439         (gimple_omp_target_clauses_ptr): Likewise.
4440         (gimple_omp_target_set_clauses): Require a gomp_target *.
4441         (gimple_omp_target_set_kind): Likewise.
4442         (gimple_omp_target_child_fn_ptr): Likewise.
4443         (gimple_omp_target_set_child_fn): Likewise.
4444         (gimple_omp_target_data_arg_ptr): Likewise.
4445         (gimple_omp_target_set_data_arg): Likewise.
4446         (gimple_omp_target_child_fn): Require a const gomp_target *.
4447         (gimple_omp_target_data_arg): Likewise.
4448         (gimple_omp_teams_clauses): Update for renaming of subclass to
4449         gomp_teams.
4450         (gimple_omp_teams_clauses_ptr): Likewise.
4451         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
4452         (gimple_omp_sections_clauses): Update for renaming of subclass to
4453         gomp_sections.
4454         (gimple_omp_sections_clauses_ptr): Likewise.
4455         (gimple_omp_sections_set_clauses): Likewise.
4456         (gimple_omp_sections_control): Likewise.
4457         (gimple_omp_sections_control_ptr): Likewise.
4458         (gimple_omp_sections_set_control): Likewise.
4459         (gimple_omp_for_set_cond): Likewise.
4460         (gimple_omp_for_cond): Likewise.
4461         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
4462         (gimple_omp_atomic_store_val_ptr): Likewise.
4463         (gimple_omp_atomic_load_set_lhs): Likewise.
4464         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
4465         (gimple_omp_atomic_load_lhs): Likewise.
4466         (gimple_omp_atomic_load_rhs): Likewise.
4467         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
4468         (gimple_omp_atomic_load_set_rhs): Likewise.
4469         (gimple_omp_atomic_load_rhs_ptr): Likewise.
4470         (gimple_omp_continue_control_def): Require a const gomp_continue *.
4471         (gimple_omp_continue_control_use): Likewise.
4472         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
4473         (gimple_omp_continue_set_control_def): Likewise.
4474         (gimple_omp_continue_control_use_ptr): Likewise.
4475         (gimple_omp_continue_set_control_use): Likewise.
4476         (gimple_transaction_body_ptr): Require a gtransaction *.
4477         (gimple_transaction_body): Likewise.
4478         (gimple_transaction_label_ptr): Likewise.
4479         (gimple_transaction_label): Require a const gtransaction *.
4480         (gimple_transaction_subcode): Likewise.
4481         (gimple_transaction_set_body): Require a gtransaction *.
4482         (gimple_transaction_set_label): Likewise.
4483         (gimple_transaction_set_subcode): Likewise.
4484         (gimple_return_retval_ptr): Require a const greturn *.
4485         (gimple_return_retval): Likewise.
4486         (gimple_return_set_retval): Require a greturn *.
4487         (gimple_expr_type): Introduce local "call_stmt" and use in place of
4488         "stmt" for typesafety.
4489
4490         * asan.c: Use gimple subclasses.
4491         * auto-profile.c: Likewise.
4492         * builtins.c: Likewise.
4493         * builtins.h: Likewise.
4494         * cfgexpand.c: Likewise.
4495         * cfgloop.c: Likewise.
4496         * cfgloopmanip.c: Likewise.
4497         * cgraph.c: Likewise.
4498         * cgraph.h: Likewise.
4499         * cgraphbuild.c: Likewise.
4500         * cgraphclones.c: Likewise.
4501         * cgraphunit.c: Likewise.
4502         * expr.h: Likewise.
4503         * gimple-builder.c: Likewise.
4504         * gimple-builder.h: Likewise.
4505         * gimple-fold.c: Likewise.
4506         * gimple-low.c: Likewise.
4507         * gimple-pretty-print.c: Likewise.
4508         * gimple-ssa-isolate-paths.c: Likewise.
4509         * gimple-ssa-strength-reduction.c: Likewise.
4510         * gimple-streamer-in.c: Likewise.
4511         * gimple-streamer-out.c: Likewise.
4512         * gimple-walk.c: Likewise.
4513         * gimplify-me.c: Likewise.
4514         * gimplify.c: Likewise.
4515         * gimplify.h: Likewise.
4516         * graphite-scop-detection.c: Likewise.
4517         * graphite-sese-to-poly.c: Likewise.
4518         * internal-fn.c: Likewise.
4519         * internal-fn.def:: Likewise.
4520         * internal-fn.h: Likewise.
4521         * ipa-icf-gimple.c: Likewise.
4522         * ipa-icf-gimple.h: Likewise.
4523         * ipa-icf.c: Likewise.
4524         * ipa-inline-analysis.c: Likewise.
4525         * ipa-prop.c: Likewise.
4526         * ipa-prop.h: Likewise.
4527         * ipa-pure-const.c: Likewise.
4528         * ipa-split.c: Likewise.
4529         * lto-streamer-in.c: Likewise.
4530         * lto-streamer-out.c: Likewise.
4531         * omp-low.c: Likewise.
4532         * predict.c: Likewise.
4533         * sanopt.c: Likewise.
4534         * sese.c: Likewise.
4535         * ssa-iterators.h: Likewise.
4536         * stmt.c: Likewise.
4537         * trans-mem.c: Likewise.
4538         * tree-call-cdce.c: Likewise.
4539         * tree-cfg.c: Likewise.
4540         * tree-cfg.h: Likewise.
4541         * tree-cfgcleanup.c: Likewise.
4542         * tree-chkp.c: Likewise.
4543         * tree-chkp.h: Likewise.
4544         * tree-complex.c: Likewise.
4545         * tree-data-ref.c: Likewise.
4546         * tree-dfa.c: Likewise.
4547         * tree-eh.c: Likewise.
4548         * tree-eh.h: Likewise.
4549         * tree-emutls.c: Likewise.
4550         * tree-if-conv.c: Likewise.
4551         * tree-inline.c: Likewise.
4552         * tree-inline.h: Likewise.
4553         * tree-into-ssa.c: Likewise.
4554         * tree-into-ssa.h: Likewise.
4555         * tree-loop-distribution.c: Likewise.
4556         * tree-nrv.c: Likewise.
4557         * tree-object-size.c: Likewise.
4558         * tree-outof-ssa.c: Likewise.
4559         * tree-parloops.c: Likewise.
4560         * tree-phinodes.c: Likewise.
4561         * tree-phinodes.h: Likewise.
4562         * tree-predcom.c: Likewise.
4563         * tree-profile.c: Likewise.
4564         * tree-scalar-evolution.c: Likewise.
4565         * tree-scalar-evolution.h
4566         * tree-sra.cn_function):
4567         * tree-ssa-alias.c: Likewise.
4568         * tree-ssa-alias.h: Likewise.
4569         * tree-ssa-ccp.c: Likewise.
4570         * tree-ssa-coalesce.c: Likewise.
4571         * tree-ssa-copy.c: Likewise.
4572         * tree-ssa-copyrename.c: Likewise.
4573         * tree-ssa-dce.c: Likewise.
4574         * tree-ssa-dom.c: Likewise.
4575         * tree-ssa-forwprop.c: Likewise.
4576         * tree-ssa-ifcombine.c: Likewise.
4577         * tree-ssa-live.c: Likewise.
4578         * tree-ssa-loop-im.c: Likewise.
4579         * tree-ssa-loop-ivcanon.c: Likewise.
4580         * tree-ssa-loop-ivopts.c: Likewise.
4581         * tree-ssa-loop-manip.c: Likewise.
4582         * tree-ssa-loop-niter.c: Likewise.
4583         * tree-ssa-loop-prefetch.c: Likewise.
4584         * tree-ssa-loop-unswitch.c: Likewise.
4585         * tree-ssa-math-opts.c: Likewise.
4586         * tree-ssa-operands.c: Likewise.
4587         * tree-ssa-phiopt.c: Likewise.
4588         * tree-ssa-phiprop.c: Likewise.
4589         * tree-ssa-pre.c: Likewise.
4590         * tree-ssa-propagate.c: Likewise.
4591         * tree-ssa-propagate.h: Likewise.
4592         * tree-ssa-reassoc.c: Likewise.
4593         * tree-ssa-sccvn.c: Likewise.
4594         * tree-ssa-sccvn.h: Likewise.
4595         * tree-ssa-sink.c: Likewise.
4596         * tree-ssa-strlen.c
4597         * tree-ssa-structalias.c
4598         * tree-ssa-tail-merge.c: Likewise.
4599         * tree-ssa-ter.c: Likewise.
4600         * tree-ssa-threadedge.c: Likewise.
4601         * tree-ssa-threadedge.h: Likewise.
4602         * tree-ssa-threadupdate.c: Likewise.
4603         * tree-ssa-uncprop.c: Likewise.
4604         * tree-ssa-uninit.c: Likewise.
4605         * tree-ssa.c: Likewise.
4606         * tree-stdarg.c: Likewise.
4607         * tree-switch-conversion.c: Likewise.
4608         * tree-tailcall.c: Likewise.
4609         * tree-vect-data-refs.c: Likewise.
4610         * tree-vect-generic.c: Likewise.
4611         * tree-vect-loop-manip.c: Likewise.
4612         * tree-vect-loop.c: Likewise.
4613         * tree-vect-patterns.c: Likewise.
4614         * tree-vect-slp.c: Likewise.
4615         * tree-vect-stmts.c: Likewise.
4616         * tree-vectorizer.h: Likewise.
4617         * tree-vrp.c: Likewise.
4618         * tree.c: Likewise.
4619         * ubsan.c: Likewise.
4620         * value-prof.c: Likewise.
4621         * value-prof.h: Likewise.
4622         * vtable-verify.c: Likewise.
4623
4624 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4625
4626         * config/rs6000/constraints.md: Avoid signed integer overflows.
4627         * config/rs6000/predicates.md: Likewise.
4628
4629 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4630
4631         PR target/63424
4632         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4633
4634 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4635
4636         PR middle-end/63762
4637         * ira.c (ira): Update preferred class.
4638
4639 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4640
4641         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4642         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4643         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
4644         inline overload to use it.  Add unary arg overload.
4645         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4646         (gimple_assign_set_rhs_from_tree): Use
4647         gimple_assign_set_rhs_with_ops instead of
4648         gimple_assign_set_rhs_with_ops_1.
4649         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4650         (gimple_assign_set_rhs_with_ops): ... this.
4651         * ipa-split.c (split_function): Remove last NULL argument
4652         from gimple_build_assign_with_ops call.
4653         * tree-ssa-loop-im.c
4654         (move_computations_dom_walker::before_dom_children): Likewise.
4655         * tsan.c (instrument_builtin_call): Likewise.
4656         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4657         vectorizable_conversion, vectorizable_load): Likewise.
4658         * tree-vect-loop.c (vect_is_simple_reduction_1,
4659         get_initial_def_for_induction): Likewise.
4660         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4661         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4662         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4663         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4664         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4665         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4666         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4667         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4668         neg_replacement): Likewise.
4669         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4670         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4671         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4672         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4673         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4674         simd_clone_adjust): Likewise.
4675         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4676         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4677         replace_one_candidate): Likewise.
4678         * gimple-builder.c (build_type_cast): Likewise.
4679         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4680         (forward_propagate_addr_expr_1): Remove last NULL argument
4681         from gimple_assign_set_rhs_with_ops call.
4682         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4683         instead of gimple_assign_set_rhs_with_ops_1.
4684         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4685         argument from gimple_build_assign_with_ops call.
4686         (repropagate_negates): Remove last NULL argument from
4687         gimple_assign_set_rhs_with_ops call.
4688         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4689         last NULL argument from gimple_build_assign_with_ops call.
4690         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
4691         from gimple_assign_set_rhs_with_ops call.
4692         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4693         Remove last NULL argument from gimple_build_assign_with_ops call.
4694         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
4695         of gimple_assign_set_rhs_with_ops_1.
4696         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4697         instead of gimple_assign_set_rhs_with_ops_1.
4698         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4699         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4700         from gimple_build_assign_with_ops call.
4701         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4702         from gimple_assign_set_rhs_with_ops call.
4703         * tree-vrp.c (simplify_truth_ops_using_ranges,
4704         simplify_bit_ops_using_ranges): Remove last NULL argument from
4705         gimple_assign_set_rhs_with_ops call.
4706         (simplify_float_conversion_using_ranges,
4707         simplify_internal_call_using_ranges): Remove last NULL argument from
4708         gimple_build_assign_with_ops call.
4709
4710 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
4711
4712         PR target/61915
4713         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4714         cost.
4715
4716 2014-11-19  Marek Polacek  <polacek@redhat.com>
4717
4718         PR sanitizer/63690
4719         * ubsan.c (instrument_object_size): Check for MEM_REF.
4720
4721 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
4722
4723         PR regression/63868
4724         * cgraph.c (cgraph_node::create): Guard g->have_offload with
4725         ifdef ENABLE_OFFLOADING.
4726         * omp-low.c (create_omp_child_function): Likewise.
4727         (expand_omp_target): Guard node->mark_force_output and offload_funcs
4728         with ifdef ENABLE_OFFLOADING.
4729         * varpool.c (varpool_node::get_create): Guard g->have_offload and
4730         offload_vars with ifdef ENABLE_OFFLOADING.
4731
4732 2014-11-19  Felix Yang  <felix.yang@huawei.com>
4733             Shanyao Chen  <chenshanyao@huawei.com>
4734
4735         PR target/59593
4736         * config/arm/arm.md (define_attr "arch"): Add v6t2.
4737         (define_attr "arch_enabled"): Add test for the above.
4738         (*movhi_insn_arch4): Add new alternative.
4739
4740 2014-11-19  Richard Henderson  <rth@redhat.com>
4741
4742         * c-family/c-common.c (c_common_reswords): Add
4743         __builtin_call_with_static_chain.
4744         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4745         * c/c-parser.c (c_parser_postfix_expression): Handle it.
4746         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4747
4748         * calls.c (prepare_call_address): Allow decl or type for first arg.
4749         (expand_call): Pass type to prepare_call_address if no decl.
4750         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4751         the function doesn't use it; fold it otherwise.
4752         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4753         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4754         function calls.
4755
4756         * targhooks.c (default_static_chain): Remove check for
4757         DECL_STATIC_CHAIN.
4758         * config/moxie/moxie.c (moxie_static_chain): Likewise.
4759         * config/i386/i386.c (ix86_static_chain): Allow decl or type
4760         as the first argument.
4761         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4762         of the unused first parameter.
4763         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4764         may be a type.
4765         * target.def (static_chain): Likewise.
4766
4767 2014-11-19  Renlin Li  <renlin.li@arm.com>
4768
4769         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
4770         __ARM_FP_FAST, __ARM_FEATURE_FMA, __ARM_FP,
4771         __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4772
4773 2014-11-19  Marek Polacek  <polacek@redhat.com>
4774
4775         PR sanitizer/63879
4776         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4777         !TYPE_OVERFLOW_SANITIZED.
4778         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4779         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4780         is 0.
4781
4782 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
4783
4784         * collect2.c (main): Don't call fatal_error before
4785         diagnostic_initialize.
4786         * lto-wrapper.c (main): Likewise.
4787
4788 2014-11-19  Tom de Vries  <tom@codesourcery.com>
4789
4790         PR tree-optimization/62167
4791         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4792         conservatively.
4793         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4794         assigns.
4795
4796 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4797
4798         PR tree-optimization/63915
4799         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4800         true instead of false as last argument to gsi_replace.
4801
4802         PR sanitizer/63520
4803         * internal-fn.c (expand_ubsan_result_store): New function.
4804         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4805         Use it instead of just emit_move_insn.
4806
4807 2014-11-19  Richard Biener  <rguenther@suse.de>
4808
4809         PR tree-optimization/63844
4810         * omp-low.c (fixup_child_record_type): Use a restrict qualified
4811         referece type for the receiver parameter.
4812
4813 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4814
4815         PR sanitizer/63913
4816         * ubsan.c: Include tree-eh.h.
4817         (instrument_bool_enum_load): Handle loads that can throw.
4818
4819         PR rtl-optimization/63843
4820         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4821         optimization of ashiftrt of subreg of lshiftrt, check that code
4822         is ASHIFTRT.
4823
4824 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
4825
4826         * attribs.c (decl_attributes): Remove always true condition,
4827         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4828
4829 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4830
4831         PR target/63937
4832         * target.def (use_by_pieces_infrastructure_p): Take unsigned
4833         HOST_WIDE_INT as the size parameter.
4834         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4835         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4836         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4837         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4838         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4839         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4840         * config/aarch64/aarch64.c
4841         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4842         * doc/tm.texi: Regenerate.
4843
4844 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
4845
4846         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4847         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4848         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4849         (good_cloning_opportunity_p): Likewise.
4850         (ipa-cp gate): Enable ipa-cp with LTO.
4851         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4852         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4853         inheritance.
4854         * ipa-inline-transform.c (inline_transform): Check if there are inlines
4855         to apply even at -O0.
4856         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4857         (analyze_functions): Build type inheritance graph.
4858         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4859         (want_early_inline_function_p, want_inline_small_function_p):
4860         Likewise.
4861         (check_callers): Likewise.
4862         (edge_badness): Likewise.
4863         (inline_small_functions): Always be ready for indirect inlining
4864         to happend.
4865         (ipa_inline): Always use want_inline_function_to_all_callers_p.
4866         (early_inline_small_functions): Use opt_for_fn.
4867         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4868         (estimate_function_body_sizes): Likewise.
4869         (compute_inline_parameters): Likewise.
4870         (estimate_edge_devirt_benefit): Likewise.
4871         (inline_analyze_function): Likewise.
4872         * ipa-devirt.c (ipa_devirt): Likewise.
4873         (gate): Use in_lto_p.
4874         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4875         (try_make_edge_direct_virtual_call): Likewise.
4876         (update_indirect_edges_after_inlining): Likewise.
4877         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4878         * common.opt (findirect-inlining): Turn into optimization.
4879         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4880         (pure_const_generate_summary): Likewise.
4881         (gate_pure_const): Always enable with in_lto_p.
4882
4883 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4884
4885         * config/mips/mips.md (compression): Add `micromips32' setting.
4886         (enabled, length): Handle it.
4887         (shift_compression): Replace `micromips' with `micromips32' in
4888         the `compression' attribute.
4889         (*add<mode>3, sub<mode>3): Likewise.
4890
4891 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4892
4893         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4894         range, a jump otherwise.
4895
4896 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4897
4898         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4899         Split into...
4900         (cortex_a15_gp_to_vfp): ...This.
4901         (cortex_a15_fp_to_gp): ...And this.
4902         Define and comment bypass from vfp operations to fp->gp moves.
4903
4904 2014-11-18  Martin Liska  <mliska@suse.cz>
4905
4906         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4907
4908 2014-11-18  Martin Liska  <mliska@suse.cz>
4909
4910         * bt-load.c (add_btr_def): New fibonacci_heap is used.
4911         (migrate_btr_defs): Likewise.
4912
4913 2014-11-18  Martin Liska  <mliska@suse.cz>
4914
4915         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4916
4917 2014-11-18  Martin Liska  <mliska@suse.cz>
4918
4919         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4920         (find_traces): Likewise.
4921         (find_traces_1_round): Likewise.
4922
4923 2014-11-18  Martin Liska  <mliska@suse.cz>
4924
4925         * fibonacci_heap.h: New file.
4926         (fibonacci_heap::insert): Created from fibheap_insert.
4927         (fibonacci_heap::empty): Created from fibheap_empty.
4928         (fibonacci_heap::nodes): Created from fibheap_nodes.
4929         (fibonacci_heap::min_key): Created from fibheap_min_key.
4930         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4931         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4932         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4933         (fibonacci_heap::min): Created from fibheap_min.
4934         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4935         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4936         (fibonacci_heap::union_with): Created from fibheap_union.
4937         * ipa-inline.c (update_edge_key): New heap API is used.
4938         (update_caller_keys): Likewise.
4939         (update_callee_keys): Likewise.
4940         (lookup_recursive_calls): Likewise.
4941         (recursive_inlining): Likewise.
4942         (add_new_edges_to_heap): Likewise.
4943         (heap_edge_removal_hook): Likewise.
4944         (inline_small_functions): Likewise.
4945
4946 2014-11-18  Marek Polacek  <polacek@redhat.com>
4947
4948         PR sanitizer/63866
4949         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4950         put it into TYPE_NAME and TYPE_STUB_DECL.
4951         * ubsan.c (ubsan_type_descriptor_type): New variable.
4952         Function renamed to ...
4953         (ubsan_get_type_descriptor_type): ... this.  Cache
4954         return value in ubsan_type_descriptor_type variable.
4955         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4956         TYPE_NAME and TYPE_STUB_DECL.
4957         (ubsan_get_source_location_type): Create a TYPE_DECL for
4958         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4959         (ubsan_type_descriptor, ubsan_create_data): Call
4960         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4961         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4962
4963 2014-11-18  Felix Yang  <felix.yang@huawei.com>
4964
4965         * config/aarch64/aarch64.c (doloop_end): New pattern.
4966         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4967
4968 2014-11-18  Jason Merrill  <jason@redhat.com>
4969
4970         * tree.c (warn_deprecated_use): Show declaration with inform.
4971
4972 2014-11-18  Richard Biener  <rguenther@suse.de>
4973
4974         PR tree-optimization/63914
4975         * tree-ssa-ccp.c (canonicalize_value): Remove float value
4976         canonicalization.
4977         (valid_lattice_transition): Allow (partial) transition
4978         from NaN to non-NaN if !HONOR_NANS.
4979         (set_lattice_value): Check for valid lattice transitions
4980         only when checking is enabled.
4981
4982 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
4983
4984         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4985
4986 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
4987
4988         * config/arm/neon-testgen.ml (emit_prologue): Handle new
4989         compile_test_optim argument.
4990         (emit_automatics): Rename to emit_variables. Support variable
4991         indentation of its output.
4992         (compile_test_optim): New function.
4993         (test_intrinsic): Call compile_test_optim.
4994         * config/arm/neon.ml (features): Add Compiler_optim.
4995         (ops): Add Compiler_optim feature to Vbic and Vorn.
4996         (type_in_crypto_only): Replace 'or' by '||'.
4997         (reinterp): Likewise.
4998         (reinterpq): Likewise.
4999
5000 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
5001
5002         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
5003         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
5004         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
5005         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
5006         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
5007         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
5008         pointer dereference.
5009
5010 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
5011
5012         * tree.c (element_mode, integer_truep): New functions.
5013         * tree.h (element_mode, integer_truep): Declare them.
5014         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
5015         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
5016         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
5017         fold_strip_sign_ops): Use element_mode.
5018         (fold_binary_loc): Use element_mode and element_precision.
5019         * match.pd: Use integer_truep, element_mode, element_precision,
5020         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
5021         vectors. Simplify A/-A.
5022
5023 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5024
5025         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
5026         manual swapping implementation.
5027         (movcond_addsi): Likewise.
5028         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
5029         (arm_select_dominance_cc_mode): Likewise.
5030         (arm_reload_out_hi): Likewise.
5031         (gen_operands_ldrd_strd): Likewise.
5032         (output_move_double): Likewise.
5033         (arm_print_operand_address): Likewise.
5034         (thumb_output_move_mem_multiple): Likewise.
5035         (SWAP_RTX): Delete.
5036
5037 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5038
5039         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
5040         (COPYSIGNF_QUALIFIERS): Likewise.
5041         (CREATE_QUALIFIERS): Likewise.
5042         (DUP_QUALIFIERS): Likewise.
5043         (FLOAT_WIDEN_QUALIFIERS): Likewise.
5044         (FLOAT_NARROW_QUALIFIERS): Likewise.
5045         (REINTERP_QUALIFIERS): Likewise.
5046         (RINT_QUALIFIERS): Likewise.
5047         (SPLIT_QUALIFIERS): Likewise.
5048         (FIXCONV_QUALIFIERS): Likewise.
5049         (SCALARMUL_QUALIFIERS): Likewise.
5050         (SCALARMULL_QUALIFIERS): Likewise.
5051         (SCALARMULH_QUALIFIERS): Likewise.
5052         (SELECT_QUALIFIERS): Likewise.
5053         (VTBX_QUALIFIERS): Likewise.
5054         (SHIFTIMM_QUALIFIERS): Likewise.
5055         (SCALARMAC_QUALIFIERS): Likewise.
5056         (LANEMUL_QUALIFIERS): Likewise.
5057         (LANEMULH_QUALIFIERS): Likewise.
5058         (LANEMULL_QUALIFIERS): Likewise.
5059         (SHIFTACC_QUALIFIERS): Likewise.
5060         (SHIFTINSERT_QUALIFIERS): Likewise.
5061         (VTBL_QUALIFIERS): Likewise.
5062         (LOADSTRUCT_QUALIFIERS): Likewise.
5063         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
5064         (STORESTRUCT_QUALIFIERS): Likewise.
5065         (STORESTRUCTLANE_QUALIFIERS): Likewise.
5066         (neon_builtin_type_mode): Delete.
5067         (v8qi_UP): Map to V8QImode.
5068         (v8qi_UP): Map to V8QImode.
5069         (v4hi_UP): Map to V4HImode.
5070         (v4hf_UP): Map to V4HFmode.
5071         (v2si_UP): Map to V2SImode.
5072         (v2sf_UP): Map to V2SFmode.
5073         (di_UP): Map to DImode.
5074         (v16qi_UP): Map to V16QImode.
5075         (v8hi_UP): Map to V8HImode.
5076         (v4si_UP): Map to V4SImode.
5077         (v4sf_UP): Map to V4SFmode.
5078         (v2di_UP): Map to V2DImode.
5079         (ti_UP): Map to TImode.
5080         (ei_UP): Map to EImode.
5081         (oi_UP): Map to OImode.
5082         (neon_itype): Delete.
5083         (neon_builtin_datum): Remove itype, make mode a machine_mode.
5084         (VAR1): Update accordingly.
5085         (arm_init_neon_builtins): Use machine_mode directly.
5086         (neon_dereference_pointer): Likewise.
5087         (arm_expand_neon_args): Use qualifiers to decide operand types.
5088         (arm_expand_neon_builtin): Likewise.
5089         * config/arm/arm_neon_builtins.def: Remap operation type for
5090         many builtins.
5091
5092 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5093
5094         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
5095         (enum arm_simd_type): Likewise.
5096         (struct arm_simd_type_info): Likewise
5097         (arm_mangle_builtin_scalar_type): Likewise.
5098         (arm_mangle_builtin_vector_type): Likewise.
5099         (arm_mangle_builtin_type): Likewise.
5100         (arm_simd_builtin_std_type): Likewise.
5101         (arm_lookup_simd_builtin_type): Likewise.
5102         (arm_simd_builtin_type): Likewise.
5103         (arm_init_simd_builtin_types): Likewise.
5104         (arm_init_simd_builtin_scalar_types): Likewise.
5105         (arm_init_neon_builtins): Rewrite using qualifiers.
5106         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
5107         * config/arm/arm-simd-builtin-types.def: New file.
5108         * config/arm/t-arm (arm-builtins.o): Depend on it.
5109         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
5110         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
5111         (int16x4_t): Likewise.
5112         (int32x2_t): Likewise.
5113         (float16x4_t): Likewise.
5114         (float32x2_t): Likewise.
5115         (poly8x8_t): Likewise.
5116         (poly16x4_t): Likewise.
5117         (uint8x8_t): Likewise.
5118         (uint16x4_t): Likewise.
5119         (uint32x2_t): Likewise.
5120         (int8x16_t): Likewise.
5121         (int16x8_t): Likewise.
5122         (int32x4_t): Likewise.
5123         (int64x2_t): Likewise.
5124         (float32x4_t): Likewise.
5125         (poly8x16_t): Likewise.
5126         (poly16x8_t): Likewise.
5127         (uint8x16_t): Likewise.
5128         (uint16x8_t): Likewise.
5129         (uint32x4_t): Likewise.
5130         (uint64x2_t): Likewise.
5131
5132 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5133
5134         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
5135         (neon_itype): Add new types corresponding to the types used in
5136         qualifiers names.
5137         (arm_unop_qualifiers): New.
5138         (arm_bswap_qualifiers): Likewise.
5139         (arm_binop_qualifiers): Likewise.
5140         (arm_ternop_qualifiers): Likewise.
5141         (arm_getlane_qualifiers): Likewise.
5142         (arm_lanemac_qualifiers): Likewise.
5143         (arm_setlane_qualifiers): Likewise.
5144         (arm_combine_qualifiers): Likewise.
5145         (arm_load1_qualifiers): Likewise.
5146         (arm_load1_lane_qualifiers): Likewise.
5147         (arm_store1_qualifiers): Likewise.
5148         (arm_storestruct_lane_qualifiers): Likewise.
5149         (UNOP_QUALIFIERS): Likewise.
5150         (DUP_QUALIFIERS): Likewise.
5151         (SPLIT_QUALIFIERS): Likewise.
5152         (CONVERT_QUALIFIERS): Likewise.
5153         (FLOAT_WIDEN_QUALIFIERS): Likewise.
5154         (FLOAT_NARROW_QUALIFIERS): Likewise.
5155         (RINT_QUALIFIERS): Likewise.
5156         (COPYSIGNF_QUALIFIERS): Likewise.
5157         (CREATE_QUALIFIERS): Likewise.
5158         (REINTERP_QUALIFIERS): Likewise.
5159         (BSWAP_QUALIFIERS): Likewise.
5160         (BINOP_QUALIFIERS): Likewise.
5161         (FIXCONV_QUALIFIERS): Likewise.
5162         (SCALARMUL_QUALIFIERS): Likewise.
5163         (SCALARMULL_QUALIFIERS): Likewise.
5164         (SCALARMULH_QUALIFIERS): Likewise.
5165         (TERNOP_QUALIFIERS): Likewise.
5166         (SELECT_QUALIFIERS): Likewise.
5167         (VTBX_QUALIFIERS): Likewise.
5168         (GETLANE_QUALIFIERS): Likewise.
5169         (SHIFTIMM_QUALIFIERS): Likewise.
5170         (LANEMAC_QUALIFIERS): Likewise.
5171         (SCALARMAC_QUALIFIERS): Likewise.
5172         (SETLANE_QUALIFIERS): Likewise.
5173         (SHIFTINSERT_QUALIFIERS): Likewise.
5174         (SHIFTACC_QUALIFIERS): Likewise.
5175         (LANEMUL_QUALIFIERS): Likewise.
5176         (LANEMULL_QUALIFIERS): Likewise.
5177         (LANEMULH_QUALIFIERS): Likewise.
5178         (COMBINE_QUALIFIERS): Likewise.
5179         (VTBL_QUALIFIERS): Likewise.
5180         (LOAD1_QUALIFIERS): Likewise.
5181         (LOADSTRUCT_QUALIFIERS): Likewise.
5182         (LOAD1LANE_QUALIFIERS): Likewise.
5183         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
5184         (STORE1_QUALIFIERS): Likewise.
5185         (STORESTRUCT_QUALIFIERS): Likewise.
5186         (STORE1LANE_QUALIFIERS): Likewise.
5187         (STORESTRUCTLANE_QUALIFIERS): Likewise.
5188         (neon_builtin_datum): Keep track of qualifiers.
5189         (VAR1): Likewise.
5190
5191 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5192
5193         * config/arm/arm-builtins.c (VAR1): Add a comma.
5194         (VAR2): Rewrite in terms of VAR1.
5195         (VAR3-10): Likewise.
5196         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
5197         * config/arm/arm_neon_builtins.def: Remove trailing commas.
5198
5199 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5200
5201         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
5202         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
5203         * config/arm/arm-builtins.c: New.
5204         * config/arm/t-arm (arm_builtins.o): New.
5205         * config/arm/arm-protos.h (arm_expand_builtin): New.
5206         (arm_builtin_decl): Likewise.
5207         (arm_init_builtins): Likewise.
5208         (arm_atomic_assign_expand_fenv): Likewise.
5209         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
5210         (arm_init_builtins): Likewise.
5211         (arm_init_iwmmxt_builtins): Likewise
5212         (safe_vector_operand): Likewise
5213         (arm_expand_binop_builtin): Likewise
5214         (arm_expand_unop_builtin): Likewise
5215         (arm_expand_builtin): Likewise
5216         (arm_builtin_decl): Likewise
5217         (insn_flags): Remove static.
5218         (tune_flags): Likewise.
5219         (enum arm_builtins): Move to config/arm/arm-builtins.c.
5220         (arm_init_neon_builtins): Likewise.
5221         (struct builtin_description): Likewise.
5222         (arm_init_iwmmxt_builtins): Likewise.
5223         (arm_init_fp16_builtins): Likewise.
5224         (arm_init_crc32_builtins): Likewise.
5225         (arm_init_builtins): Likewise.
5226         (arm_builtin_decl): Likewise.
5227         (safe_vector_operand): Likewise.
5228         (arm_expand_ternop_builtin): Likewise.
5229         (arm_expand_binop_builtin): Likewise.
5230         (arm_expand_unop_builtin): Likewise.
5231         (neon_dereference_pointer): Likewise.
5232         (arm_expand_neon_args): Likewise.
5233         (arm_expand_neon_builtin): Likewise.
5234         (neon_split_vcombine): Likewise.
5235         (arm_expand_builtin): Likewise.
5236         (arm_builtin_vectorized_function): Likewise.
5237         (arm_atomic_assign_expand_fenv): Likewise.
5238
5239 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5240
5241         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
5242         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
5243         (FL_ARCH3M): Likewise.
5244         (FL_MODE26): Likewise.
5245         (FL_MODE32): Likewise.
5246         (FL_ARCH4): Likewise.
5247         (FL_ARCH5): Likewise.
5248         (FL_THUMB): Likewise.
5249         (FL_LDSCHED): Likewise.
5250         (FL_STRONG): Likewise.
5251         (FL_ARCH5E): Likewise.
5252         (FL_XSCALE): Likewise.
5253         (FL_ARCH6): Likewise.
5254         (FL_VFPV2): Likewise.
5255         (FL_WBUF): Likewise.
5256         (FL_ARCH6K): Likewise.
5257         (FL_THUMB2): Likewise.
5258         (FL_NOTM): Likewise.
5259         (FL_THUMB_DIV): Likewise.
5260         (FL_VFPV3): Likewise.
5261         (FL_NEON): Likewise.
5262         (FL_ARCH7EM): Likewise.
5263         (FL_ARCH7): Likewise.
5264         (FL_ARM_DIV): Likewise.
5265         (FL_ARCH8): Likewise.
5266         (FL_CRC32): Likewise.
5267         (FL_SMALLMUL): Likewise.
5268         (FL_IWMMXT): Likewise.
5269         (FL_IWMMXT2): Likewise.
5270         (FL_TUNE): Likewise.
5271         (FL_FOR_ARCH2): Likewise.
5272         (FL_FOR_ARCH3): Likewise.
5273         (FL_FOR_ARCH3M): Likewise.
5274         (FL_FOR_ARCH4): Likewise.
5275         (FL_FOR_ARCH4T): Likewise.
5276         (FL_FOR_ARCH5): Likewise.
5277         (FL_FOR_ARCH5T): Likewise.
5278         (FL_FOR_ARCH5E): Likewise.
5279         (FL_FOR_ARCH5TE): Likewise.
5280         (FL_FOR_ARCH5TEJ): Likewise.
5281         (FL_FOR_ARCH6): Likewise.
5282         (FL_FOR_ARCH6J): Likewise.
5283         (FL_FOR_ARCH6K): Likewise.
5284         (FL_FOR_ARCH6Z): Likewise.
5285         (FL_FOR_ARCH6ZK): Likewise.
5286         (FL_FOR_ARCH6T2): Likewise.
5287         (FL_FOR_ARCH6M): Likewise.
5288         (FL_FOR_ARCH7): Likewise.
5289         (FL_FOR_ARCH7A): Likewise.
5290         (FL_FOR_ARCH7VE): Likewise.
5291         (FL_FOR_ARCH7R): Likewise.
5292         (FL_FOR_ARCH7M): Likewise.
5293         (FL_FOR_ARCH7EM): Likewise.
5294         (FL_FOR_ARCH8A): Likewise.
5295         * config/arm/arm-protos.h: Take definitions moved from arm.c.
5296
5297 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5298
5299         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
5300         parameter, rearrange switch statement accordingly.
5301         (arm_evpc_neon_vrev): Remove "Magic Word".
5302         * config/arm/unspecs.md (unspec): Split many UNSPECs to
5303         rounding, or signed/unsigned variants.
5304         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
5305         (vcondu<mode><mode>): Likewise.
5306         (neon_vadd): Remove "Magic Word" operand.
5307         (neon_vaddl): Remove "Magic Word" operand, convert to use
5308         signed/unsigned iterator.
5309         (neon_vaddw): Likewise.
5310         (neon_vhadd): Likewise, also iterate over "rounding" forms.
5311         (neon_vqadd): Remove "Magic Word" operand, convert to use
5312         signed/unsigned iterator.
5313         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
5314         over "rounding" forms.
5315         (neon_vmul): Remove "Magic Word" operand, iterate over
5316         polynomial/float instruction forms.
5317         (neon_vmla): Remove "Magic Word" operand.
5318         (neon_vfma): Likewise.
5319         (neon_vfms): Likewise.
5320         (neon_vmls): Likewise.
5321         (neon_vmlal): Remove "Magic Word" operand, iterate over
5322         signed/unsigned forms.
5323         (neon_vmlsl): Likewise.
5324         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
5325         forms.
5326         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
5327         signed/unsigned forms.
5328         (neon_vqdmlsl): Likewise.
5329         (neon_vmull): Likewise.
5330         (neon_vqdmull): Remove "Magic Word" operand.
5331         (neon_vsub): Remove "Magic Word" operand.
5332         (neon_vsubl): Remove "Magic Word" operand, convert to use
5333         signed/unsigned iterator.
5334         (neon_vsubw): Likewise.
5335         (neon_vhsub): Likewise.
5336         (neon_vqsub): Likewise.
5337         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
5338         over "rounding" forms.
5339         (neon_vceq): Remove "Magic Word" operand.
5340         (neon_vcge): Likewise.
5341         (neon_vcgeu): Likewise.
5342         (neon_vcgt): Likewise.
5343         (neon_vcgtu): Likewise.
5344         (neon_vcle): Likewise.
5345         (neon_vclt): Likewise.
5346         (neon_vcage): Likewise.
5347         (neon_vcagt): Likewise.
5348         (neon_vabd): Remove "Magic Word" operand, iterate over
5349         signed/unsigned forms, and split out...
5350         (neon_vabdf): ...this as new.
5351         (neon_vabdl): Remove "Magic Word" operand, iterate over
5352         signed/unsigned forms.
5353         (neon_vaba): Likewise.
5354         (neon_vmax): Remove "Magic Word" operand, iterate over
5355         signed/unsigned and max/min forms, and split out...
5356         (neon_v<maxmin>f): ...this as new.
5357         (neon_vmin): Delete.
5358         (neon_vpadd): Remove "Magic Word" operand.
5359         (neon_vpaddl): Remove "Magic Word" operand, iterate over
5360         signed/unsigned variants.
5361         (neon_vpadal): Likewise.
5362         (neon_vpmax): Remove "Magic Word" operand, iterate over
5363         signed/unsigned and max/min forms, and split out...
5364         (neon_vp<maxmin>f): ...this as new.
5365         (neon_vpmin): Delete.
5366         (neon_vrecps): Remove "Magic Word" operand.
5367         (neon_vrsqrts): Likewise.
5368         (neon_vabs): Likewise.
5369         (neon_vqabs): Likewise.
5370         (neon_vneg): Likewise.
5371         (neon_vqneg): Likewise.
5372         (neon_vcls): Likewise.
5373         (neon_vcnt): Likewise.
5374         (neon_vrecpe): Likewise.
5375         (neon_vrsqrte): Likewise.
5376         (neon_vmvn): Likewise.
5377         (neon_vget_lane): Likewise.
5378         (neon_vget_laneu): New.
5379         (neon_vget_lanedi): Remove "Magic Word" operand.
5380         (neon_vget_lanev2di): Likewise.
5381         (neon_vcvt): Remove "Magic Word" operand, iterate over
5382         signed/unsigned variants.
5383         (neon_vcvt_n): Likewise.
5384         (neon_vmovn): Remove "Magic Word" operand.
5385         (neon_vqmovn): Remove "Magic Word" operand, iterate over
5386         signed/unsigned variants.
5387         (neon_vmovun): Remove "Magic Word" operand.
5388         (neon_vmovl): Remove "Magic Word" operand, iterate over
5389         signed/unsigned variants.
5390         (neon_vmul_lane): Remove "Magic Word" operand.
5391         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
5392         signed/unsigned variants.
5393         (neon_vqdmull_lane): Remove "Magic Word" operand.
5394         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
5395         rounding variants.
5396         (neon_vmla_lane): Remove "Magic Word" operand.
5397         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
5398         signed/unsigned variants.
5399         (neon_vqdmlal_lane): Remove "Magic Word" operand.
5400         (neon_vmls_lane): Likewise.
5401         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
5402         signed/unsigned variants.
5403         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
5404         (neon_vmul_n): Remove "Magic Word" operand.
5405         (neon_vmull_n): Rename to...
5406         (neon_vmulls_n): ...this, remove "Magic Word" operand.
5407         (neon_vmullu_n): New.
5408         (neon_vqdmull_n): Remove "Magic Word" operand.
5409         (neon_vqdmulh_n): Likewise.
5410         (neon_vqrdmulh_n): New.
5411         (neon_vmla_n): Remove "Magic Word" operand.
5412         (neon_vmls_n): Likewise.
5413         (neon_vmlal_n): Rename to...
5414         (neon_vmlals_n): ...this, remove "Magic Word" operand.
5415         (neon_vmlalu_n): New.
5416         (neon_vqdmlal_n): Remove "Magic Word" operand.
5417         (neon_vmlsl_n): Rename to...
5418         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
5419         (neon_vmlslu_n): New.
5420         (neon_vqdmlsl_n): Remove "Magic Word" operand.
5421         (neon_vrev64): Remove "Magic Word" operand.
5422         (neon_vrev32): Likewise.
5423         (neon_vrev16): Likewise.
5424         (neon_vshl): Remove "Magic Word" operand, iterate over
5425         signed/unsigned and "rounding" forms.
5426         (neon_vqshl): Likewise.
5427         (neon_vshr_n): Likewise.
5428         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
5429         "rounding" forms.
5430         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
5431         signed/unsigned and "rounding" forms.
5432         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
5433         "rounding" forms.
5434         (neon_vshl_n): Remove "Magic Word" operand.
5435         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
5436         signed/unsigned variants.
5437         (neon_vqshlu_n): Remove "Magic Word" operand.
5438         (neon_vshll_n): Remove "Magic Word" operand, iterate over
5439         signed/unsigned variants.
5440         (neon_vsra_n): Remove "Magic Word" operand, iterate over
5441         signed/unsigned and "rounding" forms.
5442         * config/arm/iterators.md (VPF): New.
5443         (VADDL): Likewise.
5444         (VADDW): Likewise.
5445         (VHADD): Likewise.
5446         (VQADD): Likewise.
5447         (VADDHN): Likewise.
5448         (VMLAL): Likewise.
5449         (VMLAL_LANE): Likewise.
5450         (VLMSL): Likewise.
5451         (VMLSL_LANE): Likewise.
5452         (VQDMULH): Likewise,
5453         (VQDMULH_LANE): Likewise.
5454         (VMULL): Likewise.
5455         (VMULL_LANE): Likewise.
5456         (VSUBL): Likewise.
5457         (VSUBW): Likewise.
5458         (VHSUB): Likewise.
5459         (VQSUB): Likewise.
5460         (VSUBHN): Likewise.
5461         (VABD): Likewise.
5462         (VABDL): Likewise.
5463         (VMAXMIN): Likewise.
5464         (VMAXMINF): Likewise.
5465         (VPADDL): Likewise.
5466         (VPADAL): Likewise.
5467         (VPMAXMIN): Likewise.
5468         (VPMAXMINF): Likewise.
5469         (VCVT_US): Likewise.
5470         (VCVT_US_N): Likewise.
5471         (VQMOVN): Likewise.
5472         (VMOVL): Likewise.
5473         (VSHL): Likewise.
5474         (VQSHL): Likewise.
5475         (VSHR_N): Likewise.
5476         (VSHRN_N): Likewise.
5477         (VQSHRN_N): Likewise.
5478         (VQSHRUN_N): Likewise.
5479         (VQSHL_N): Likewise.
5480         (VSHLL_N): Likewise.
5481         (VSRA_N): Likewise.
5482         (pf): Likewise.
5483         (sup): Likewise.
5484         (r): Liekwise.
5485         (maxmin): Likewise.
5486         (shift_op): Likewise.
5487         * config/arm/arm_neon_builtins.def (vaddl): Split to...
5488         (vaddls): ...this and...
5489         (vaddlu): ...this.
5490         (vaddw): Split to...
5491         (vaddws): ...this and...
5492         (vaddwu): ...this.
5493         (vhadd): Split to...
5494         (vhadds): ...this and...
5495         (vhaddu): ...this and...
5496         (vrhadds): ...this and...
5497         (vrhaddu): ...this.
5498         (vqadd): Split to...
5499         (vqadds): ...this and...
5500         (vqaddu): ...this.
5501         (vaddhn): Split to itself and...
5502         (vraddhn): ...this.
5503         (vmul): Split to...
5504         (vmulf): ...this and...
5505         (vmulp): ...this.
5506         (vmlal): Split to...
5507         (vmlals): ...this and...
5508         (vmlalu): ...this.
5509         (vmlsl): Split to...
5510         (vmlsls): ...this and...
5511         (vmlslu): ...this.
5512         (vqdmulh): Split to itself and...
5513         (vqrdmulh): ...this.
5514         (vmull): Split to...
5515         (vmullp): ...this and...
5516         (vmulls): ...this and...
5517         (vmullu): ...this.
5518         (vmull_n): Split to...
5519         (vmulls_n): ...this and...
5520         (vmullu_n): ...this.
5521         (vmull_lane): Split to...
5522         (vmulls_lane): ...this and...
5523         (vmullu_lane): ...this.
5524         (vqdmulh_n): Split to itself and...
5525         (vqrdmulh_n): ...this.
5526         (vqdmulh_lane): Split to itself and...
5527         (vqrdmulh_lane): ...this.
5528         (vshl): Split to...
5529         (vshls): ...this and...
5530         (vshlu): ...this and...
5531         (vrshls): ...this and...
5532         (vrshlu): ...this.
5533         (vqshl): Split to...
5534         (vqshls): ...this and...
5535         (vqrshlu): ...this and...
5536         (vqrshls): ...this and...
5537         (vqrshlu): ...this.
5538         (vshr_n): Split to...
5539         (vshrs_n): ...this and...
5540         (vshru_n): ...this and...
5541         (vrshrs_n): ...this and...
5542         (vrshru_n): ...this.
5543         (vshrn_n): Split to itself and...
5544         (vrshrn_n): ...this.
5545         (vqshrn_n): Split to...
5546         (vqshrns_n): ...this and...
5547         (vqshrnu_n): ...this and...
5548         (vqrshrns_n): ...this and...
5549         (vqrshrnu_n): ...this.
5550         (vqshrun_n): Split to itself and...
5551         (vqrshrun_n): ...this.
5552         (vqshl_n): Split to...
5553         (vqshl_s_n): ...this and...
5554         (vqshl_u_n): ...this.
5555         (vshll_n): Split to...
5556         (vshlls_n): ...this and...
5557         (vshllu_n): ...this.
5558         (vsra_n): Split to...
5559         (vsras_n): ...this and...
5560         (vsrau_n): ...this and.
5561         (vrsras_n): ...this and...
5562         (vrsrau_n): ...this and.
5563         (vsubl): Split to...
5564         (vsubls): ...this and...
5565         (vsublu): ...this.
5566         (vsubw): Split to...
5567         (vsubws): ...this and...
5568         (vsubwu): ...this.
5569         (vqsub): Split to...
5570         (vqsubs): ...this and...
5571         (vqsubu): ...this.
5572         (vhsub): Split to...
5573         (vhsubs): ...this and...
5574         (vhsubu): ...this.
5575         (vsubhn): Split to itself and...
5576         (vrsubhn): ...this.
5577         (vabd): Split to...
5578         (vabds): ...this and...
5579         (vabdu): ...this and...
5580         (vabdf): ...this.
5581         (vabdl): Split to...
5582         (vabdls): ...this and...
5583         (vabdlu): ...this.
5584         (vaba): Split to...
5585         (vabas): ...this and...
5586         (vabau): ...this and...
5587         (vabal): Split to...
5588         (vabals): ...this and...
5589         (vabalu): ...this.
5590         (vmax): Split to...
5591         (vmaxs): ...this and...
5592         (vmaxu): ...this and...
5593         (vmaxf): ...this.
5594         (vmin): Split to...
5595         (vmins): ...this and...
5596         (vminu): ...this and...
5597         (vminf): ...this.
5598         (vpmax): Split to...
5599         (vpmaxs): ...this and...
5600         (vpmaxu): ...this and...
5601         (vpmaxf): ...this.
5602         (vpmin): Split to...
5603         (vpmins): ...this and...
5604         (vpminu): ...this and...
5605         (vpminf): ...this.
5606         (vpaddl): Split to...
5607         (vpaddls): ...this and...
5608         (vpaddlu): ...this.
5609         (vpadal): Split to...
5610         (vpadals): ...this and...
5611         (vpadalu): ...this.
5612         (vget_laneu): New.
5613         (vqmovn): Split to...
5614         (vqmovns): ...this and...
5615         (vqmovnu): ...this.
5616         (vmovl): Split to...
5617         (vmovls): ...this and...
5618         (vmovlu): ...this.
5619         (vmlal_lane): Split to...
5620         (vmlals_lane): ...this and...
5621         (vmlalu_lane): ...this.
5622         (vmlsl_lane): Split to...
5623         (vmlsls_lane): ...this and...
5624         (vmlslu_lane): ...this.
5625         (vmlal_n): Split to...
5626         (vmlals_n): ...this and...
5627         (vmlalu_n): ...this.
5628         (vmlsl_n): Split to...
5629         (vmlsls_n): ...this and...
5630         (vmlslu_n): ...this.
5631         (vext): Make type "SHIFTINSERT".
5632         (vcvt): Split to...
5633         (vcvts): ...this and...
5634         (vcvtu): ...this.
5635         (vcvt_n): Split to...
5636         (vcvts_n): ...this and...
5637         (vcvtu_n): ...this.
5638         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5639         (vaddl_s16): Likewise.
5640         (vaddl_s32): Likewise.
5641         (vaddl_u8): Likewise.
5642         (vaddl_u16): Likewise.
5643         (vaddl_u32): Likewise.
5644         (vaddw_s8): Likewise.
5645         (vaddw_s16): Likewise.
5646         (vaddw_s32): Likewise.
5647         (vaddw_u8): Likewise.
5648         (vaddw_u16): Likewise.
5649         (vaddw_u32): Likewise.
5650         (vhadd_s8): Likewise.
5651         (vhadd_s16): Likewise.
5652         (vhadd_s32): Likewise.
5653         (vhadd_u8): Likewise.
5654         (vhadd_u16): Likewise.
5655         (vhadd_u32): Likewise.
5656         (vhaddq_s8): Likewise.
5657         (vhaddq_s16): Likewise.
5658         (vhaddq_s32): Likewise.
5659         (vhaddq_u8): Likewise.
5660         (vhaddq_u16): Likewise.
5661         (vrhadd_s8): Likewise.
5662         (vrhadd_s16): Likewise.
5663         (vrhadd_s32): Likewise.
5664         (vrhadd_u8): Likewise.
5665         (vrhadd_u16): Likewise.
5666         (vrhadd_u32): Likewise.
5667         (vrhaddq_s8): Likewise.
5668         (vrhaddq_s16): Likewise.
5669         (vrhaddq_s32): Likewise.
5670         (vrhaddq_u8): Likewise.
5671         (vrhaddq_u16): Likewise.
5672         (vrhaddq_u32): Likewise.
5673         (vqadd_s8): Likewise.
5674         (vqadd_s16): Likewise.
5675         (vqadd_s32): Likewise.
5676         (vqadd_s64): Likewise.
5677         (vqadd_u8): Likewise.
5678         (vqadd_u16): Likewise.
5679         (vqadd_u32): Likewise.
5680         (vqadd_u64): Likewise.
5681         (vqaddq_s8): Likewise.
5682         (vqaddq_s16): Likewise.
5683         (vqaddq_s32): Likewise.
5684         (vqaddq_s64): Likewise.
5685         (vqaddq_u8): Likewise.
5686         (vqaddq_u16): Likewise.
5687         (vqaddq_u32): Likewise.
5688         (vqaddq_u64): Likewise.
5689         (vaddhn_s16): Likewise.
5690         (vaddhn_s32): Likewise.
5691         (vaddhn_s64): Likewise.
5692         (vaddhn_u16): Likewise.
5693         (vaddhn_u32): Likewise.
5694         (vaddhn_u64): Likewise.
5695         (vraddhn_s16): Likewise.
5696         (vraddhn_s32): Likewise.
5697         (vraddhn_s64): Likewise.
5698         (vraddhn_u16): Likewise.
5699         (vraddhn_u32): Likewise.
5700         (vraddhn_u64): Likewise.
5701         (vmul_p8): Likewise.
5702         (vmulq_p8): Likewise.
5703         (vqdmulh_s16): Likewise.
5704         (vqdmulh_s32): Likewise.
5705         (vqdmulhq_s16): Likewise.
5706         (vqdmulhq_s32): Likewise.
5707         (vqrdmulh_s16): Likewise.
5708         (vqrdmulh_s32): Likewise.
5709         (vqrdmulhq_s16): Likewise.
5710         (vqrdmulhq_s32): Likewise.
5711         (vmull_s8): Likewise.
5712         (vmull_s16): Likewise.
5713         (vmull_s32): Likewise.
5714         (vmull_u8): Likewise.
5715         (vmull_u16): Likewise.
5716         (vmull_u32): Likewise.
5717         (vmull_p8): Likewise.
5718         (vqdmull_s16): Likewise.
5719         (vqdmull_s32): Likewise.
5720         (vmla_s8): Likewise.
5721         (vmla_s16): Likewise.
5722         (vmla_s32): Likewise.
5723         (vmla_f32): Likewise.
5724         (vmla_u8): Likewise.
5725         (vmla_u16): Likewise.
5726         (vmla_u32): Likewise.
5727         (vmlaq_s8): Likewise.
5728         (vmlaq_s16): Likewise.
5729         (vmlaq_s32): Likewise.
5730         (vmlaq_f32): Likewise.
5731         (vmlaq_u8): Likewise.
5732         (vmlaq_u16): Likewise.
5733         (vmlaq_u32): Likewise.
5734         (vmlal_s8): Likewise.
5735         (vmlal_s16): Likewise.
5736         (vmlal_s32): Likewise.
5737         (vmlal_u8): Likewise.
5738         (vmlal_u16): Likewise.
5739         (vmlal_u32): Likewise.
5740         (vqdmlal_s16): Likewise.
5741         (vqdmlal_s32): Likewise.
5742         (vmls_s8): Likewise.
5743         (vmls_s16): Likewise.
5744         (vmls_s32): Likewise.
5745         (vmls_f32): Likewise.
5746         (vmls_u8): Likewise.
5747         (vmls_u16): Likewise.
5748         (vmls_u32): Likewise.
5749         (vmlsq_s8): Likewise.
5750         (vmlsq_s16): Likewise.
5751         (vmlsq_s32): Likewise.
5752         (vmlsq_f32): Likewise.
5753         (vmlsq_u8): Likewise.
5754         (vmlsq_u16): Likewise.
5755         (vmlsq_u32): Likewise.
5756         (vmlsl_s8): Likewise.
5757         (vmlsl_s16): Likewise.
5758         (vmlsl_s32): Likewise.
5759         (vmlsl_u8): Likewise.
5760         (vmlsl_u16): Likewise.
5761         (vmlsl_u32): Likewise.
5762         (vqdmlsl_s16): Likewise.
5763         (vqdmlsl_s32): Likewise.
5764         (vfma_f32): Likewise.
5765         (vfmaq_f32): Likewise.
5766         (vfms_f32): Likewise.
5767         (vfmsq_f32): Likewise.
5768         (vsubl_s8): Likewise.
5769         (vsubl_s16): Likewise.
5770         (vsubl_s32): Likewise.
5771         (vsubl_u8): Likewise.
5772         (vsubl_u16): Likewise.
5773         (vsubl_u32): Likewise.
5774         (vsubw_s8): Likewise.
5775         (vsubw_s16): Likewise.
5776         (vsubw_s32): Likewise.
5777         (vsubw_u8): Likewise.
5778         (vsubw_u16): Likewise.
5779         (vsubw_u32): Likewise.
5780         (vhsub_s8): Likewise.
5781         (vhsub_s16): Likewise.
5782         (vhsub_s32): Likewise.
5783         (vhsub_u8): Likewise.
5784         (vhsub_u16): Likewise.
5785         (vhsub_u32): Likewise.
5786         (vhsubq_s8): Likewise.
5787         (vhsubq_s16): Likewise.
5788         (vhsubq_s32): Likewise.
5789         (vhsubq_u8): Likewise.
5790         (vhsubq_u16): Likewise.
5791         (vhsubq_u32): Likewise.
5792         (vqsub_s8): Likewise.
5793         (vqsub_s16): Likewise.
5794         (vqsub_s32): Likewise.
5795         (vqsub_s64): Likewise.
5796         (vqsub_u8): Likewise.
5797         (vqsub_u16): Likewise.
5798         (vqsub_u32): Likewise.
5799         (vqsub_u64): Likewise.
5800         (vqsubq_s8): Likewise.
5801         (vqsubq_s16): Likewise.
5802         (vqsubq_s32): Likewise.
5803         (vqsubq_s64): Likewise.
5804         (vqsubq_u8): Likewise.
5805         (vqsubq_u16): Likewise.
5806         (vqsubq_u32): Likewise.
5807         (vqsubq_u64): Likewise.
5808         (vsubhn_s16): Likewise.
5809         (vsubhn_s32): Likewise.
5810         (vsubhn_s64): Likewise.
5811         (vsubhn_u16): Likewise.
5812         (vsubhn_u32): Likewise.
5813         (vsubhn_u64): Likewise.
5814         (vrsubhn_s16): Likewise.
5815         (vrsubhn_s32): Likewise.
5816         (vrsubhn_s64): Likewise.
5817         (vrsubhn_u16): Likewise.
5818         (vrsubhn_u32): Likewise.
5819         (vrsubhn_u64): Likewise.
5820         (vceq_s8): Likewise.
5821         (vceq_s16): Likewise.
5822         (vceq_s32): Likewise.
5823         (vceq_f32): Likewise.
5824         (vceq_u8): Likewise.
5825         (vceq_u16): Likewise.
5826         (vceq_u32): Likewise.
5827         (vceq_p8): Likewise.
5828         (vceqq_s8): Likewise.
5829         (vceqq_s16): Likewise.
5830         (vceqq_s32): Likewise.
5831         (vceqq_f32): Likewise.
5832         (vceqq_u8): Likewise.
5833         (vceqq_u16): Likewise.
5834         (vceqq_u32): Likewise.
5835         (vceqq_p8): Likewise.
5836         (vcge_s8): Likewise.
5837         (vcge_s16): Likewise.
5838         (vcge_s32): Likewise.
5839         (vcge_f32): Likewise.
5840         (vcge_u8): Likewise.
5841         (vcge_u16): Likewise.
5842         (vcge_u32): Likewise.
5843         (vcgeq_s8): Likewise.
5844         (vcgeq_s16): Likewise.
5845         (vcgeq_s32): Likewise.
5846         (vcgeq_f32): Likewise.
5847         (vcgeq_u8): Likewise.
5848         (vcgeq_u16): Likewise.
5849         (vcgeq_u32): Likewise.
5850         (vcle_s8): Likewise.
5851         (vcle_s16): Likewise.
5852         (vcle_s32): Likewise.
5853         (vcle_f32): Likewise.
5854         (vcle_u8): Likewise.
5855         (vcle_u16): Likewise.
5856         (vcle_u32): Likewise.
5857         (vcleq_s8): Likewise.
5858         (vcleq_s16): Likewise.
5859         (vcleq_s32): Likewise.
5860         (vcleq_f32): Likewise.
5861         (vcleq_u8): Likewise.
5862         (vcleq_u16): Likewise.
5863         (vcleq_u32): Likewise.
5864         (vcgt_s8): Likewise.
5865         (vcgt_s16): Likewise.
5866         (vcgt_s32): Likewise.
5867         (vcgt_f32): Likewise.
5868         (vcgt_u8): Likewise.
5869         (vcgt_u16): Likewise.
5870         (vcgt_u32): Likewise.
5871         (vcgtq_s8): Likewise.
5872         (vcgtq_s16): Likewise.
5873         (vcgtq_s32): Likewise.
5874         (vcgtq_f32): Likewise.
5875         (vcgtq_u8): Likewise.
5876         (vcgtq_u16): Likewise.
5877         (vcgtq_u32): Likewise.
5878         (vclt_s8): Likewise.
5879         (vclt_s16): Likewise.
5880         (vclt_s32): Likewise.
5881         (vclt_f32): Likewise.
5882         (vclt_u8): Likewise.
5883         (vclt_u16): Likewise.
5884         (vclt_u32): Likewise.
5885         (vcltq_s8): Likewise.
5886         (vcltq_s16): Likewise.
5887         (vcltq_s32): Likewise.
5888         (vcltq_f32): Likewise.
5889         (vcltq_u8): Likewise.
5890         (vcltq_u16): Likewise.
5891         (vcltq_u32): Likewise.
5892         (vcage_f32): Likewise.
5893         (vcageq_f32): Likewise.
5894         (vcale_f32): Likewise.
5895         (vcaleq_f32): Likewise.
5896         (vcagt_f32): Likewise.
5897         (vcagtq_f32): Likewise.
5898         (vcalt_f32): Likewise.
5899         (vcaltq_f32): Likewise.
5900         (vtst_s8): Likewise.
5901         (vtst_s16): Likewise.
5902         (vtst_s32): Likewise.
5903         (vtst_u8): Likewise.
5904         (vtst_u16): Likewise.
5905         (vtst_u32): Likewise.
5906         (vtst_p8): Likewise.
5907         (vtstq_s8): Likewise.
5908         (vtstq_s16): Likewise.
5909         (vtstq_s32): Likewise.
5910         (vtstq_u8): Likewise.
5911         (vtstq_u16): Likewise.
5912         (vtstq_u32): Likewise.
5913         (vtstq_p8): Likewise.
5914         (vabd_s8): Likewise.
5915         (vabd_s16): Likewise.
5916         (vabd_s32): Likewise.
5917         (vabd_f32): Likewise.
5918         (vabd_u8): Likewise.
5919         (vabd_u16): Likewise.
5920         (vabd_u32): Likewise.
5921         (vabdq_s8): Likewise.
5922         (vabdq_s16): Likewise.
5923         (vabdq_s32): Likewise.
5924         (vabdq_f32): Likewise.
5925         (vabdq_u8): Likewise.
5926         (vabdq_u16): Likewise.
5927         (vabdq_u32): Likewise.
5928         (vabdl_s8): Likewise.
5929         (vabdl_s16): Likewise.
5930         (vabdl_s32): Likewise.
5931         (vabdl_u8): Likewise.
5932         (vabdl_u16): Likewise.
5933         (vabdl_u32): Likewise.
5934         (vaba_s8): Likewise.
5935         (vaba_s16): Likewise.
5936         (vaba_s32): Likewise.
5937         (vaba_u8): Likewise.
5938         (vaba_u16): Likewise.
5939         (vaba_u32): Likewise.
5940         (vabaq_s8): Likewise.
5941         (vabaq_s16): Likewise.
5942         (vabaq_s32): Likewise.
5943         (vabaq_u8): Likewise.
5944         (vabaq_u16): Likewise.
5945         (vabaq_u32): Likewise.
5946         (vabal_s8): Likewise.
5947         (vabal_s16): Likewise.
5948         (vabal_s32): Likewise.
5949         (vabal_u8): Likewise.
5950         (vabal_u16): Likewise.
5951         (vabal_u32): Likewise.
5952         (vmax_s8): Likewise.
5953         (vmax_s16): Likewise.
5954         (vmax_s32): Likewise.
5955         (vmax_f32): Likewise.
5956         (vmax_u8): Likewise.
5957         (vmax_u16): Likewise.
5958         (vmax_u32): Likewise.
5959         (vmaxq_s8): Likewise.
5960         (vmaxq_s16): Likewise.
5961         (vmaxq_s32): Likewise.
5962         (vmaxq_f32): Likewise.
5963         (vmaxq_u8): Likewise.
5964         (vmaxq_u16): Likewise.
5965         (vmaxq_u32): Likewise.
5966         (vmin_s8): Likewise.
5967         (vmin_s16): Likewise.
5968         (vmin_s32): Likewise.
5969         (vmin_f32): Likewise.
5970         (vmin_u8): Likewise.
5971         (vmin_u16): Likewise.
5972         (vmin_u32): Likewise.
5973         (vminq_s8): Likewise.
5974         (vminq_s16): Likewise.
5975         (vminq_s32): Likewise.
5976         (vminq_f32): Likewise.
5977         (vminq_u8): Likewise.
5978         (vminq_u16): Likewise.
5979         (vminq_u32): Likewise.
5980         (vpadd_s8): Likewise.
5981         (vpadd_s16): Likewise.
5982         (vpadd_s32): Likewise.
5983         (vpadd_f32): Likewise.
5984         (vpadd_u8): Likewise.
5985         (vpadd_u16): Likewise.
5986         (vpadd_u32): Likewise.
5987         (vpaddl_s8): Likewise.
5988         (vpaddl_s16): Likewise.
5989         (vpaddl_s32): Likewise.
5990         (vpaddl_u8): Likewise.
5991         (vpaddl_u16): Likewise.
5992         (vpaddl_u32): Likewise.
5993         (vpaddlq_s8): Likewise.
5994         (vpaddlq_s16): Likewise.
5995         (vpaddlq_s32): Likewise.
5996         (vpaddlq_u8): Likewise.
5997         (vpaddlq_u16): Likewise.
5998         (vpaddlq_u32): Likewise.
5999         (vpadal_s8): Likewise.
6000         (vpadal_s16): Likewise.
6001         (vpadal_s32): Likewise.
6002         (vpadal_u8): Likewise.
6003         (vpadal_u16): Likewise.
6004         (vpadal_u32): Likewise.
6005         (vpadalq_s8): Likewise.
6006         (vpadalq_s16): Likewise.
6007         (vpadalq_s32): Likewise.
6008         (vpadalq_u8): Likewise.
6009         (vpadalq_u16): Likewise.
6010         (vpadalq_u32): Likewise.
6011         (vpmax_s8): Likewise.
6012         (vpmax_s16): Likewise.
6013         (vpmax_s32): Likewise.
6014         (vpmax_f32): Likewise.
6015         (vpmax_u8): Likewise.
6016         (vpmax_u16): Likewise.
6017         (vpmax_u32): Likewise.
6018         (vpmin_s8): Likewise.
6019         (vpmin_s16): Likewise.
6020         (vpmin_s32): Likewise.
6021         (vpmin_f32): Likewise.
6022         (vpmin_u8): Likewise.
6023         (vpmin_u16): Likewise.
6024         (vpmin_u32): Likewise.
6025         (vrecps_f32): Likewise.
6026         (vrecpsq_f32): Likewise.
6027         (vrsqrts_f32): Likewise.
6028         (vrsqrtsq_f32): Likewise.
6029         (vshl_s8): Likewise.
6030         (vshl_s16): Likewise.
6031         (vshl_s32): Likewise.
6032         (vshl_s64): Likewise.
6033         (vshl_u8): Likewise.
6034         (vshl_u16): Likewise.
6035         (vshl_u32): Likewise.
6036         (vshl_u64): Likewise.
6037         (vshlq_s8): Likewise.
6038         (vshlq_s16): Likewise.
6039         (vshlq_s32): Likewise.
6040         (vshlq_s64): Likewise.
6041         (vshlq_u8): Likewise.
6042         (vshlq_u16): Likewise.
6043         (vshlq_u32): Likewise.
6044         (vshlq_u64): Likewise.
6045         (vrshl_s8): Likewise.
6046         (vrshl_s16): Likewise.
6047         (vrshl_s32): Likewise.
6048         (vrshl_s64): Likewise.
6049         (vrshl_u8): Likewise.
6050         (vrshl_u16): Likewise.
6051         (vrshl_u32): Likewise.
6052         (vrshl_u64): Likewise.
6053         (vrshlq_s8): Likewise.
6054         (vrshlq_s16): Likewise.
6055         (vrshlq_s32): Likewise.
6056         (vrshlq_s64): Likewise.
6057         (vrshlq_u8): Likewise.
6058         (vrshlq_u16): Likewise.
6059         (vrshlq_u32): Likewise.
6060         (vrshlq_u64): Likewise.
6061         (vqshl_s8): Likewise.
6062         (vqshl_s16): Likewise.
6063         (vqshl_s32): Likewise.
6064         (vqshl_s64): Likewise.
6065         (vqshl_u8): Likewise.
6066         (vqshl_u16): Likewise.
6067         (vqshl_u32): Likewise.
6068         (vqshl_u64): Likewise.
6069         (vqshlq_s8): Likewise.
6070         (vqshlq_s16): Likewise.
6071         (vqshlq_s32): Likewise.
6072         (vqshlq_s64): Likewise.
6073         (vqshlq_u8): Likewise.
6074         (vqshlq_u16): Likewise.
6075         (vqshlq_u32): Likewise.
6076         (vqshlq_u64): Likewise.
6077         (vqrshl_s8): Likewise.
6078         (vqrshl_s16): Likewise.
6079         (vqrshl_s32): Likewise.
6080         (vqrshl_s64): Likewise.
6081         (vqrshl_u8): Likewise.
6082         (vqrshl_u16): Likewise.
6083         (vqrshl_u32): Likewise.
6084         (vqrshl_u64): Likewise.
6085         (vqrshlq_s8): Likewise.
6086         (vqrshlq_s16): Likewise.
6087         (vqrshlq_s32): Likewise.
6088         (vqrshlq_s64): Likewise.
6089         (vqrshlq_u8): Likewise.
6090         (vqrshlq_u16): Likewise.
6091         (vqrshlq_u32): Likewise.
6092         (vqrshlq_u64): Likewise.
6093         (vshr_n_s8): Likewise.
6094         (vshr_n_s16): Likewise.
6095         (vshr_n_s32): Likewise.
6096         (vshr_n_s64): Likewise.
6097         (vshr_n_u8): Likewise.
6098         (vshr_n_u16): Likewise.
6099         (vshr_n_u32): Likewise.
6100         (vshr_n_u64): Likewise.
6101         (vshrq_n_s8): Likewise.
6102         (vshrq_n_s16): Likewise.
6103         (vshrq_n_s32): Likewise.
6104         (vshrq_n_s64): Likewise.
6105         (vshrq_n_u8): Likewise.
6106         (vshrq_n_u16): Likewise.
6107         (vshrq_n_u32): Likewise.
6108         (vshrq_n_u64): Likewise.
6109         (vrshr_n_s8): Likewise.
6110         (vrshr_n_s16): Likewise.
6111         (vrshr_n_s32): Likewise.
6112         (vrshr_n_s64): Likewise.
6113         (vrshr_n_u8): Likewise.
6114         (vrshr_n_u16): Likewise.
6115         (vrshr_n_u32): Likewise.
6116         (vrshr_n_u64): Likewise.
6117         (vrshrq_n_s8): Likewise.
6118         (vrshrq_n_s16): Likewise.
6119         (vrshrq_n_s32): Likewise.
6120         (vrshrq_n_s64): Likewise.
6121         (vrshrq_n_u8): Likewise.
6122         (vrshrq_n_u16): Likewise.
6123         (vrshrq_n_u32): Likewise.
6124         (vrshrq_n_u64): Likewise.
6125         (vshrn_n_s16): Likewise.
6126         (vshrn_n_s32): Likewise.
6127         (vshrn_n_s64): Likewise.
6128         (vshrn_n_u16): Likewise.
6129         (vshrn_n_u32): Likewise.
6130         (vshrn_n_u64): Likewise.
6131         (vrshrn_n_s16): Likewise.
6132         (vrshrn_n_s32): Likewise.
6133         (vrshrn_n_s64): Likewise.
6134         (vrshrn_n_u16): Likewise.
6135         (vrshrn_n_u32): Likewise.
6136         (vrshrn_n_u64): Likewise.
6137         (vqshrn_n_s16): Likewise.
6138         (vqshrn_n_s32): Likewise.
6139         (vqshrn_n_s64): Likewise.
6140         (vqshrn_n_u16): Likewise.
6141         (vqshrn_n_u32): Likewise.
6142         (vqshrn_n_u64): Likewise.
6143         (vqrshrn_n_s16): Likewise.
6144         (vqrshrn_n_s32): Likewise.
6145         (vqrshrn_n_s64): Likewise.
6146         (vqrshrn_n_u16): Likewise.
6147         (vqrshrn_n_u32): Likewise.
6148         (vqrshrn_n_u64): Likewise.
6149         (vqshrun_n_s16): Likewise.
6150         (vqshrun_n_s32): Likewise.
6151         (vqshrun_n_s64): Likewise.
6152         (vqrshrun_n_s16): Likewise.
6153         (vqrshrun_n_s32): Likewise.
6154         (vqrshrun_n_s64): Likewise.
6155         (vshl_n_s8): Likewise.
6156         (vshl_n_s16): Likewise.
6157         (vshl_n_s32): Likewise.
6158         (vshl_n_s64): Likewise.
6159         (vshl_n_u8): Likewise.
6160         (vshl_n_u16): Likewise.
6161         (vshl_n_u32): Likewise.
6162         (vshl_n_u64): Likewise.
6163         (vshlq_n_s8): Likewise.
6164         (vshlq_n_s16): Likewise.
6165         (vshlq_n_s32): Likewise.
6166         (vshlq_n_s64): Likewise.
6167         (vshlq_n_u8): Likewise.
6168         (vshlq_n_u16): Likewise.
6169         (vshlq_n_u32): Likewise.
6170         (vshlq_n_u64): Likewise.
6171         (vqshl_n_s8): Likewise.
6172         (vqshl_n_s16): Likewise.
6173         (vqshl_n_s32): Likewise.
6174         (vqshl_n_s64): Likewise.
6175         (vqshl_n_u8): Likewise.
6176         (vqshl_n_u16): Likewise.
6177         (vqshl_n_u32): Likewise.
6178         (vqshl_n_u64): Likewise.
6179         (vqshlq_n_s8): Likewise.
6180         (vqshlq_n_s16): Likewise.
6181         (vqshlq_n_s32): Likewise.
6182         (vqshlq_n_s64): Likewise.
6183         (vqshlq_n_u8): Likewise.
6184         (vqshlq_n_u16): Likewise.
6185         (vqshlq_n_u32): Likewise.
6186         (vqshlq_n_u64): Likewise.
6187         (vqshlu_n_s8): Likewise.
6188         (vqshlu_n_s16): Likewise.
6189         (vqshlu_n_s32): Likewise.
6190         (vqshlu_n_s64): Likewise.
6191         (vqshluq_n_s8): Likewise.
6192         (vqshluq_n_s16): Likewise.
6193         (vqshluq_n_s32): Likewise.
6194         (vqshluq_n_s64): Likewise.
6195         (vshll_n_s8): Likewise.
6196         (vshll_n_s16): Likewise.
6197         (vshll_n_s32): Likewise.
6198         (vshll_n_u8): Likewise.
6199         (vshll_n_u16): Likewise.
6200         (vshll_n_u32): Likewise.
6201         (vsra_n_s8): Likewise.
6202         (vsra_n_s16): Likewise.
6203         (vsra_n_s32): Likewise.
6204         (vsra_n_s64): Likewise.
6205         (vsra_n_u8): Likewise.
6206         (vsra_n_u16): Likewise.
6207         (vsra_n_u32): Likewise.
6208         (vsra_n_u64): Likewise.
6209         (vsraq_n_s8): Likewise.
6210         (vsraq_n_s16): Likewise.
6211         (vsraq_n_s32): Likewise.
6212         (vsraq_n_s64): Likewise.
6213         (vsraq_n_u8): Likewise.
6214         (vsraq_n_u16): Likewise.
6215         (vsraq_n_u32): Likewise.
6216         (vsraq_n_u64): Likewise.
6217         (vrsra_n_s8): Likewise.
6218         (vrsra_n_s16): Likewise.
6219         (vrsra_n_s32): Likewise.
6220         (vrsra_n_s64): Likewise.
6221         (vrsra_n_u8): Likewise.
6222         (vrsra_n_u16): Likewise.
6223         (vrsra_n_u32): Likewise.
6224         (vrsra_n_u64): Likewise.
6225         (vrsraq_n_s8): Likewise.
6226         (vrsraq_n_s16): Likewise.
6227         (vrsraq_n_s32): Likewise.
6228         (vrsraq_n_s64): Likewise.
6229         (vrsraq_n_u8): Likewise.
6230         (vrsraq_n_u16): Likewise.
6231         (vrsraq_n_u32): Likewise.
6232         (vrsraq_n_u64): Likewise.
6233         (vabs_s8): Likewise.
6234         (vabs_s16): Likewise.
6235         (vabs_s32): Likewise.
6236         (vabs_f32): Likewise.
6237         (vabsq_s8): Likewise.
6238         (vabsq_s16): Likewise.
6239         (vabsq_s32): Likewise.
6240         (vabsq_f32): Likewise.
6241         (vqabs_s8): Likewise.
6242         (vqabs_s16): Likewise.
6243         (vqabs_s32): Likewise.
6244         (vqabsq_s8): Likewise.
6245         (vqabsq_s16): Likewise.
6246         (vqabsq_s32): Likewise.
6247         (vneg_s8): Likewise.
6248         (vneg_s16): Likewise.
6249         (vneg_s32): Likewise.
6250         (vneg_f32): Likewise.
6251         (vnegq_s8): Likewise.
6252         (vnegq_s16): Likewise.
6253         (vnegq_s32): Likewise.
6254         (vnegq_f32): Likewise.
6255         (vqneg_s8): Likewise.
6256         (vqneg_s16): Likewise.
6257         (vqneg_s32): Likewise.
6258         (vqnegq_s8): Likewise.
6259         (vqnegq_s16): Likewise.
6260         (vqnegq_s32): Likewise.
6261         (vmvn_s8): Likewise.
6262         (vmvn_s16): Likewise.
6263         (vmvn_s32): Likewise.
6264         (vmvn_u8): Likewise.
6265         (vmvn_u16): Likewise.
6266         (vmvn_u32): Likewise.
6267         (vmvn_p8): Likewise.
6268         (vmvnq_s8): Likewise.
6269         (vmvnq_s16): Likewise.
6270         (vmvnq_s32): Likewise.
6271         (vmvnq_u8): Likewise.
6272         (vmvnq_u16): Likewise.
6273         (vmvnq_u32): Likewise.
6274         (vmvnq_p8): Likewise.
6275         (vcls_s8): Likewise.
6276         (vcls_s16): Likewise.
6277         (vcls_s32): Likewise.
6278         (vclsq_s8): Likewise.
6279         (vclsq_s16): Likewise.
6280         (vclsq_s32): Likewise.
6281         (vclz_s8): Likewise.
6282         (vclz_s16): Likewise.
6283         (vclz_s32): Likewise.
6284         (vclz_u8): Likewise.
6285         (vclz_u16): Likewise.
6286         (vclz_u32): Likewise.
6287         (vclzq_s8): Likewise.
6288         (vclzq_s16): Likewise.
6289         (vclzq_s32): Likewise.
6290         (vclzq_u8): Likewise.
6291         (vclzq_u16): Likewise.
6292         (vclzq_u32): Likewise.
6293         (vcnt_s8): Likewise.
6294         (vcnt_u8): Likewise.
6295         (vcnt_p8): Likewise.
6296         (vcntq_s8): Likewise.
6297         (vcntq_u8): Likewise.
6298         (vcntq_p8): Likewise.
6299         (vrecpe_f32): Likewise.
6300         (vrecpe_u32): Likewise.
6301         (vrecpeq_f32): Likewise.
6302         (vrecpeq_u32): Likewise.
6303         (vrsqrte_f32): Likewise.
6304         (vrsqrte_u32): Likewise.
6305         (vrsqrteq_f32): Likewise.
6306         (vrsqrteq_u32): Likewise.
6307         (vget_lane_s8): Likewise.
6308         (vget_lane_s16): Likewise.
6309         (vget_lane_s32): Likewise.
6310         (vget_lane_f32): Likewise.
6311         (vget_lane_u8): Likewise.
6312         (vget_lane_u16): Likewise.
6313         (vget_lane_u32): Likewise.
6314         (vget_lane_p8): Likewise.
6315         (vget_lane_p16): Likewise.
6316         (vget_lane_s64): Likewise.
6317         (vget_lane_u64): Likewise.
6318         (vgetq_lane_s8): Likewise.
6319         (vgetq_lane_s16): Likewise.
6320         (vgetq_lane_s32): Likewise.
6321         (vgetq_lane_f32): Likewise.
6322         (vgetq_lane_u8): Likewise.
6323         (vgetq_lane_u16): Likewise.
6324         (vgetq_lane_u32): Likewise.
6325         (vgetq_lane_p8): Likewise.
6326         (vgetq_lane_p16): Likewise.
6327         (vgetq_lane_s64): Likewise.
6328         (vgetq_lane_u64): Likewise.
6329         (vcvt_s32_f32): Likewise.
6330         (vcvt_f32_s32): Likewise.
6331         (vcvt_f32_u32): Likewise.
6332         (vcvt_u32_f32): Likewise.
6333         (vcvtq_s32_f32): Likewise.
6334         (vcvtq_f32_s32): Likewise.
6335         (vcvtq_f32_u32): Likewise.
6336         (vcvtq_u32_f32): Likewise.
6337         (vcvt_n_s32_f32): Likewise.
6338         (vcvt_n_f32_s32): Likewise.
6339         (vcvt_n_f32_u32): Likewise.
6340         (vcvt_n_u32_f32): Likewise.
6341         (vcvtq_n_s32_f32): Likewise.
6342         (vcvtq_n_f32_s32): Likewise.
6343         (vcvtq_n_f32_u32): Likewise.
6344         (vcvtq_n_u32_f32): Likewise.
6345         (vmovn_s16): Likewise.
6346         (vmovn_s32): Likewise.
6347         (vmovn_s64): Likewise.
6348         (vmovn_u16): Likewise.
6349         (vmovn_u32): Likewise.
6350         (vmovn_u64): Likewise.
6351         (vqmovn_s16): Likewise.
6352         (vqmovn_s32): Likewise.
6353         (vqmovn_s64): Likewise.
6354         (vqmovn_u16): Likewise.
6355         (vqmovn_u32): Likewise.
6356         (vqmovn_u64): Likewise.
6357         (vqmovun_s16): Likewise.
6358         (vqmovun_s32): Likewise.
6359         (vqmovun_s64): Likewise.
6360         (vmovl_s8): Likewise.
6361         (vmovl_s16): Likewise.
6362         (vmovl_s32): Likewise.
6363         (vmovl_u8): Likewise.
6364         (vmovl_u16): Likewise.
6365         (vmovl_u32): Likewise.
6366         (vmul_lane_s16): Likewise.
6367         (vmul_lane_s32): Likewise.
6368         (vmul_lane_f32): Likewise.
6369         (vmul_lane_u16): Likewise.
6370         (vmul_lane_u32): Likewise.
6371         (vmulq_lane_s16): Likewise.
6372         (vmulq_lane_s32): Likewise.
6373         (vmulq_lane_f32): Likewise.
6374         (vmulq_lane_u16): Likewise.
6375         (vmulq_lane_u32): Likewise.
6376         (vmla_lane_s16): Likewise.
6377         (vmla_lane_s32): Likewise.
6378         (vmla_lane_f32): Likewise.
6379         (vmla_lane_u16): Likewise.
6380         (vmla_lane_u32): Likewise.
6381         (vmlaq_lane_s16): Likewise.
6382         (vmlaq_lane_s32): Likewise.
6383         (vmlaq_lane_f32): Likewise.
6384         (vmlaq_lane_u16): Likewise.
6385         (vmlaq_lane_u32): Likewise.
6386         (vmlal_lane_s16): Likewise.
6387         (vmlal_lane_s32): Likewise.
6388         (vmlal_lane_u16): Likewise.
6389         (vmlal_lane_u32): Likewise.
6390         (vqdmlal_lane_s16): Likewise.
6391         (vqdmlal_lane_s32): Likewise.
6392         (vmls_lane_s16): Likewise.
6393         (vmls_lane_s32): Likewise.
6394         (vmls_lane_f32): Likewise.
6395         (vmls_lane_u16): Likewise.
6396         (vmls_lane_u32): Likewise.
6397         (vmlsq_lane_s16): Likewise.
6398         (vmlsq_lane_s32): Likewise.
6399         (vmlsq_lane_f32): Likewise.
6400         (vmlsq_lane_u16): Likewise.
6401         (vmlsq_lane_u32): Likewise.
6402         (vmlsl_lane_s16): Likewise.
6403         (vmlsl_lane_s32): Likewise.
6404         (vmlsl_lane_u16): Likewise.
6405         (vmlsl_lane_u32): Likewise.
6406         (vqdmlsl_lane_s16): Likewise.
6407         (vqdmlsl_lane_s32): Likewise.
6408         (vmull_lane_s16): Likewise.
6409         (vmull_lane_s32): Likewise.
6410         (vmull_lane_u16): Likewise.
6411         (vmull_lane_u32): Likewise.
6412         (vqdmull_lane_s16): Likewise.
6413         (vqdmull_lane_s32): Likewise.
6414         (vqdmulhq_lane_s16): Likewise.
6415         (vqdmulhq_lane_s32): Likewise.
6416         (vqdmulh_lane_s16): Likewise.
6417         (vqdmulh_lane_s32): Likewise.
6418         (vqrdmulhq_lane_s16): Likewise.
6419         (vqrdmulhq_lane_s32): Likewise.
6420         (vqrdmulh_lane_s16): Likewise.
6421         (vqrdmulh_lane_s32): Likewise.
6422         (vmul_n_s16): Likewise.
6423         (vmul_n_s32): Likewise.
6424         (vmul_n_f32): Likewise.
6425         (vmul_n_u16): Likewise.
6426         (vmul_n_u32): Likewise.
6427         (vmulq_n_s16): Likewise.
6428         (vmulq_n_s32): Likewise.
6429         (vmulq_n_f32): Likewise.
6430         (vmulq_n_u16): Likewise.
6431         (vmulq_n_u32): Likewise.
6432         (vmull_n_s16): Likewise.
6433         (vmull_n_s32): Likewise.
6434         (vmull_n_u16): Likewise.
6435         (vmull_n_u32): Likewise.
6436         (vqdmull_n_s16): Likewise.
6437         (vqdmull_n_s32): Likewise.
6438         (vqdmulhq_n_s16): Likewise.
6439         (vqdmulhq_n_s32): Likewise.
6440         (vqdmulh_n_s16): Likewise.
6441         (vqdmulh_n_s32): Likewise.
6442         (vqrdmulhq_n_s16): Likewise.
6443         (vqrdmulhq_n_s32): Likewise.
6444         (vqrdmulh_n_s16): Likewise.
6445         (vqrdmulh_n_s32): Likewise.
6446         (vmla_n_s16): Likewise.
6447         (vmla_n_s32): Likewise.
6448         (vmla_n_f32): Likewise.
6449         (vmla_n_u16): Likewise.
6450         (vmla_n_u32): Likewise.
6451         (vmlaq_n_s16): Likewise.
6452         (vmlaq_n_s32): Likewise.
6453         (vmlaq_n_f32): Likewise.
6454         (vmlaq_n_u16): Likewise.
6455         (vmlaq_n_u32): Likewise.
6456         (vmlal_n_s16): Likewise.
6457         (vmlal_n_s32): Likewise.
6458         (vmlal_n_u16): Likewise.
6459         (vmlal_n_u32): Likewise.
6460         (vqdmlal_n_s16): Likewise.
6461         (vqdmlal_n_s32): Likewise.
6462         (vmls_n_s16): Likewise.
6463         (vmls_n_s32): Likewise.
6464         (vmls_n_f32): Likewise.
6465         (vmls_n_u16): Likewise.
6466         (vmls_n_u32): Likewise.
6467         (vmlsq_n_s16): Likewise.
6468         (vmlsq_n_s32): Likewise.
6469         (vmlsq_n_f32): Likewise.
6470         (vmlsq_n_u16): Likewise.
6471         (vmlsq_n_u32): Likewise.
6472         (vmlsl_n_s16): Likewise.
6473         (vmlsl_n_s32): Likewise.
6474         (vmlsl_n_u16): Likewise.
6475         (vmlsl_n_u32): Likewise.
6476         (vqdmlsl_n_s16): Likewise.
6477         (vqdmlsl_n_s32): Likewise.
6478
6479 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6480
6481         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
6482         Add cost of alu.arith in simple SImode case.
6483
6484 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
6485
6486         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
6487         registers.
6488
6489 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
6490
6491         * opts.c (finish_options): Disable aggressive opts for sanitizer.
6492         (common_handle_option): Move code to finish_options.
6493
6494 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
6495
6496         PR sanitizer/63802
6497         * stor-layout.c (min_align_of_type): Respect user alignment
6498         more.
6499
6500 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6501
6502         * passes.c (remove_cgraph_node_from_order): New.
6503         (do_per_function_toporder): Register cgraph removal
6504         hook.
6505
6506 2014-11-17  Terry Guo  <terry.guo@arm.com>
6507
6508         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
6509         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
6510         (generic_vfp): Likewise.
6511         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
6512
6513 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
6514
6515         PR rtl-optimization/63906
6516         * lra-remat.c (operand_to_remat): Check SP and
6517         frame_pointer_required.
6518
6519 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
6520
6521         * doc/invoke.texi (floop-unroll-and-jam): Document
6522         (loop-unroll-jam-size): Likewise.
6523         (loop-unroll-jam-depth): Likewise.
6524         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
6525         (getScheduleForBandList): Replaced unsafe union_map reuse.
6526
6527 2014-11-17  Andrew Pinski  <apinski@cavium.com>
6528
6529         * config/aarch64/thunderx.md: Remove copyright which should not
6530         have been there.
6531
6532 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
6533             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6534
6535         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
6536         Altivec style vector loads that ignore the bottom 3 bits of the
6537         address.
6538         (rs6000_debug_addr_mask): New function to print the addr_mask
6539         values if debugging.
6540         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6541         out addr_mask.
6542         (rs6000_setup_reg_addr_masks): Add support for Altivec style
6543         vector loads that ignore the bottom 3 bits of the address.  Allow
6544         pre-increment and pre-decrement on floating point, even if the
6545         -mupper-regs-{sf,df} options were used.
6546         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6547         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
6548         placement for direct move support.
6549         (rs6000_option_override_internal): Add checks for -mupper-regs-df
6550         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6551         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6552         depending on the underlying cpu.
6553         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6554         (rs6000_secondary_reload_toc_costs): Helper function to identify
6555         costs of a TOC load for secondary reload support.
6556         (rs6000_secondary_reload_memory): Helper function for secondary
6557         reload, to determine if a particular memory operation is directly
6558         handled by the hardware, or if it needs support from secondary
6559         reload to create a valid address.
6560         (rs6000_secondary_reload): Rework code, to be clearer.  If the
6561         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6562         reload scalar values, since the FPR registers have D-form
6563         addressing. Move most of the code handling memory to the function
6564         rs6000_secondary_reload_memory, and use the reg_addr structure to
6565         determine what type of address modes are supported.  Print more
6566         debug information if -mdebug=addr.
6567         (rs6000_secondary_reload_inner): Rework entire function to be more
6568         general.  Use the reg_addr bits to determine what type of
6569         addressing is supported.
6570         (rs6000_preferred_reload_class): Rework.  Move constant handling
6571         into a single place.  Prefer using FLOAT_REGS for scalar floating
6572         point.
6573         (rs6000_secondary_reload_class): Use a FPR register to move a
6574         value from an Altivec register to a GPR, and vice versa.  Move VSX
6575         handling above traditional floating point.
6576
6577         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6578         Delete some spaces in the constraints.
6579         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6580         allow using FPR registers to load/store an Altivec register for
6581         scalar floating point types.
6582         (SF->SF move peephole2): Likewise.
6583         (DFmode splitter): Add a define_split to move floating point
6584         constants to the constant pool before register allocation.
6585         Normally constants are put into the pool immediately, but
6586         -ffast-math delays putting them into the constant pool for the
6587         reciprocal approximation support.
6588         (SFmode splitter): Likewise.
6589
6590         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6591         (-mupper-regs-sf): Likewise.
6592
6593         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6594         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
6595         -mupper-regs-sf.
6596         (-mupper-regs): New combination option that sets -mupper-regs-sf
6597         and -mupper-regs-df by default if the cpu supports the instructions.
6598
6599         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6600         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6601
6602         * config/rs6000/predicates.md (memory_fp_constant): New predicate
6603         to return true if the operand is a floating point constant that
6604         must be put into the constant pool, before register allocation
6605         occurs.
6606
6607         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6608         -mupper-regs-df by default.
6609         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6610         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6611         various -mcpu=... options.
6612         (power7 cpu): Enable -mupper-regs-df by default.
6613
6614         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6615         -mupper-regs.
6616
6617 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6618
6619         * ira-conflicts.c (build_conflict_bit_table): Add the current
6620         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6621
6622 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6623
6624         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6625         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6626         (devirtualization_time_bonus): Use it.
6627         (ipcp_discover_new_direct_edges): Likewise.
6628         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6629         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6630
6631 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6632
6633         * tree.c (free_lang_data_in_decl): Set
6634         DECL_FUNCTION_SPECIFIC_OPTIMIZATION to optimization_default_node.
6635
6636 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6637
6638         * cgraphunit.c (analyze_functions): Use opt_for_fn.
6639         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6640
6641 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6642
6643         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6644         (cgraph_node::cannot_return_p): Likewise.
6645         (cgraph_edge::cannot_lead_to_return_p): Likewise.
6646         (cgraph_edge::maybe_hot_p): Likewise.
6647
6648 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6649
6650         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6651         (optimize_function_for_size_p): Likewise.
6652         (probably_never_executed): Likewise; replace cfun by fun.
6653
6654 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6655
6656         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6657         variant reading from memory and assembling to ld1.
6658
6659         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6660         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6661         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6662         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6663         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6664         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6665         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6666
6667 2014-11-17  Jason Merrill  <jason@redhat.com>
6668
6669         * tree-inline.c (copy_fn): New.
6670         * tree-inline.h: Declare it.
6671
6672 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6673
6674         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6675         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6676         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6677         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6678         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6679         * config/aarch64/iterators.md (VD1): Remove.
6680
6681 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6682
6683         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6684         AARCH64_FL_CRYPTO from feature flags.
6685         (cortex-a57): Likewise.
6686         (cortex-a57.cortex-a53): Likewise.
6687
6688 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6689
6690         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6691         DECL_FUNCTION_SPECIFIC_TARGET.
6692         * i386.c (ix86_set_current_function): Handle explicit default options.
6693
6694 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6695
6696         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6697         instead of BNDmode.
6698         (expand_builtin_mempcpy_with_bounds): Likewise.
6699         (expand_builtin_memset_with_bounds): Likewise.
6700
6701 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6702
6703         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6704         ipa-ref.h, plugin-api.h.
6705         (get_string_length): Handle calls with bounds.
6706         (adjust_last_stmt): Likewise.
6707         (handle_builtin_strchr): Likewise.
6708         (handle_builtin_strcpy): Likewise.
6709         (handle_builtin_memcpy): Likewise.
6710         (handle_builtin_strcat): Likewise.
6711
6712 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6713
6714         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6715         (chkp_get_nochk_fndecl): New.
6716         (chkp_optimize_string_function_calls): New.
6717         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6718         * tree-cfg.h (insert_cond_bb): New.
6719         * tree-cfg.c (insert_cond_bb): New.
6720
6721 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6722
6723         * tree-core.h (built_in_class): Add builtin codes to be used
6724         by Pointer Bounds Checker for instrumented builtin functions.
6725         * tree-streamer-in.c: Include ipa-chkp.h.
6726         (streamer_get_builtin_tree): Created instrumented decl if
6727         required.
6728         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6729         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6730         function decls.
6731         (chkp_maybe_clone_builtin_fndecl): New.
6732         (chkp_maybe_create_clone): Support builtin function decls.
6733         (chkp_versioning): Clone builtin functions.
6734         * tree-chkp.c (chkp_instrument_normal_builtin): New.
6735         (chkp_add_bounds_to_call_stmt): Support builtin functions.
6736         (chkp_replace_function_pointer): Likewise.
6737         * builtins.c (expand_builtin_memcpy_args): New.
6738         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6739         (expand_builtin_memcpy_with_bounds): New.
6740         (expand_builtin_mempcpy_with_bounds): New.
6741         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6742         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6743         (expand_builtin_memset_with_bounds): New.
6744         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6745         (expand_builtin_with_bounds): New.
6746         * builtins.h (expand_builtin_with_bounds): New.
6747         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6748
6749 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
6750
6751         * gimple.h (gimple_set_visited, gimple_visited_p)
6752         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6753         comments to these accessors.
6754
6755 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
6756
6757         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6758         Set avr_log_details to "all".
6759
6760 2014-11-17  Richard Biener  <rguenther@suse.de>
6761
6762         PR middle-end/63898
6763         * match.pd: Guard X / CST -> X * CST' transform against
6764         zero CST.
6765
6766 2014-11-17  Terry Guo  <terry.guo@arm.com>
6767
6768         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6769         format.
6770
6771 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6772
6773         * ifcvt.c (HAVE_cbranchcc4): Define.
6774         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6775         Use HAVE_cbranchcc4.
6776
6777 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6778
6779         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6780         aarch64_convert_mode, aarch64_gen_ccmp_first,
6781         aarch64_gen_ccmp_next): New functions.
6782         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6783
6784 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6785
6786         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6787         * aarch64.c (aarch64_nzcv_codes): New data.
6788         (aarch64_ccmp_mode_to_code): New.
6789         (aarch64_print_operand): Output nzcv.
6790         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6791         New patterns.
6792         (cstore<mode>4): Handle ccmp_cc_register.
6793         * config/aarch64/predicates.md (const0_operand): New.
6794
6795 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6796
6797         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6798         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6799         extacted from aarch64_get_condition_code.
6800         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6801         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6802
6803 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6804
6805         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6806         aarch64_ccmp_operand): New constraints.
6807
6808 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6809
6810         * Makefile.in: Add ccmp.o.
6811         * ccmp.c: New file.
6812         * ccmp.h: New file.
6813         * expr.c: include "ccmp.h"
6814         (expand_cond_expr_using_cmove): Handle VOIDmode.
6815         (expand_expr_real_1): Try to expand ccmp.
6816
6817 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6818
6819         * cfgexpand.c (expand_gimple_cond): Check ccmp.
6820         * expmed.c (emit_cstore): Make it global.
6821         * expmed.h: #include "insn-codes.h"
6822         (emit_cstore): New prototype.
6823         * expr.c (expand_operands): Make it global.
6824         * expr.h (expand_operands): New prototype.
6825         * optabs.c (get_rtx_code): Make it global.
6826         * optabs.h (get_rtx_code): New prototype.
6827
6828 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6829
6830         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6831         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6832         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6833
6834 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
6835
6836         PR middle-end/63790
6837         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6838         Always combine comparisons or conversions from booleans.
6839
6840 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6841
6842         * ipa-polymorphic-call.c
6843         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6844         (ipa_polymorphic_call_context::meet_speculation_with): New function.
6845         (ipa_polymorphic_call_context::combine_with): Handle types in
6846         construction better.
6847         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6848         speculation.
6849         (ipa_polymorphic_call_context::meet_with): New function.
6850         * cgraph.h (class ipa_polymorphic_call_context): Add
6851         meet_width, meet_speculation_with; constify speculation_consistent_p.
6852         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine
6853         with incomming context.
6854         (propagate_context_accross_jump_function): Likewise; be more cureful.
6855         about set_contains_variable.
6856         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6857         (find_more_scalar_values_for_callers_subset): Fix.
6858         (find_more_contexts_for_caller_subset): Perform meet operation.
6859
6860 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6861
6862         * passes.c (execute_one_pass): Do not apply all transforms prior
6863         every simple IPA pass.
6864         * cgraphunit.c: Do not include fibheap.h
6865         (expand_thunk): Use get_untransformed_body.
6866         (cgraph_node::expand): Likewise.
6867         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6868         * cgraph.c (release_function_body): Do not push cfun when CFG
6869         is not there.
6870         (cgraph_node::get_untransformed_body): Break out from ...
6871         (cgraph_node::get_body): ... here; add code to apply all transforms.
6872         * cgraph.h (cgraph_node): Add get_untransformed_body.
6873         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6874         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6875         * tree-inline.c (expand_call_inline): LIkewise.
6876         * i386.c (ix86_reset_to_default_globals): Break out from ...
6877         (ix86_set_current_function): ... here;
6878         (ix86_reset_previous_fndecl): Use it.
6879         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6880
6881 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
6882
6883         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6884         * doc/tm.texi: Regenerate.
6885
6886 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
6887
6888         * config/sh/sh.c: Do not include algorithm.
6889         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6890         to swap values.
6891         (sh_emit_compare_and_branch): Ditto.
6892         (sh_emit_compare_and_set): Ditto.
6893         * config/sh/sh.md (replacement peephole2): Ditto.
6894         (cstore4_media): Ditto.
6895         (*fmasf4): Ditto.
6896
6897 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6898
6899         * lra-remat.c (cand_transf_func): Process regno for
6900         rematerialization too.
6901         * lra.c (lra): Switch on rematerialization pass.
6902
6903 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6904
6905         * lra.c (lra): Switch off rematerialization pass.
6906
6907 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
6908
6909         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6910         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6911         instead of builtins.
6912         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6913         typedefs.
6914         (_mm_sqrt_sd): Fix comment.
6915         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6916         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6917         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6918         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6919         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6920         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6921         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6922         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6923         Use vector extensions instead of builtins.
6924         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6925         _mm_mullo_epi32): Likewise.
6926         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6927         New typedefs.
6928         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6929         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6930         Use vector extensions instead of builtins.
6931         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6932         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6933         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6934         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6935         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6936         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6937         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6938         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6939         New typedefs.
6940         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6941         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6942         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6943         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6944         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6945         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6946         _mm512_div_ps): Use vector extensions instead of builtins.
6947         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6948         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6949         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6950         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6951         Likewise.
6952
6953 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
6954
6955         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6956         * lto-streamer.h (cl_optimization_stream_out,
6957         cl_optimization_stream_in): Declare.
6958         * optc-save-gen.awk: Generate cl_optimization LTO streaming
6959         and hashing routines.
6960         * opth-gen.awk: Add prototype of cl_optimization_hash.
6961         * tree-streamer-in.c (unpack_ts_optimization): Remove.
6962         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6963         * tree-streamer-out.c (pack_ts_optimization): Remove.
6964         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6965
6966 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
6967
6968         * common.opt (flag_loop_unroll_and_jam): New flag.
6969         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6970         jam flag.
6971         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6972         * graphite-poly.h (struct poly_bb:map_sepclass): New field
6973         * graphite-poly.c (new_poly_bb): Initialization for new field.
6974         (apply_poly_transforms): Support for unroll and jam flag.
6975         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6976         separation class.
6977         (generate_luj_sepclass_opt): Build the separation class option.
6978         (generate_luj_options): Set unroll and jam options.
6979         (set_options): Support for unroll and jam options.
6980         (scop_to_isl_ast): Likewise
6981         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6982         computing the separating class map.
6983         (optimize_isl): Support for the separating class map.
6984         (apply_schedule_map_to_scop): Likewise.
6985         (getScheduleMap): Likewise.
6986         (getScheduleForBand): Likewise.
6987         (getScheduleForBandList): Likewise.
6988         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6989         * toplev.c (process_options) Likewise.
6990
6991 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6992
6993         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6994         from...
6995         (replace_loop_annotate): ...here.  Call it on the header and on the
6996         latch block, if any.  Restore proper behavior of final cleanup.
6997
6998 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6999
7000         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
7001         for max-completely-peeled-insns limit.
7002
7003 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
7004
7005         * ipa-prop.h (ipa_known_type_data): Remove.
7006         (ipa_binfo_from_known_type_jfunc): Remove.
7007
7008 2014-11-14  Andrew Pinski  <apinski@cavium.com>
7009
7010         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
7011         over to thunderx.
7012         * config/aarch64/aarch64.md: Include thunderx.md.
7013         (generic_sched): Set to no for thunderx.
7014         * config/aarch64/thunderx.md: New file.
7015
7016 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7017
7018         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
7019         tests for 0.0.
7020
7021         * config/rs6000/vector.md (VEC_R): Move secondary reload support
7022         insns to rs6000.md from vector.md.
7023         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
7024         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
7025         (vec_reload_and_plus_<mptrsize>): Likewise.
7026
7027         * config/rs6000/rs6000.md (Fa): New mode attribute to give
7028         constraint for the Altivec registers for a type.
7029         (RELOAD): New mode iterator for all of the types that have
7030         secondary reload address support to load up a base register.
7031         (extendsfdf2_fpr): Use correct constraint.
7032         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
7033         instruction.
7034         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
7035         Generate the non-VSX instruction if all registers were FPRs.  Do
7036         not use the patterns in vsx.md for scalar operations.
7037         (floatsi<mode>2_lfiwax_mem): Likewise.
7038         (floatunssi<mode>2_lfiwzx): Likewise.
7039         (floatunssi<mode>2_lfiwzx_mem): Likewise.
7040         (fix_trunc<mode>di2_fctidz): Likewise.
7041         (fixuns_trunc<mode>di2_fctiduz): Likewise.
7042         (fctiwz_<mode>): Likewise.
7043         (fctiwuz_<mode>): Likewise.
7044         (friz): Likewise.
7045         (floatdidf2_fpr): Likewise.
7046         (floatdidf2_mem): Likewise.
7047         (floatunsdidf2): Likewise.
7048         (floatunsdidf2_fcfidu): Likewise.
7049         (floatunsdidf2_mem): Likewise.
7050         (floatdisf2_fcfids): Likewise.
7051         (floatdisf2_mem): Likewise.
7052         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
7053         it more obvious that the code is for pre-ISA 2.06 machines.
7054         (floatdisf2_internal2): Likewise.
7055         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
7056         Generate the non-VSX instruction if all registers were FPRs.  Do
7057         not use the patterns in vsx.md for scalar operations.
7058         (floatunsdisf2_mem): Likewise.
7059         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
7060         handlers here from vector.md, and expand the types we generate
7061         reload handlers for.
7062         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
7063         (vec_reload_and_plus_<mptrsize>): Likewise.
7064
7065         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
7066         vector forms of the instructions.  Move VSX scalar forms to
7067         rs6000.md, and add support for -mupper-regs-sf.
7068         (vsx_floatuns<VSi><mode>2): Likewise.
7069         (vsx_fix_trunc<mode><VSi>2): Likewise.
7070         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
7071         (vsx_float_fix_<mode>2): Delete DF version, rename to
7072         vsx_float_fix_v2df2.
7073         (vsx_float_fix_v2df2): Likewise.
7074
7075 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7076
7077         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
7078         (ipa_pass_through_data): Removed field type_preserved.
7079         (ipa_ancestor_jf_data): removed fields type and type_preserved.
7080         (ipa_jump_func): Removed field known_type.
7081         (ipa_get_jf_known_type_offset): Removed.
7082         (ipa_get_jf_known_type_base_type): Likewise.
7083         (ipa_get_jf_known_type_component_type): Likewise.
7084         (ipa_get_jf_ancestor_type): Likewise.
7085         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
7086         (ipa_get_jf_pass_through_result): Likewise.
7087         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
7088         (values_equal_for_ipcp_p): Removed BINFO handling.
7089         (ipa_get_indirect_edge_target_1): Updated comment.
7090         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
7091         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
7092         (ipa_set_jf_known_type): Removed.
7093         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
7094         all callers.
7095         (ipa_set_jf_arith_pass_through): Likewise.
7096         (ipa_set_ancestor_jf): Likewise.
7097         (ipa_binfo_from_known_type_jfunc): Removed.
7098         (prop_type_change_info): Removed fields known_current_type and
7099         multiple_types_encountered.
7100         (extr_type_from_vtbl_ptr_store): Removed.
7101         (check_stmt_for_type_change): Do not attempt to identify changed type.
7102         (detect_type_change_from_memory_writes): Do not set the removed fields,
7103         always set jfunc to unknown.
7104         (compute_complex_assign_jump_func): Do not detect dynamic type change.
7105         (compute_complex_ancestor_jump_func): Likewise.
7106         (compute_known_type_jump_func): Removed.
7107         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
7108         change.  Do not comute known type jump functions.
7109         (combine_known_type_and_ancestor_jfs): Removed.
7110         (update_jump_functions_after_inlining): Removed handling of
7111         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
7112         (ipa_write_jump_function): Do not stream removed fields or known type
7113         jump functions.
7114         (ipa_read_jump_function): Likewise.
7115
7116 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
7117
7118         * lra-int.h (lra_create_live_ranges): Add parameter.
7119         * lra-lives.c (temp_bitmap): Move higher.
7120         (initiate_live_solver): Move temp_bitmap initialization into
7121         lra_live_ranges_init.
7122         (finish_live_solver): Move temp_bitmap clearing into
7123         live_ranges_finish.
7124         (process_bb_lives): Add parameter.  Use it to control live info
7125         update and dead insn elimination.  Pass it to mark_regno_live and
7126         mark_regno_dead.
7127         (lra_create_live_ranges): Add parameter.  Pass it to
7128         process_bb_lives.
7129         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
7130         initiate_live_solver and finish_live_solver.
7131         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
7132         Use temp_bitmap to update avail_cands.
7133         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
7134         check with lra_need_for_spill_p after live range pass.  Switch on
7135         rematerialization pass.
7136
7137 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7138
7139         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
7140         agg_preserved flag instead.
7141         (ipa_get_jf_ancestor_type_preserved): Likewise.
7142         (ipa_node_params): Rename known_vals to known_csts, update all users.
7143         New field known_contexts.
7144         (ipa_get_indirect_edge_target): Update prototype.
7145         (ipcp_poly_ctx_values_pool): Declare.
7146         (ipa_context_from_jfunc): Likewise.
7147         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
7148         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
7149         parameter newline of method dump.
7150         * ipa-cp.c (ctxlat): New field.
7151         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
7152         (ipcp_poly_ctx_values_pool):New variable.
7153         (ipa_get_poly_ctx_lat): New function.
7154         (print_ipcp_constant_value): New overloaded function for contexts.
7155         (print_all_lattices): Also print contexts.
7156         (ipa_topo_info): New field contexts;
7157         (set_all_contains_variable): Also set the flag in the context lattice.
7158         (initialize_node_lattices): Likewise for flag bottom.
7159         (ipa_get_jf_ancestor_result): Removed BINFO handling.
7160         (ipa_value_from_jfunc): Likewise.
7161         (ipa_context_from_jfunc): New function.
7162         (values_equal_for_ipcp_p): New overloaded function for contexts.
7163         (allocate_and_init_ipcp_value): Construct the value.
7164         (allocate_and_init_ipcp_value): New overloaded function for contexts.
7165         (propagate_scalar_accross_jump_function): Removed handling of
7166         KNOWN_TYPE jump functions.
7167         (propagate_context_accross_jump_function): New function.
7168         (propagate_constants_accross_call): Also propagate contexts.
7169         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
7170         (ipa_get_indirect_edge_target): Likewise.
7171         (devirtualization_time_bonus): Likewise.
7172         (gather_context_independent_values): Create and populate known_contexts
7173         vector rather than known_binfos.
7174         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
7175         (estimate_local_effects): Likewise.
7176         (add_all_node_vals_to_toposort): Also add contexts to teir topological
7177         sort.
7178         (ipcp_propagate_stage): Also propagate effects of contexts.
7179         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
7180         ipa_get_indirect_edge_target_1.
7181         (cgraph_edge_brings_value_p): New overloaded function for contexts.
7182         (create_specialized_node): Work on contexts rather than BINFOs.
7183         (find_more_contexts_for_caller_subset): New function.
7184         (known_contexts_useful_p): New function.
7185         (copy_useful_known_contexts): Likewise.
7186         (modify_known_vectors_with_val): Likewise.
7187         (ipcp_val_in_agg_replacements_p): Renamed to
7188         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
7189         non-aggregate.
7190         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
7191         (decide_about_value): Work on contexts rather than BINFOs.
7192         (decide_whether_version_node): Likewise.
7193         (ipcp_driver): Initialize the new alloc pool.
7194         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
7195         printing of edge contexts.
7196         (ipa_set_ancestor_jf): Replace assert with conditional setting of
7197         type_preserved to false.
7198         (update_jump_functions_after_inlining): Use access function instead of
7199         reading agg_preserved directly.  Store combined context in the ancestor
7200         case.
7201         (try_make_edge_direct_virtual_call): Work on contexts rather than
7202         BINFOs.
7203         (update_indirect_edges_after_inlining): Get context from
7204         ipa_context_from_jfunc.
7205         (ipa_free_node_params_substructures): Free also known_contexts.
7206         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
7207         (ipa_free_all_structures_after_iinln): Likewise.
7208         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
7209         contexts rather than BINFOs.
7210         (estimate_edge_devirt_benefit): Likewise.
7211         (estimate_edge_size_and_time): Likewise.
7212         (estimate_calls_size_and_time): Likewise.
7213         (estimate_node_size_and_time): Likewise.
7214         (estimate_ipcp_clone_size_and_time): Likewise.
7215         (do_estimate_edge_time): Likewise.
7216         (do_estimate_edge_size): Likewise.
7217         (do_estimate_edge_hints): Likewise.
7218         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
7219         parameter newline, ouput newline only when it is set.
7220         (ipa_polymorphic_call_context::equal_to): New method.
7221
7222 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7223
7224         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
7225         users converted to the same specialization as the using class/function
7226         or specialization on tree.
7227         (ipcp_value): Likewise.
7228         (ipcp_lattice): Likewise.
7229         (ipcp_agg_lattice): Now derived from tree specialization of
7230         ipcp_lattice.
7231         (values_topo): Moved to new class value_topo_info.
7232         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
7233         Updated all callers.
7234         (print_lattice): Turned into ipcp_lattice::print.  Updated all
7235         callers.
7236         (value_topo_info): New class template.
7237         (ipa_topo_info): New field constants.  New constructor.
7238         (build_toporder_info): Do not clear stack_top, only checkign assert
7239         it.
7240         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
7241         Updated all callers.
7242         (set_lattice_contains_variable): Turned into
7243         ipcp_lattice::set_contains_variable.  Updated all callers.
7244         (add_value_source): Turned into ipcp_value::add_source.  Updated all
7245         callers.
7246         (allocate_and_init_ipcp_value): New function.
7247         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
7248         parameter got default a value.  Updated all callers.
7249         (add_scalar_value_to_lattice): Removed, users converted to using
7250         ipcp_lattice::add_value with default value of the last parameter.
7251         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
7252         all callers.
7253         (propagate_effects): Made method of value_topo_info.
7254         (cgraph_edge_brings_value_p): Now a template function.
7255         (get_info_about_necessary_edges): Likewise.
7256         (gather_edges_for_value): Likewise.
7257         (perhaps_add_new_callers): Likewise.
7258         (decide_about_value): Likewise.
7259         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
7260
7261 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7262
7263         * doc/install.texi (--with-diagnostics-color=): Document.
7264
7265         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
7266         IFN_GOMP_SIMD_LANE without lhs as useless.
7267
7268         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
7269         (varying_state): Add true for can_free.
7270         (check_call): For builtin or internal !nonfreeing_call_p set
7271         local->can_free.
7272         (check_stmt): For asm volatile and asm with "memory" set
7273         local->can_free.
7274         (analyze_function): Clear local->can_free initially, continue
7275         calling check_stmt until all flags are computed, dump can_free
7276         flag.
7277         (pure_const_write_summary): Write can_free flag.
7278         (pure_const_read_summary): Read it back.
7279         (propagate_pure_const): Propagate also can_free flag, set
7280         w->nonfreeing_fn if it is false after propagation.
7281         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
7282         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
7283         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
7284         Also return true for IFN_ABNORMAL_DISPATCHER.
7285         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
7286         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
7287         (input_overwrite_node): Read it back.
7288
7289 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7290             Marek Polacek  <polacek@redhat.com>
7291
7292         * sanopt.c: Include tree-ssa-operands.h.
7293         (struct sanopt_info): Add has_freeing_call_p,
7294         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
7295         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
7296         being_visited_p fields.
7297         (struct sanopt_ctx): Add asan_check_map field.
7298         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
7299         maybe_optimize_asan_check_ifn): New functions.
7300         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
7301         internal calls.
7302         (pass_sanopt::execute): Call sanopt_optimize even for
7303         -fsanitize=address.
7304         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
7305         internal calls.
7306
7307 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7308
7309         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
7310         'if (extract_scalar_result)' to the only place that it is true.
7311
7312 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
7313
7314         * config.gcc (default_gnu_indirect_function): Set to yes
7315         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
7316         Android nor uclibc.
7317
7318 2014-11-14  Felix Yang  <felix.yang@huawei.com>
7319             Jiji Jiang  <jiangjiji@huawei.com>
7320
7321         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
7322         VALL mode iterator instead of VALLDI.
7323
7324 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
7325
7326         * optc-save-gen.awk: Output cl_target_option_eq,
7327         cl_target_option_hash, cl_target_option_stream_out,
7328         cl_target_option_stream_in functions.
7329         * opth-gen.awk: Output prototypes for
7330         cl_target_option_eq and cl_target_option_hash.
7331         * lto-streamer.h (cl_target_option_stream_out,
7332         cl_target_option_stream_in): Declare.
7333         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
7334         (cl_option_hash_eq): Use cl_target_option_eq.
7335         * tree-streamer-in.c (unpack_value_fields): Stream in
7336         TREE_TARGET_OPTION.
7337         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
7338         DECL_FUNCTION_SPECIFIC_TARGET.
7339         (hash_tree): Hash TREE_TARGET_OPTION; visit
7340         DECL_FUNCTION_SPECIFIC_TARGET.
7341         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
7342         TS_TARGET_OPTION.
7343         (streamer_write_tree_body): Output TS_TARGET_OPTION.
7344
7345 2014-11-14  Richard Biener  <rguenther@suse.de>
7346
7347         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
7348         valueization hook defaulted to no_follow_ssa_edges.
7349         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
7350         2nd valueization hook to gimple_simplify.
7351         * tree-ssa-ccp.c (valueize_op_1): New function to be
7352         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7353         (ccp_fold): Adjust.
7354         * tree-vrp.c (vrp_valueize_1): New function to be
7355         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7356         (vrp_visit_assignment_or_call): Adjust.
7357
7358 2014-11-14  Marek Polacek  <polacek@redhat.com>
7359
7360         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
7361         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
7362         folding with TYPE_OVERFLOW_SANITIZED.
7363
7364 2014-11-14  Marek Polacek  <polacek@redhat.com>
7365
7366         PR sanitizer/63839
7367         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
7368         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
7369         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
7370         Define.
7371         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
7372         instrument BUILT_IN_UNREACHABLE here.
7373         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
7374         const.
7375         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
7376         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
7377         SANITIZE_UNREACHABLE.
7378         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
7379         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
7380
7381 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7382
7383         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
7384         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
7385
7386 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7387
7388         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
7389         BYTES_BIG_ENDIAN.
7390         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
7391         vect_create_epilog_for_reduction): Likewise.
7392         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
7393
7394 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7395
7396         PR target/63724
7397         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
7398         numerical immediate handling to...
7399         (aarch64_internal_mov_immediate): ...this. New.
7400         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
7401         (aarch64_mov_operand_p): Relax predicate.
7402         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
7403         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
7404         for 'n'.
7405         (*movdi_aarch64): Likewise.
7406
7407 2014-11-14  Richard Biener  <rguenther@suse.de>
7408
7409         * match.pd: Implement more binary patterns exercised by
7410         fold_stmt.
7411         * fold-const.c (sing_bit_p): Export.
7412         (exact_inverse): Likewise.
7413         (fold_binary_loc): Remove patterns here.
7414         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
7415         * fold-const.h (sing_bit_p): Declare.
7416         (exact_inverse): Likewise.
7417
7418 2014-11-14  Marek Polacek  <polacek@redhat.com>
7419
7420         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
7421
7422 2014-11-14  Richard Biener  <rguenther@suse.de>
7423
7424         * genmatch.c (add_operator): Allow CONSTRUCTOR.
7425         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
7426         (parser::parse_op): Allow to iterate over predicates.
7427
7428 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7429
7430         * configure.ac (--with-diagnostics-color): New configure
7431         option, default to --with-diagnostics-color=auto.
7432         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
7433         to determine -fdiagnostics-color= option default.
7434         * doc/invoke.texi (-fdiagnostics-color=): Document new
7435         default.
7436         * configure: Regenerated.
7437         * config.in: Regenerated.
7438
7439 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7440
7441         PR tree-optimization/63841
7442         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7443
7444 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
7445
7446         * timevar.def (TV_SCHED_FUSION): New time var.
7447         * passes.def (pass_sched_fusion): New pass.
7448         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
7449         (extract_base_offset_in_addr, fusion_load_store): New.
7450         (arm_sched_fusion_priority): New.
7451         (arm_option_override): Disable scheduling fusion by default
7452         on non-armv7 processors or ldrd/strd isn't preferred.
7453         * sched-int.h (struct _haifa_insn_data): New field.
7454         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
7455         * sched-rgn.c (rest_of_handle_sched_fusion): New.
7456         (pass_data_sched_fusion, pass_sched_fusion): New.
7457         (make_pass_sched_fusion): New.
7458         * haifa-sched.c (sched_fusion): New.
7459         (insn_cost): Handle sched_fusion.
7460         (priority): Handle sched_fusion by calling target hook.
7461         (enum rfs_decision): New enum value.
7462         (rfs_str): New element for RFS_FUSION.
7463         (rank_for_schedule): Support sched_fusion.
7464         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
7465         (schedule_block, fix_tick_ready): Handle sched_fusion.
7466         * common.opt (flag_schedule_fusion): New.
7467         * tree-pass.h (make_pass_sched_fusion): New.
7468         * target.def (fusion_priority): New.
7469         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
7470         * doc/tm.texi: Regenerated.
7471         * doc/invoke.texi (-fschedule-fusion): New.
7472
7473 2014-11-13  Rong Xu  <xur@google.com>
7474
7475         PR debug/63581
7476         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
7477         footer, instead of unconditionally overwritten.
7478
7479 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7480
7481         * cgraph.h (clear_outer_type): Make public.  Fix comment.
7482         * ipa-devirt.c (possible_polymorphic_call_targets): Use
7483         clear_outer_type when resetting the context.
7484
7485 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
7486
7487         PR bootstrap/63853
7488         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
7489         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
7490
7491 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7492
7493         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
7494         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7495         * tree-inline.c (estimate_operator_cost): Likewise.
7496         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
7497         Likewise.
7498
7499         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
7500         against VEC_RSHIFT_EXPR.
7501
7502         * optabs.h (expand_vec_shift_expr): Remove.
7503         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
7504         (expand_vec_shift_expr): Remove.
7505         * tree.def (VEC_RSHIFT_EXPR): Remove
7506
7507 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7508
7509         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
7510         (shift_amt_for_vec_perm_mask): New.
7511         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
7512         and mask appropriate.
7513
7514         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
7515         (have_whole_vector_shift): New.
7516         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
7517         looking for vec_shr_optab.
7518         (vect_create_epilog_for_reduction): Likewise; also rename local variable
7519         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
7520         instead of VEC_RSHIFT_EXPRs.
7521
7522         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
7523
7524 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7525
7526         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
7527         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
7528
7529         * tree_vec_data_refs.c (vect_permute_load_chain,
7530         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
7531         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
7532
7533         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
7534         Likewise.
7535         (vect_gen_perm_mask_checked): New.
7536         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
7537         (vect_gen_perm_mask_any): ...this.
7538         (perm_mask_for_reverse): Call can_vec_perm_p and
7539         vect_gen_perm_mask_checked.
7540
7541 2014-11-13  Felix Yang  <felix.yang@huawei.com>
7542
7543         * ipa-utils.h: Fix typo in comments.
7544         * ipa-profile.c: Likewise.
7545         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7546
7547 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7548
7549         PR tree-optimization/63841
7550         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7551
7552 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7553
7554         PR tree-optimization/63841
7555         * tree.c (initializer_zerop): A clobber does not zero initialize.
7556
7557 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7558
7559         * optabs.c (prepare_operand): Gracefully fail if the mode of X
7560         does not match the operand mode expected by the insn pattern.
7561
7562 2014-11-13  Richard Biener  <rguenther@suse.de>
7563
7564         * match.pd: Add tcc_comparison, inverted_tcc_comparison
7565         and inverted_tcc_comparison_with_nans operator lists.
7566         Use tcc_comparison in the truth_valued_p predicate definition.
7567         Restrict logical_inverted_value with bit_xor to integral types.
7568         Build a boolean true for simplifying x |^ !x because of
7569         vector types.  Implement patterns from forward_propagate_comparison
7570         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7571         (get_prop_dest_stmt): Likewise.
7572         (pass_forwprop::execute): Do not call it.
7573         * fold-const.c (fold_unary_loc): Remove the pattern here.
7574
7575 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7576             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7577
7578         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7579         tmake_file.
7580         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7581         accelerator compiler.
7582         * config/i386/intelmic-mkoffload.c: New file.
7583         * config/i386/t-intelmic: Ditto.
7584
7585 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7586             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7587             Ilya Verbin  <ilya.verbin@intel.com>
7588
7589         * common.opt (foffload, foffload-abi): New options.
7590         * config/i386/i386.c (ix86_offload_options): New static function.
7591         (TARGET_OFFLOAD_OPTIONS): Define.
7592         * coretypes.h (enum offload_abi): New enum.
7593         * doc/tm.texi: Regenerate.
7594         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7595         * gcc.c (offload_targets): New static variable.
7596         (handle_foffload_option): New static function.
7597         (driver_handle_option): Handle OPT_foffload_.
7598         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7599         according to offload_targets.
7600         * hooks.c (hook_charptr_void_null): New hook.
7601         * hooks.h (hook_charptr_void_null): Declare.
7602         * lto-opts.c: Include lto-section-names.h.
7603         (lto_write_options): Append options from target offload_options hook and
7604         store them to offload_lto section.  Do not store target-specific,
7605         driver and diagnostic options in offload_lto section.
7606         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7607         OPT_foffload_abi_.
7608         (append_compiler_options, append_linker_options)
7609         (append_offload_options): New static functions.
7610         (compile_offload_image): Add new arguments with options.
7611         Call append_compiler_options and append_offload_options.
7612         (compile_images_for_offload_targets): Add new arguments with options.
7613         (find_and_merge_options): New static function.
7614         (run_gcc): Outline options handling into the new functions:
7615         find_and_merge_options, append_compiler_options, append_linker_options.
7616         * opts.c (common_handle_option): Don't handle OPT_foffload_.
7617         Forbid OPT_foffload_abi_ for non-offload compiler.
7618         * target.def (offload_options): New target hook.
7619
7620 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7621             Bernd Schmidt  <bernds@codesourcery.com>
7622             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7623             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7624
7625         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7626         (process_command): Tweak path construction for the possibility
7627         of being configured as an offload compiler.
7628         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7629         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7630         (driver::set_up_specs): Tweak path construction for the possibility of
7631         being configured as an offload compiler.
7632         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7633         (offload_names, offloadbegin, offloadend): New static variables.
7634         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7635         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7636         New static functions.
7637         (run_gcc): Determine whether offload sections are present.  If so, run
7638         compile_images_for_offload_targets and return the names of new generated
7639         objects to linker.  If there are offload sections, but no LTO sections,
7640         then return the copies of input objects without link-time recompilation.
7641
7642 2014-11-13  Richard Biener  <rguenther@suse.de>
7643
7644         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7645
7646 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7647             Bernd Schmidt  <bernds@codesourcery.com>
7648             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7649             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7650
7651         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7652         * cgraphunit.c: Include omp-low.h.
7653         * doc/tm.texi: Regenerate.
7654         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7655         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7656         * lto-cgraph.c (output_offload_tables): New function.
7657         (input_offload_tables): Likewise.
7658         * lto-section-in.c (lto_section_name): Add "offload_table".
7659         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7660         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7661         * lto-streamer-out.c (lto_output): Call output_offload_tables.
7662         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7663         (output_offload_tables, input_offload_tables): Declare.
7664         * omp-low.c: Include common/common-target.h and lto-section-names.h.
7665         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7666         (expand_omp_target): Add child_fn into offload_funcs vector.
7667         (add_decls_addresses_to_decl_constructor): New function.
7668         (omp_finish_file): Likewise.
7669         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7670         * target.def (record_offload_symbol): New DEFHOOK.
7671         * toplev.c: Include omp-low.h.
7672         (compile_file): Call omp_finish_file.
7673         * varpool.c: Include omp-low.h.
7674         (varpool_node::get_create): Add decl into offload_vars vector.
7675
7676 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7677             Ilya Tocar  <ilya.tocar@intel.com>
7678             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7679             Bernd Schmidt  <bernds@codesourcery.com>
7680
7681         * cgraph.c: Include context.h.
7682         (cgraph_node::create): Set node->offloadable and g->have_offload if
7683         decl have "omp declare target" attribute.
7684         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7685         * cgraphunit.c: Include lto-section-names.h.
7686         (ipa_passes): Call ipa_write_summaries if there is something to write to
7687         OFFLOAD_SECTION_NAME_PREFIX sections.
7688         (symbol_table::compile): Set flag_generate_lto if there is something to
7689         offload.
7690         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7691         * context.c (gcc::context::context): Initialize have_offload with false.
7692         * context.h (class context): Add have_offload flag.
7693         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7694         flag_generate_lto.
7695         (inline_free_summary): Always remove hooks.
7696         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7697         from non-offloadable nodes while streaming a node into offload section.
7698         (reachable_from_other_partition_p): Likewise.
7699         (select_what_to_stream): New function.
7700         (compute_ltrans_boundary): Do not call
7701         lto_set_symtab_encoder_in_partition if the node should not be streamed.
7702         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7703         (section_name_prefix): Declare.
7704         * lto-streamer.c (section_name_prefix): New variable.
7705         (lto_get_section_name): Use section_name_prefix instead of
7706         LTO_SECTION_NAME_PREFIX.
7707         * lto-streamer.h (select_what_to_stream): Declare.
7708         * omp-low.c: Include context.h.
7709         (is_targetreg_ctx): New function.
7710         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7711         (create_omp_child_function, check_omp_nesting_restrictions): Use new
7712         is_targetreg_ctx function.  Replace usage of "omp declare target"
7713         attribute with a cgraph_node flag offloadable.
7714         (expand_omp_target): Set mark_force_output for offloadable functions.
7715         (lower_omp_critical): Set offloadable flag for omp critical symbol.
7716         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
7717         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
7718         if the node should not be streamed out.
7719         * tree-pass.h (ipa_write_summaries): New bool argument.
7720         * varpool.c: Include context.h.
7721         (varpool_node::get_create): Set node->offloadable and g->have_offload if
7722         decl have "omp declare target" attribute.
7723
7724 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7725             Thomas Schwinge  <thomas@codesourcery.com>
7726             Ilya Verbin  <ilya.verbin@intel.com>
7727             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7728
7729         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7730         (enable_as_accelerator): New variables substituted by configure.
7731         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7732         being configured as an offload compiler.
7733         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7734         ACCEL_DIR_SUFFIX.
7735         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7736         install for the offload compiler.
7737         * config.in: Regenerate.
7738         * configure: Regenerate.
7739         * configure.ac (real_target_noncanonical, accel_dir_suffix)
7740         (enable_as_accelerator): Compute new variables.
7741         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7742         (OFFLOAD_TARGETS): List of target names suitable for offloading.
7743         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7744         * doc/install.texi (Options specification): Document
7745         --enable-as-accelerator-for and --enable-offload-targets.
7746
7747 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
7748
7749         PR tree-optimization/63828
7750         * ipa-polymorphic-call.c (possible_placement_new): Check
7751         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7752
7753 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7754
7755         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7756         (REVERSIBLE_CC_MODE): Fix example.
7757         (REVERSE_CONDITION): Fix typo.
7758         * doc/tm.texi: Regenerate.
7759
7760 2014-11-13  Tom de Vries  <tom@codesourcery.com>
7761
7762         * omp-low.c (pass_data_expand_omp): Set properties_provided to
7763         PROP_gimple_eomp.
7764         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
7765         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
7766         exit if gate is false.
7767         (pass_data pass_data_expand_omp_ssa): New pass_data.
7768         (class pass_expand_omp_ssa): New pass.
7769         (make_pass_expand_omp_ssa): New function.
7770         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7771         instead of NEXT_PASS.
7772         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7773         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7774         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7775         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
7776         cfun->omp_expand_needed.
7777         * tree-pass.h: Add define PROP_gimple_eomp.
7778         (make_pass_expand_omp_ssa): Declare.
7779
7780 2014-11-13  Marek Polacek  <polacek@redhat.com>
7781
7782         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7783         * fold-const.c (fold_binary_loc): Use it.
7784         * match.pd: Likewise.
7785
7786 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
7787
7788         * lra-lives.c (struct bb_data): Rename to ...
7789         (struct bb_data_pseudos): ... this.
7790         (initiate_live_solver): Update struct name.
7791
7792 2014-11-13  Richard Biener  <rguenther@suse.de>
7793
7794         * match.pd: Implement conditional expression patterns.
7795         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7796         them here.
7797         (combine_cond_exprs): Remove.
7798         (pass_forwprop::execute): Do not call combine_cond_exprs.
7799         * fold-const.c (fold_ternary_loc): Remove patterns here.
7800         (pedantic_omit_one_operand_loc): Remove.
7801
7802 2014-12-13  Richard Biener  <rguenther@suse.de>
7803
7804         PR middle-end/61559
7805         * match.pd: Implement bswap patterns for transforms checked by
7806         gcc.dg/builtin-bswap-8.c.
7807
7808 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
7809
7810         * lra.c (lra): Switch off rematerialization pass.
7811
7812 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
7813
7814         * common.opt (flra-remat): New.
7815         * opts.c (default_options_table): Add entry for flra_remat.
7816         * timevar_def (TV_LRA_REMAT): New.
7817         * doc/invoke.texi (-flra-remat): Add description of the new
7818         option.
7819         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7820         lra-saves.c.  Add lra-remat.c.
7821         * Makefile.in (OBJS): Add lra-remat.o.
7822         * lra-remat.c: New file.
7823         * lra.c: Add info about the rematerialization pass in the top
7824         comment.
7825         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7826         Process unallocatable regs too.
7827         (lra_constraint_new_insn_uid_start): Remove.
7828         (lra): Add code for calling rematerialization sub-pass.
7829         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7830         (lra_constrain_insn, lra_remat): New prototypes.
7831         (lra_eliminate_regs_1): Add parameter.
7832         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7833         Process unallocatable hard regs too.
7834         (process_bb_lives): Ditto.
7835         * lra-spills.c (remove_pseudos): Add argument to
7836         lra_eliminate_regs_1 call.
7837         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
7838         for sp offset calculation.
7839         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7840         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
7841         calculation.
7842         (process_insn_for_elimination): Add argument for
7843         eliminate_regs_in_insn call.
7844         * lra-constraints.c (get_equiv_with_elimination):  Add argument
7845         for lra_eliminate_regs_1 call.
7846         (process_addr_reg): Add parameter.  Use it.
7847         (process_address_1): Ditto.  Add argument for process_addr_reg
7848         call.
7849         (process_address): Ditto.
7850         (curr_insn_transform): Add parameter.  Use it.  Add argument for
7851         process_address calls.
7852         (lra_constrain_insn): New function.
7853         (lra_constraints): Add argument for curr_insn_transform call.
7854
7855 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7856
7857         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7858         (print_ignored_options): Fix quoting.
7859         * opts.c (common_handle_option): Likewise.
7860         (set_debug_level): Likewise.
7861         * toplev.c (process_options): Likewise.
7862
7863 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7864
7865         PR ipa/63838
7866         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7867         chain instead of node->indirect_calls.  Put !can_throw into
7868         conditions of all the loops.
7869
7870 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7871
7872         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7873         set pic_offset_table_rtx.
7874
7875 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
7876
7877         * common/config/mips/mips-common.c (mips_handle_option): Ensure
7878         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7879         * config.gcc (--with-fp-32): New option.
7880         (--with-odd-spreg-32): Likewise.
7881         * config.in (HAVE_AS_DOT_MODULE): New config define.
7882         * config/mips/mips-protos.h
7883         (mips_secondary_memory_needed): New prototype.
7884         (mips_hard_regno_caller_save_mode): Likewise.
7885         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7886         (mips_get_arg_info): Assert that V2SFmode is only handled specially
7887         with TARGET_PAIRED_SINGLE_FLOAT.
7888         (mips_return_mode_in_fpr_p): Likewise.
7889         (mips16_call_stub_mode_suffix): Likewise.
7890         (mips_get_reg_raw_mode): New static function.
7891         (mips_return_fpr_pair): O32 return values span two registers.
7892         (mips16_build_call_stub): Likewise.
7893         (mips_function_value_regno_p): Support both FP return registers.
7894         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
7895         specific cases for TARGET_FPXX to move via memory.
7896         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7897         than UNITS_PER_FPREG 'span' one register.
7898         (mips_dwarf_frame_reg_mode): New static function.
7899         (mips_file_start): Switch to using .module instead of .gnu_attribute.
7900         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7901         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7902         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7903         slots with two CFI directives even for O32 FP64.
7904         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7905         saving/restoring callee-saved registers.
7906         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7907         (mips_secondary_memory_needed): New function.
7908         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
7909         odd-numbered single-precision registers when using TARGET_FLOATXX.
7910         Implement -modd-spreg and defaults.
7911         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7912         callee-saved behaviour.
7913         (mips_hard_regno_caller_save_mode): Implement.
7914         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7915         (TARGET_GET_RAW_ARG_MODE): Define target hook.
7916         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7917         * config/mips/mips.h (TARGET_FLOAT32): New macro.
7918         (TARGET_O32_FP64A_ABI): Likewise.
7919         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7920         _MIPS_SPFPSET builtin define.
7921         (MIPS_FPXX_OPTION_SPEC): New macro.
7922         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7923         --with-odd-spreg-32=* to -m[no-]odd-spreg.
7924         (ISA_HAS_ODD_SPREG): New macro.
7925         (ISA_HAS_MXHC1): True for anything other than -mfp32.
7926         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7927         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7928         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
7929         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7930         (SECONDARY_MEMORY_NEEDED): Likewise.
7931         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7932         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7933         FP64A ABI extensions.
7934         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7935         TARGET_FLOAT64.
7936         * config/mips/mips.opt (mfpxx): New target option.
7937         (modd-spreg): Likewise.
7938         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7939         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7940         fp64 sysroot.
7941         * config/mips/t-mti-elf: Remove fp64 multilib.
7942         * config/mips/t-mti-linux: Likewise.
7943         * configure.ac: Detect .module support.
7944         * configure: Regenerate.
7945         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7946         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7947         options.
7948
7949 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7950
7951         PR target/63815
7952         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
7953         from ...
7954         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
7955         (x86_output_mi_thunk): Set PIC register to %r11.  Call
7956         ix86_init_large_pic_reg to initialize PIC register.
7957
7958 2014-11-12  Kai Tietz  <ktietz@redhat.com>
7959
7960         * sdbout.c (sdbout_symbol): Eliminate register only
7961         if decl isn't a global variable.
7962
7963 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
7964
7965         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7966
7967         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7968         qualifier_lane_index.
7969         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7970         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7971         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7972
7973         (aarch64_types_getlane_qualifiers): Rename to...
7974         (aarch64_types_binop_imm_qualifiers): ...this.
7975         (TYPES_SHIFTIMM): Follow renaming.
7976         (TYPES_GETLANE): Rename to...
7977         (TYPE_GETREG): ...this.
7978
7979         (aarch64_types_setlane_qualifiers): Rename to...
7980         (aarch64_type_ternop_imm_qualifiers): ...this.
7981         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7982         (TYPES_SETLANE): Follow renaming above, and rename self to...
7983         (TYPE_SETREG): ...this.
7984
7985         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7986         (aarch64_simd_expand_args): Add range check and endianness-flip.
7987
7988         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7989
7990         * config/aarch64/aarch64-simd.md
7991         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7992         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7993         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7994
7995         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7996         (aarch64_sq<r>dmulh_lane<mode>): ...this.
7997
7998         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7999         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
8000
8001         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
8002         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
8003
8004         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
8005         (aarch64_sqdmull_lane<mode>): ...this.
8006
8007         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
8008         (aarch64_sqdmull_laneq<mode>): ...this.
8009
8010         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
8011         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
8012         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
8013         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
8014
8015         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
8016         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
8017         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
8018         bounds check and lane flip.
8019
8020         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
8021         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
8022         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
8023
8024         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
8025         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
8026         renaming of TERNOP_LANE to QUADOP_LANE.
8027
8028         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
8029         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
8030         qualifiers to TERNOP_LANE.
8031
8032 2014-11-12  Tobias Burnus  <burnus@net-b.de>
8033
8034         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
8035         * configure.ac: Ditto.
8036         * graphite-interchange.c: Remove HAVE_CLOOG block.
8037         * config.in: Regenerate.
8038         * configure: Regenerate.
8039
8040 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
8041
8042         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
8043         caller-save.
8044         (EPILOGUE_USES): Guard the check by epilogue_completed.
8045         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
8046         LR.
8047         (aarch64_can_eliminate): Check LR_REGNUM liveness.
8048
8049 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8050
8051         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
8052
8053 2014-11-12  Marek Polacek  <polacek@redhat.com>
8054
8055         * fold-const.c (fold_binary_loc): Don't fold if the result
8056         is undefined.
8057         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
8058         -(-A) -> A): Likewise.
8059
8060 2014-11-12  Richard Biener  <rguenther@suse.de>
8061
8062         Merge from match-and-simplify branch
8063         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8064
8065         * genmatch.c (user_id): Add new member is_oper_list.
8066         (user_id::user_id): Add new default argument.
8067         (parser::parse_operator_list): New function.
8068         (parser::parse_for): Allow operator-list.
8069         (parser::parse_pattern): Call parser::parse_operator_list.
8070         (parser::parse_operation): Reject operator-list.
8071         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
8072
8073         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8074
8075         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
8076
8077         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8078
8079         * genmatch.c (parser::parse_op): Check if predicate is used in
8080         result operand.
8081
8082         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8083
8084         * genmatch.c (parser::parse_for): Make sure to have a valid
8085         token to report errors at.
8086
8087         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8088
8089         * genmatch.c (parser): Add new member parsing_match_operand.
8090         (parser::parse_operation): Check for conditional convert in result
8091         operand.
8092         (parser::parse_expr): Check for commutative operator in result operand.
8093         Check for :type in match operand.
8094         (parser::parse_simplify): Set/unset parsing_match_operand.
8095         (parser::parser): Initialize parsing_match_operand.
8096
8097         2014-10-28  Richard Biener  <rguenther@suse.de>
8098
8099         * genmatch.c (parser::parse_for): Properly check for already
8100         defined operators.
8101
8102         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8103
8104         * genmatch.c (error_cb): Adjust for printing warnings.
8105         (warning_at): New function.
8106         (user_id): Add new member used.
8107         (get_operator): Mark user_id as used.
8108         (parse_for): Warn for unused operators.
8109
8110 2014-11-12  Richard Biener  <rguenther@suse.de>
8111
8112         * match.pd: Implement simple complex operations cancelling.
8113         * fold-const.c (fold_unary_loc): Remove them here.
8114
8115 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
8116
8117         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
8118         Define __NO_MATH_ERRNO__ if -fno-math-errno.
8119         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
8120
8121 2014-11-12  Richard Biener  <rguenther@suse.de>
8122
8123         * genmatch.c (::gen_transform): Add capture_info and
8124         expand_compares arguments.
8125         (struct expr): Add is_generic flag.
8126         (lower_cond): New functions lowering [VEC_]COND_EXPR
8127         conditions to a GENERIC and a GIMPLE variant.
8128         (lower): Call lower_cond.
8129         (cmp_operand): Also compare the is_generic flag.
8130         (capture_info::cinfo): Add cond_expr_cond_p flag.
8131         (capture_info::capture_info): Pass down whether the
8132         expression argument is a COND_EXPR condition.
8133         (capture_info::walk_match): Likewise, mark captures
8134         capturing COND_EXPR conditions with cond_expr_cond_p.
8135         (expr::gen_transform): Pass down whether we need to
8136         expand compares from COND_EXPR conditions.
8137         (capture::gen_transform): Expand compares substituted
8138         from COND_EXPR conditions into non-COND_EXPR conditions.
8139         (dt_operand::gen_gimple_expr): Handle explicitely marked
8140         GENERIC expressions as generic.
8141         (dt_simplify::gen): Pass whether we need to expand
8142         conditions to gen_transform.  Handle capture results
8143         which are from COND_EXPR conditions.
8144         (main): Pass gimple flag down to lower.
8145
8146 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
8147
8148         PR c/59708
8149         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
8150         * builtins.c (fold_builtin_arith_overflow): New function.
8151         (fold_builtin_3): Use it.
8152         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
8153         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
8154         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
8155         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
8156         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
8157         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
8158         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
8159         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
8160         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
8161         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
8162         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
8163         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
8164         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
8165         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
8166         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
8167         * expr.c (write_complex_part): Remove prototype, no longer static.
8168         * expr.h (write_complex_part): New prototype.
8169         * function.c (aggregate_value_p): For internal functions return 0.
8170         * gimple-fold.c (arith_overflowed_p): New functions.
8171         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
8172         * gimple-fold.h (arith_overflowed_p): New prototype.
8173         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
8174         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
8175         functions.
8176         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
8177         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
8178         never used.
8179         * gimplify.c (gimplify_call_expr): Handle gimplification of
8180         internal calls with lhs.
8181         * internal-fn.c (get_range_pos_neg, get_min_precision,
8182         expand_arith_overflow_result_store): New functions.
8183         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
8184         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
8185         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
8186         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
8187         (ubsan_expand_si_overflow_neg_check): Renamed to ...
8188         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
8189         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
8190         0 as first argument expansion.
8191         (ubsan_expand_si_overflow_mul_check): Renamed to ...
8192         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
8193         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
8194         Handle MUL_OVERFLOW expansion.
8195         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
8196         arguments for it.
8197         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
8198         expand_neg_overflow, prepare arguments for it.
8199         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
8200         for it.
8201         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
8202         expand_MUL_OVERFLOW): New functions.
8203         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
8204         internal functions.
8205         * tree-vrp.c (check_for_binary_op_overflow): New function.
8206         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
8207         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
8208         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
8209         internal functions.
8210         * optabs.def (umulv4_optab): New optab.
8211         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
8212         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
8213         * doc/extend.texi (Integer Overflow Builtins): Document
8214         __builtin_*_overflow.
8215
8216 2014-11-12  Richard Biener  <rguenther@suse.de>
8217
8218         * genmatch.c (capture_info::capture_info): Add missing
8219         COND_EXPR handling.
8220         (capture_info::walk_match): Fix COND_EXPR handling.
8221         (capture_info::walk_result): Likewise.
8222
8223 2014-11-12  Richard Biener  <rguenther@suse.de>
8224
8225         PR middle-end/63821
8226         * match.pd: Add missing conversion to the -(T)-X pattern.
8227
8228 2014-11-12  Richard Biener  <rguenther@suse.de>
8229
8230         PR bootstrap/63819
8231         * hash-table.h: Include ggc.h also for generator programs.
8232         * genmatch.c (ggc_internal_cleared_alloc): Properly define
8233         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
8234
8235 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8236
8237         PR tree-optimization/63761
8238         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
8239         rather than taking it as a parameter. Add some comments to explain the
8240         gsi_move_before in case of load and why canonicalization of bswap into
8241         a rotation is only done for 16bit values.
8242         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
8243         refer to the statement just before cur_stmt. Ignore 16bit bswap that
8244         are already in canonical form. Adapt bswap_replace to removal of its
8245         gsi parameter.
8246
8247 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
8248
8249         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
8250         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
8251         (for_each_rtx_in_insn): Delete.
8252         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
8253         * df-core.c: Remove reference to for_each_rtx in comment.
8254
8255 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
8256
8257         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
8258         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
8259         * doc/aarch64-acle-intrinsics.texi: Remove.
8260         * doc/arm-acle-intrinsics.texi: Remove.
8261         * doc/arm-neon-intrinsics.texi: Remove.
8262         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
8263         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
8264         Extension section. Add references to public ACLE specification.
8265
8266 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
8267
8268         * tree-vrp.c (register_edge_assert_for_2): Change return type to
8269         void and adjust accordingly.
8270         (register_edge_assert_for_1): Likewise.
8271         (register_edge_assert_for): Likewise.
8272         (find_conditional_asserts): Likewise.
8273         (find_switch_asserts): Likewise.
8274         (find_assert_locations_1): Likewise.
8275         (find_assert_locations): Likewise.
8276         (insert_range_insertions): Inspect the need_assert_for bitmap.
8277
8278 2014-11-11  Andrew Pinski  <apinski@cavium.com>
8279
8280         Bug target/61997
8281         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
8282         aarch64-builtins.c.
8283         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
8284         at the end of the file.
8285
8286 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
8287             Manuel López-Ibáñez  <manu@gcc.gnu.org>
8288
8289         PR driver/36312
8290         * diagnostic-core.h: Add prototype for fatal_error.
8291         * diagnostic.c (fatal_error): New function fatal_error.
8292         * gcc.c (store_arg): Remove have_o_argbuf_index.
8293         (process_command): Check if input and output files are the same.
8294         * toplev.c (init_asm_output): Check if input and output files are
8295         the same.
8296
8297 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
8298
8299         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
8300
8301 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
8302
8303         PR target/61535
8304         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
8305         smaller than 8 bytes.
8306         (sparc_function_arg_1): Tweak.
8307         (sparc_function_value_1): Tweak.
8308
8309 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
8310
8311         * ChangeLog.jit: New.
8312         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
8313         sphinx is installed, falling back to "texinfo" otherwise.
8314         (FULL_DRIVER_NAME): New variable, adapted from the
8315         install-driver target.  New target, a symlink within the builddir,
8316         linked to "xgcc", for use when running the JIT library from the
8317         builddir.
8318         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
8319         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
8320         out.
8321         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
8322         sphinx is installed, falling back to "texinfo" otherwise.
8323         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
8324         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
8325         * configure: Regenerate.
8326         * doc/install.texi (--enable-host-shared): Specify that this is
8327         required when building libgccjit.
8328         (Tools/packages necessary for modifying GCC): Add Sphinx.
8329         * timevar.def (TV_JIT_REPLAY): New.
8330         (TV_ASSEMBLE): New.
8331         (TV_LINK): New.
8332         (TV_LOAD): New.
8333
8334 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8335
8336         PR target/63610
8337         * configure: Regenerate.
8338
8339 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
8340
8341         * config/aarch64/aarch64-simd.md
8342         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
8343         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
8344         are punning between float vectors and integer vectors.
8345
8346 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8347
8348         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
8349         open-coded swap with std::swap to swap values.
8350         (alpha_emit_setcc): Ditto.
8351         (alpha_emit_conditional_move): Ditto.
8352         (alpha_split_tmode_pair): Ditto.
8353
8354 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
8355
8356         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
8357         permutations on power of 2 cases.
8358
8359 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8360
8361         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
8362         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
8363
8364 2014-11-11  Richard Biener  <rguenther@suse.de>
8365
8366         * tree-core.h (pedantic_lvalues): Remove.
8367         * fold-const.c (pedantic_lvalues): Likewise.
8368         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
8369
8370 2014-11-11  Martin Liska  <mliska@suse.cz>
8371
8372         PR ipa/63622
8373         PR ipa/63795
8374         * ipa-icf.c (sem_function::merge): Add new target symbol alias
8375         support guard.
8376         (sem_variable::merge): Likewise.
8377         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
8378
8379 2014-11-11  Richard Biener  <rguenther@suse.de>
8380
8381         * match.pd: Implement patterns from associate_plusminus
8382         and factor in differences from the fold-const.c implementation.
8383         * fold-const.c (fold_binary_loc): Remove patterns here.
8384         * tree-ssa-forwprop.c (associate_plusminus): Remove.
8385         (pass_forwprop::execute): Don't call it.
8386         * tree.c (tree_nop_conversion_p): New function, factored
8387         from tree_nop_conversion.
8388         * tree.h (tree_nop_conversion_p): Declare.
8389
8390 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8391
8392         * system.h: Include algorithm and utility.
8393         * rtl.h: Do not include utility here.
8394         * wide-int.h: Ditto.
8395         * tree-vect-data-refs.c (swap): Remove template.
8396         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
8397
8398 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8399
8400         PR bootstrap/63699
8401         PR bootstrap/63750
8402         * system.h: Include <string> before "safe-ctype.h"
8403         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
8404         calls to min/max with wi namespace.
8405         * ipa-chkp.c: Don't include <string>.
8406
8407 2014-11-11  Terry Guo  <terry.guo@arm.com>
8408
8409         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
8410         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
8411         registers.
8412         (*thumb1_movhf): Likewise.
8413
8414 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8415
8416         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
8417         instead of INT64_MAX.
8418
8419 2014-11-11  Tobias Burnus  <burnus@net-b.de>
8420
8421         * doc/install.texi (Prerequisites): Remove CLooG.
8422
8423 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
8424
8425         * ipa-inline.c (edge_badness): Adjust.
8426         (inline_small_functions): Likewise.
8427         * predict.c (propagate_freq): Likewise.
8428         (estimate_bb_frequencies): Likewise.
8429         * sreal.c (sreal::dump): Rename from dump_sreal.
8430         (debug): Adjust.
8431         (copy): Remove function.
8432         (sreal::shift_right): Rename from sreal_sift_right.
8433         (sreal::normalize): Rename from normalize.
8434         (sreal_init): Remove function.
8435         (sreal::to_int): Rename from sreal_to_int.
8436         (sreal_compare): Remove function.
8437         (sreal::operator+): Rename from sreal_add.
8438         (sreal::operator-): Rename from sreal_sub.
8439         (sreal::operator*): Rename from sreal_mul.
8440         (sreal::operator/): Rename from sreal_div.
8441         * sreal.h (class sreal): Adjust.
8442         (inline sreal &operator+=): New operator.
8443         (inline sreal &operator-=): Likewise.
8444         (inline sreal &operator/=): Likewise.
8445         (inline sreal &operator*=): Likewise.
8446         (inline bool operator!=): Likewise.
8447         (inline bool operator>): Likewise.
8448         (inline bool operator<=): Likewise.
8449         (inline bool operator>=): Likewise.
8450
8451 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
8452
8453         * sched-deps.c (sched_analyze_1): Check pending list if it is not
8454         less than MAX_PENDING_LIST_LENGTH.
8455         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
8456
8457 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8458
8459         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
8460         swap with std::swap to swap values.
8461         (ix86_fixup_binary_operands): Ditto.
8462         (ix86_binary_operator_ok): Ditto.
8463         (ix86_prepare_fp_compare_args): Ditto.
8464         (ix86_expand_branch): Ditto.
8465         (ix86_expand_carry_flag_compare): Ditto.
8466         (ix86_expand_int_movcc): Ditto.
8467         (ix86_prepare_sse_fp_compare_args): Ditto.
8468         (ix86_expand_sse_fp_minmax): Ditto.
8469         (ix86_expand_int_vcond): Ditto.
8470         (ix86_split_long_move): Ditto.
8471         (ix86_expand_sse_comi): Ditto.
8472         (ix86_expand_sse_compare_and_jump): Ditto.
8473         (ix86_expand_sse_compare_mask): Ditto.
8474         * config/i386/i386.md (*add<mode>_1): Ditto.
8475         (addsi_1_zext): Ditto.
8476         (*addhi_1): Ditto.
8477         (*addqi_1): Ditto.
8478         (*add<mode>_2): Ditto.
8479         (*addsi_2_zext): Ditto.
8480         (*add<mode>_3): Ditto.
8481         (*addsi_3_zext): Ditto.
8482         (*add<mode>_5): Ditto.
8483         (absneg splitter): Ditto.
8484
8485 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8486
8487         Revert:
8488         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8489
8490         PR target/63620
8491         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
8492         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
8493         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
8494         be reloaded through memory.
8495         (*pushxf): Ditto.
8496         (*pushdf): Ditto.
8497
8498 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
8499             Martin Liska  <mliska@suse.cz>
8500
8501         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
8502         (func_checker::compare_gimple_call): Compare gimple_call_fn,
8503         gimple_call_chain, gimple_call_fntype and call flags.
8504
8505 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
8506
8507         PR rtl-optimization/63620
8508         PR rtl-optimization/63799
8509         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
8510         and setting PIC pseudo insns.
8511         (lra_create_live_ranges): Fix the typo.
8512
8513 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
8514
8515         PR middle-end/63748
8516         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
8517         SSA copies whose source and destination names both occur in
8518         abnormal PHIs.
8519
8520 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
8521
8522         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
8523         * common.opt: Remove using of fgraphite-code-generator flag.
8524         * flag-types.h: Likewise.
8525         * graphite.c: Remove using of CLooG.
8526         * graphite-blocking.c: Likewise.
8527         * graphite-dependences.c: Likewise.
8528         * graphite-poly.c: Likewise.
8529         * graphite-poly.h: Likewise.
8530         * graphite-scop-detection.c: Likewise.
8531         * graphite-sese-to-poly.c: Likewise.
8532         * graphite-clast-to-gimple.c: Removed.
8533         * graphite-clast-to-gimple.h: Likewise.
8534         * graphite-htab.h: Likewise.
8535
8536 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
8537
8538         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
8539         Add.
8540
8541 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8542
8543         * config/frv/frv.c (frv_io_handle_use_1): Delete.
8544         (frv_io_handle_use): Use find_all_hard_regs.
8545
8546 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8547
8548         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8549         than an rtx *.  Take the regstate_t directly rather than via a void *.
8550         Return a bool rather than an int.  Iterate over all subrtxes here.
8551         (frv_registers_conflict_p): Update accordingly.
8552
8553 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8554
8555         * config/frv/frv.c: Include rtl-iter.h.
8556         (frv_acc_group_1): Delete.
8557         (frv_acc_group): Use FOR_EACH_SUBRTX.
8558
8559 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8560
8561         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8562         (frv_clear_registers_used): Delete.
8563         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8564
8565 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
8566
8567         PR bootstrap/63573
8568         * calls.c (initialize_argument_information): When emitting thunk call
8569         use original memory placement of the argument.
8570
8571 2014-11-10  Renlin Li  <renlin.li@arm.com>
8572
8573         PR middle-end/61529
8574         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8575
8576 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8577
8578         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8579         bswaphi if available.
8580
8581 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
8582
8583         * config/nvptx/nvptx.c: New file.
8584         * config/nvptx/nvptx.h: New file.
8585         * config/nvptx/nvptx-protos.h: New file.
8586         * config/nvptx/nvptx.md: New file.
8587         * config/nvptx/t-nvptx: New file.
8588         * config/nvptx/nvptx.opt: New file.
8589         * common/config/nvptx/nvptx-common.c: New file.
8590         * config.gcc: Handle nvptx-*-*.
8591
8592 2014-11-10  Richard Biener  <rguenther@suse.de>
8593
8594         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8595         released operands on the free list.
8596
8597 2014-11-10  Richard Biener  <rguenther@suse.de>
8598
8599         * match.pd: Implement pattern from simplify_mult.
8600         * tree-ssa-forwprop.c (simplify_mult): Remove.
8601         (pass_forwprop::execute): Do not call simplify_mult.
8602
8603 2014-11-10  Richard Biener  <rguenther@suse.de>
8604
8605         PR tree-optimization/63800
8606         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8607         we can restore the previous availability in after_dom_children.
8608         (eliminate_dom_walker::after_dom_children): Restore
8609         previous availability.
8610
8611 2014-11-10  Richard Biener  <rguenther@suse.de>
8612
8613         PR middle-end/63798
8614         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8615         properly treat the embedded multiplication as commutative
8616         when looking for feeding negates.
8617
8618 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
8619
8620         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8621
8622 2014-11-10  Martin Liska  <mliska@suse.cz>
8623
8624         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8625         for the test because of default char signedness
8626         on powerpc64 target.
8627
8628 2014-11-10  Richard Biener  <rguenther@suse.de>
8629
8630         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8631         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8632         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8633
8634 2014-11-10  Richard Biener  <rguenther@suse.de>
8635
8636         * match.pd: Move rest of the conversion combining patterns
8637         from tree-ssa-forwprop.c.
8638         * tree-ssa-forwprop.c (combine_conversions): Remove.
8639         (pass_forwprop::execute): Do not call it.
8640
8641 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8642
8643         * gimple-low.c (lower_function_body): Clear the location of the first
8644         inserted representative return if it also fills in for the fallthru.
8645
8646 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8647
8648         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8649         that bb is always executed to early exit. Use predicate of
8650         cd-equivalent block for join blocks if it exists.
8651         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8652         (tree_if_conversion): Free post-dominance information.
8653
8654 2014-11-09  Jason Merrill  <jason@redhat.com>
8655
8656         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8657         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8658         (_mm_mask_cvtusepi32_storeu_epi16)
8659         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8660
8661 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8662
8663         * config/avr/predicates.md (low_io_address_operand): Fix typo.
8664
8665 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
8666
8667         PR rtl-optimization/63620
8668         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8669         name.  Move to lra.c.  Make it external.
8670         (substitute_pseudo_within_insn): Ditto.
8671         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8672         the new names.
8673         (undo_optional_reloads): Ditto.
8674         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8675         New prototypes.
8676         (lra_substitute_pseudo_within_insn): Ditto.
8677         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8678         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
8679         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
8680         bb_killed_pseudos.
8681         (struct bb_data, bb_data_t, bb_data): New.
8682         (get_bb_data, get_bb_data_by_index): Ditto.
8683         (all_hard_regs_bitmap): New.
8684         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8685         (initiate_live_solver, finish_live_solver): New.
8686         (process_bb_lives): Change return type.  Add code updating local
8687         live data and removing dead insns.  Pass new argument to
8688         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
8689         life info.  Return the result.
8690         (lra_create_live_ranges): Add code to do global pseudo live
8691         analysis.
8692         (lra_live_ranges_init): Call initiate_live_solver.
8693         (lra_live_ranges_finish): Call finish_live_solver.
8694         * lra.c (lra_dump_bitmap_with_title): New.
8695         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8696         from lra-constraints.c.
8697
8698 2014-11-09  Richard Biener  <rguenther@suse.de>
8699
8700         * match.pd: Add patterns convering two conversions in a row
8701         from fold-const.c.
8702         * fold-const.c (fold_unary_loc): Remove them here.
8703         * tree-ssa-forwprop.c (combine_conversions): Likewise.
8704         * genmatch.c (dt_node::gen_kids): Check whether we may
8705         follow SSA use-def chains.
8706
8707 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8708
8709         * config/aarch64/aarch64.c: Include rtl-iter.h.
8710         (aarch64_tls_operand_p_1): Delete.
8711         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8712
8713 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8714
8715         * config/arm/arm.c (arm_note_pic_base): Delete.
8716         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8717
8718 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8719
8720         * config/arm/arm.c: Include rtl-iter.h.
8721         (arm_tls_referenced_p_1): Delete.
8722         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8723
8724 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8725
8726         * config/arm/aarch-common.c: Include rtl-iter.h.
8727         (search_term, arm_find_sub_rtx_with_search_term): Delete.
8728         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8729         (arm_get_set_operands): Pass the insn pattern rather than the
8730         insn itself.
8731         (arm_no_early_store_addr_dep): Likewise.
8732
8733 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8734
8735         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8736         related, if any.
8737         (thumb_set_return_address): Likewise.
8738
8739 2014-11-07  Jeff Law  <law@redhat.com>
8740
8741         PR tree-optimization/61515
8742         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8743         stack rather than looking at every SSA_NAME's value.
8744
8745 2014-11-07  Richard Biener  <rguenther@suse.de>
8746
8747         PR tree-optimization/63605
8748         * fold-const.c (fold_binary_loc): Properly use element_precision
8749         for types that may not be scalar.
8750
8751 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
8752
8753         PR target/63534
8754         * config/i386/i386.md (builtin_setjmp_receiver): Use
8755         pic_offset_table_rtx for PIC register.
8756         (nonlocal_goto_receiver): Delete.
8757
8758 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
8759
8760         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8761         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8762
8763 2014-11-07  Martin Liska  <mliska@suse.cz>
8764
8765         PR ipa/63580
8766         * cgraphunit.c (cgraph_node::create_wrapper):
8767         TREE_ADDRESSABLE is set to false for a newly created thunk.
8768
8769 2014-11-07  Martin Liska  <mliska@suse.cz>
8770
8771         PR ipa/63747
8772         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8773         Missing checking for CASE_LOW and CASE_HIGH added.
8774
8775 2014-11-07  Martin Liska  <mliska@suse.cz>
8776
8777         PR ipa/63595
8778         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8779         is correctly handled for thunks created by IPA ICF.
8780
8781 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
8782 2014-11-07  Richard Biener  <rguenther@suse.de>
8783
8784         PR tree-optimization/63676
8785         * gimple-fold.c (fold_gimple_assign): Do not fold node when
8786         TREE_CLOBBER_P be true.
8787
8788 2014-11-07  Richard Biener  <rguenther@suse.de>
8789
8790         PR middle-end/63770
8791         * match.pd: Guard conflicting GENERIC pattern properly.
8792
8793 2014-11-07  Richard Biener  <rguenther@suse.de>
8794
8795         * match.pd: Add patterns for POINTER_PLUS_EXPR association
8796         and special patterns from tree-ssa-forwprop.c
8797         * fold-const.c (fold_binary_loc): Remove them here.
8798         * tree-ssa-forwprop.c (to_purge): New global bitmap.
8799         (fwprop_set_lattice_val): New function.
8800         (fwprop_invalidate_lattice): Likewise.
8801         (remove_prop_source_from_use): Instead of purging dead EH
8802         edges record blocks to do that in to_purge.
8803         (tidy_after_forward_propagate_addr): Likewise.
8804         (forward_propagate_addr_expr): Invalidate the lattice for
8805         SSA names we release.
8806         (simplify_conversion_from_bitmask): Likewise.
8807         (simplify_builtin_call): Likewise.
8808         (associate_pointerplus_align): Remove.
8809         (associate_pointerplus_diff): Likewise.
8810         (associate_pointerplus): Likewise.
8811         (fold_all_stmts): Merge with ...
8812         (pass_forwprop::execute): ... the original loop over all
8813         basic-blocks.  Delay purging dead EH edges and invalidate
8814         the lattice for SSA names we release.
8815
8816 2014-11-07  Terry Guo  <terry.guo@arm.com>
8817
8818         * config/arm/arm.opt (masm-syntax-unified): New option.
8819         * doc/invoke.texi (-masm-syntax-unified): Document new option.
8820         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8821         (ASM_APP_ON): Redefined.
8822         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8823         code always use UAL syntax.
8824         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8825         * config/arm/thumb1.md: Likewise.
8826
8827 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
8828
8829         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
8830         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8831         or in_call_delay.
8832
8833 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
8834
8835         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8836         Set default_mips_arch and default_mips_abi instead of tm_defines.
8837         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8838         of tm_defines.
8839         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
8840         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8841         based on MIPS_ABI_DEFAULT.
8842         (STANDARD_STARTFILE_PREFIX_2): Ditto.
8843
8844 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
8845
8846         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8847         cases of extended identifiers.
8848
8849 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
8850
8851         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8852
8853 2014-11-06  DJ Delorie  <dj@redhat.com>
8854
8855         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8856         conditional.
8857         (movhicc_<code>_<mode>): Likewise.
8858         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8859         subregs.
8860         (m32c_eh_return_data_regno): Change to using memregs to avoid
8861         tying up all the compute regs.
8862         (m32c_legitimate_address_p) Subregs are not valid addresses.
8863
8864 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
8865
8866         * function.c (thread_prologue_and_epilogue_insns): No longer static.
8867         * function.h (thread_prologue_and_epilogue_insns): Declare.
8868
8869         * target.def (assemble_undefined_decl): New hooks.
8870         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8871         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8872         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8873         * doc/tm.texi: Regenerate.
8874         * output.h (assemble_undefined_decl): Declare.
8875         (get_fnname_from_decl): Declare.
8876         * varasm.c (assemble_undefined_decl): New function.
8877         (get_fnname_from_decl): New function.
8878         * final.c (rest_of_handle_final): Use it.
8879         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8880         for nodes without a definition.
8881
8882         * target.def (call_args, end_call_args): New hooks.
8883         * hooks.c (hook_void_rtx_tree): New empty function.
8884         * hooks.h (hook_void_rtx_tree): Declare.
8885         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8886         * doc/tm.texi: Regenerate.
8887         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
8888         hooks.
8889         (expand_library_call_value_1): Use the two new hooks.
8890
8891         * expr.c (use_reg_mode): Just return for pseudo registers.
8892
8893         * combine.c (try_combine): Don't allow a call as one of the source
8894         insns.
8895
8896         * target.def (decl_end): New hook.
8897         * varasm.c (assemble_variable_contents, assemble_constant_contents):
8898         Use it.
8899         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8900         * doc/tm.texi: Regenerate.
8901
8902 2014-11-06  Renlin Li  <renlin.li@arm.com>
8903
8904         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8905         (processor): New architecture_version field.
8906         (aarch64_override_options): Initialize aarch64_architecture_version.
8907         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8908         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8909
8910 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
8911
8912         * params.def (sra-max-scalarization-size-Ospeed): New.
8913         (sra-max-scalarization-size-Osize): Likewise.
8914         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8915         (sra-max-scalarization-size-Osize): Likewise.
8916         * toplev.c (process_options): Set default values for new
8917         parameters.
8918         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8919         * targhooks.c (get_move_ratio): Remove static designator.
8920         * target.h (get_move_ratio): Declare.
8921
8922 2014-11-06  Marek Polacek  <polacek@redhat.com>
8923
8924         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8925         Remove vector limit.
8926
8927 2014-11-06  Richard Biener  <rguenther@suse.de>
8928
8929         * match.pd: Implement bitwise binary and unary simplifications
8930         from tree-ssa-forwprop.c.
8931         * fold-const.c (fold_unary_loc): Remove them here.
8932         (fold_binary_loc): Likewise.
8933         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8934         (truth_valued_ssa_name): Likewise.
8935         (lookup_logical_inverted_value): Likewise.
8936         (simplify_bitwise_binary_1): Likewise.
8937         (hoist_conversion_for_bitop_p): Likewise.
8938         (simplify_bitwise_binary_boolean): Likewise.
8939         (simplify_bitwise_binary): Likewise.
8940         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8941         and simplify_bitwise_binary.
8942         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8943         (decision_tree::insert): Also insert non-expressions.
8944
8945 2014-11-06  Hale Wang  <hale.wang@arm.com>
8946
8947         * config/arm/arm-cores.def: Add support for
8948         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8949         cortex-m1.small-multiply.
8950         * config/arm/arm-tables.opt: Regenerate.
8951         * config/arm/arm-tune.md: Regenerate.
8952         * config/arm/arm.c: Update the rtx-costs for MUL.
8953         * config/arm/bpabi.h: Handle
8954         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8955         cortex-m1.small-multiply.
8956         * doc/invoke.texi: Document
8957         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8958         cortex-m1.small-multiply.
8959
8960 2014-11-06  Hale Wang  <hale.wang@arm.com>
8961
8962         * config/arm/arm.c: Add cortex-m7 tune.
8963         * config/arm/arm-cores.def: Use cortex-m7 tune.
8964
8965 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
8966
8967         PR target/63538
8968         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8969         (ix86_encode_section_info): Do not check for non-automatic varibles
8970         when setting SYMBOL_FLAG_FAR_ADDR flag.
8971         (x86_64_elf_select_section): Do not check ix86_cmodel here.
8972         (x86_64_elf_unique_section): Ditto.
8973         (x86_elf_aligned_common): Emit tab before .largecomm.
8974
8975 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
8976
8977         PR preprocessor/9449
8978         * doc/cpp.texi (Character sets, Tokenization)
8979         (Implementation-defined behavior): Don't refer to UCNs in
8980         identifiers requiring -fextended-identifiers.
8981         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8982         by default for C99 and later and C++.
8983         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8984         identifiers needing -fextended-identifiers.
8985
8986 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
8987
8988         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8989         for 512-bit wide modes.
8990         (expand_vec_perm_1): Use correct versions of patterns.
8991         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8992         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8993
8994 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
8995
8996         * ipa-chkp.c: New.
8997         * ipa-chkp.h: New.
8998         * tree-chkp.c: New.
8999         * tree-chkp.h: New.
9000         * tree-chkp-opt.c: New.
9001         * rtl-chkp.c: New.
9002         * rtl-chkp.h: New.
9003         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
9004         tree-chkp-opt.o.
9005         (GTFILES): Add tree-chkp.c.
9006         * mode-classes.def (MODE_POINTER_BOUNDS): New.
9007         * tree.def (POINTER_BOUNDS_TYPE): New.
9008         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
9009         (POINTER_BOUNDS_MODE): New.
9010         (make_pointer_bounds_mode): New.
9011         * machmode.h (POINTER_BOUNDS_MODE_P): New.
9012         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
9013         (layout_type): Support POINTER_BOUNDS_TYPE.
9014         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
9015         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
9016         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
9017         (type_contains_placeholder_1): Likewise.
9018         (build_common_tree_nodes): Initialize
9019         pointer_bounds_type_node.
9020         * tree.h (POINTER_BOUNDS_TYPE_P): New.
9021         (pointer_bounds_type_node): New.
9022         (POINTER_BOUNDS_P): New.
9023         (BOUNDED_TYPE_P): New.
9024         (BOUNDED_P): New.
9025         (CALL_WITH_BOUNDS_P): New.
9026         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
9027         (gimple_call_with_bounds_p): New.
9028         (gimple_call_set_with_bounds): New.
9029         (gimple_return_retbnd): New.
9030         (gimple_return_set_retbnd): New
9031         * gimple.c (gimple_build_return): Increase number of ops
9032         for return statement.
9033         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
9034         flag.
9035         * gimple-pretty-print.c (dump_gimple_return): Print second op.
9036         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
9037         * gimplify.c (gimplify_init_constructor): Avoid infinite
9038         loop during gimplification of bounds initializer.
9039         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
9040         (special_function_p): Use original decl name when analyzing
9041         instrumentation clone.
9042         (arg_data): Add fields special_slot, pointer_arg and
9043         pointer_offset.
9044         (store_bounds): New.
9045         (emit_call_1): Propagate instrumentation flag for CALL.
9046         (initialize_argument_information): Compute pointer_arg,
9047         pointer_offset and special_slot for pointer bounds arguments.
9048         (finalize_must_preallocate): Preallocate when storing bounds
9049         in bounds table.
9050         (compute_argument_addresses): Skip pointer bounds.
9051         (expand_call): Store bounds into tables separately.  Return
9052         result joined with resulting bounds.
9053         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
9054         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
9055         (expand_return): Add returned bounds arg.  Handle returned bounds.
9056         (expand_gimple_stmt_1): Adjust to new expand_return signature.
9057         (gimple_expand_cfg): Reset rtx bounds map.
9058         * expr.c: Include tree-chkp.h, rtl-chkp.h.
9059         (expand_assignment): Handle returned bounds.
9060         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
9061         target argument.  Handle bounds returned by calls.
9062         (store_expr): Now wraps store_expr_with_bounds.
9063         * expr.h (store_expr_with_bounds): New.
9064         * function.c: Include tree-chkp.h, rtl-chkp.h.
9065         (bounds_parm_data): New.
9066         (use_register_for_decl): Do not registerize decls used for bounds
9067         stores and loads.
9068         (assign_parms_augmented_arg_list): Add bounds of the result
9069         structure pointer as the second argument.
9070         (assign_parm_find_entry_rtl): Mark bounds are never passed on
9071         the stack.
9072         (assign_parm_is_stack_parm): Likewise.
9073         (assign_parm_load_bounds): New.
9074         (assign_bounds): New.
9075         (assign_parms): Load bounds and determine a location for
9076         returned bounds.
9077         (diddle_return_value_1): New.
9078         (diddle_return_value): Handle returned bounds.
9079         * function.h (rtl_data): Add field for returned bounds.
9080         * varasm.c: Include tree-chkp.h.
9081         (output_constant): Support POINTER_BOUNDS_TYPE.
9082         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
9083         (ultimate_transparent_alias_target): Move up.
9084         (make_decl_rtl): For instrumented function use
9085         name of the original decl.
9086         (assemble_start_function): Mark function as global
9087         in case it is instrumentation clone of the global
9088         function.
9089         (do_assemble_alias): Follow transparent alias chain
9090         for identifier.  Check if original alias is public.
9091         (maybe_assemble_visibility): Use visibility of the
9092         original function for instrumented version.
9093         (default_unique_section): Likewise.
9094         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
9095         (init_emit_once): Build pointer bounds zero constants.
9096         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
9097         * target.def (builtin_chkp_function): New.
9098         (chkp_bound_type): New.
9099         (chkp_bound_mode): New.
9100         (chkp_make_bounds_constant): New.
9101         (chkp_initialize_bounds): New.
9102         (load_bounds_for_arg): New.
9103         (store_bounds_for_arg): New.
9104         (load_returned_bounds): New.
9105         (store_returned_bounds): New.
9106         (chkp_function_value_bounds): New.
9107         (setup_incoming_vararg_bounds): New.
9108         (function_arg): Update hook description with new possible return
9109         value CONST_INT.
9110         * targhooks.h (default_load_bounds_for_arg): New.
9111         (default_store_bounds_for_arg): New.
9112         (default_load_returned_bounds): New.
9113         (default_store_returned_bounds): New.
9114         (default_chkp_bound_type): New.
9115         (default_chkp_bound_mode): New.
9116         (default_builtin_chkp_function): New.
9117         (default_chkp_function_value_bounds): New.
9118         (default_chkp_make_bounds_constant): New.
9119         (default_chkp_initialize_bounds): New.
9120         (default_setup_incoming_vararg_bounds): New.
9121         * targhooks.c (default_load_bounds_for_arg): New.
9122         (default_store_bounds_for_arg): New.
9123         (default_load_returned_bounds): New.
9124         (default_store_returned_bounds): New.
9125         (default_chkp_bound_type): New.
9126         (default_chkp_bound_mode); New.
9127         (default_builtin_chkp_function): New.
9128         (default_chkp_function_value_bounds): New.
9129         (default_chkp_make_bounds_constant): New.
9130         (default_chkp_initialize_bounds): New.
9131         (default_setup_incoming_vararg_bounds): New.
9132         * builtin-types.def (BT_BND): New.
9133         (BT_FN_PTR_CONST_PTR): New.
9134         (BT_FN_CONST_PTR_CONST_PTR): New.
9135         (BT_FN_BND_CONST_PTR): New.
9136         (BT_FN_CONST_PTR_BND): New.
9137         (BT_FN_PTR_CONST_PTR_SIZE): New.
9138         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
9139         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
9140         (BT_FN_VOID_CONST_PTR_SIZE): New.
9141         (BT_FN_VOID_PTR_BND): New.
9142         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
9143         (BT_FN_BND_CONST_PTR_SIZE): New.
9144         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
9145         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
9146         * chkp-builtins.def: New.
9147         * builtins.def: include chkp-builtins.def.
9148         (DEF_CHKP_BUILTIN): New.
9149         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
9150         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
9151         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
9152         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
9153         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
9154         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
9155         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
9156         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
9157         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
9158         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
9159         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
9160         (std_expand_builtin_va_start): Init bounds for va_list.
9161         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
9162         __CHKP__ macro when Pointer Bounds Checker is on.
9163         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
9164         * passes.def (pass_ipa_chkp_versioning): New.
9165         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
9166         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
9167         (pass_chkp_instrumentation_passes): New.
9168         (pass_ipa_chkp_produce_thunks): New.
9169         (pass_local_optimization_passes): New.
9170         (pass_chkp_opt): New.
9171         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
9172         (make_pass_ipa_chkp_produce_thunks): New.
9173         (make_pass_chkp): New.
9174         (make_pass_chkp_opt): New.
9175         (make_pass_early_local_passes): Renamed to ...
9176         (make_pass_build_ssa_passes): This.
9177         (make_pass_chkp_instrumentation_passes): New.
9178         (make_pass_local_optimization_passes): New.
9179         * passes.c (pass_manager::execute_early_local_passes): Execute
9180         early passes in three steps.
9181         (execute_all_early_local_passes): Renamed to ...
9182         (execute_build_ssa_passes): This.
9183         (pass_data_early_local_passes): Renamed to ...
9184         (pass_data_build_ssa_passes): This.
9185         (pass_early_local_passes): Renamed to ...
9186         (pass_build_ssa_passes): This.
9187         (pass_data_chkp_instrumentation_passes): New.
9188         (pass_chkp_instrumentation_passes): New.
9189         (pass_data_local_optimization_passes): New.
9190         (pass_local_optimization_passes): New.
9191         (make_pass_early_local_passes): Renamed to ...
9192         (make_pass_build_ssa_passes): This.
9193         (make_pass_chkp_instrumentation_passes): New.
9194         (make_pass_local_optimization_passes): New.
9195         * c-family/c.opt (fcheck-pointer-bounds): New.
9196         (fchkp-check-incomplete-type): New.
9197         (fchkp-zero-input-bounds-for-main): New.
9198         (fchkp-first-field-has-own-bounds): New.
9199         (fchkp-narrow-bounds): New.
9200         (fchkp-narrow-to-innermost-array): New.
9201         (fchkp-optimize): New.
9202         (fchkp-use-fast-string-functions): New.
9203         (fchkp-use-nochk-string-functions): New.
9204         (fchkp-use-static-bounds): New.
9205         (fchkp-use-static-const-bounds): New.
9206         (fchkp-treat-zero-dynamic-size-as-infinite): New.
9207         (fchkp-check-read): New.
9208         (fchkp-check-write): New.
9209         (fchkp-store-bounds): New.
9210         (fchkp-instrument-calls): New.
9211         (fchkp-instrument-marked-only): New.
9212         (Wchkp): New.
9213         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
9214         (handle_bnd_legacy): New.
9215         (handle_bnd_instrument): New.
9216         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
9217         and bnd_instrument.  Fix documentation.
9218         (c_common_format_attribute_table): Likewsie.
9219         * toplev.c: include tree-chkp.h.
9220         (process_options): Check Pointer Bounds Checker is supported.
9221         (compile_file): Add chkp_finish_file call.
9222         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
9223         to handle instrumentation clones properly.
9224         (propagate_constants_accross_call): Do not propagate
9225         through instrumentation thunks.
9226         * ipa-pure-const.c (propagate_pure_const): Support
9227         IPA_REF_CHKP.
9228         * ipa-inline.c (early_inliner): Check edge has summary allocated.
9229         * ipa-split.c: Include tree-chkp.h.
9230         (find_retbnd): New.
9231         (split_part_set_ssa_name_p): New.
9232         (consider_split): Do not split retbnd and retval
9233         producers.
9234         (insert_bndret_call_after): new.
9235         (split_function): Propagate Pointer Bounds Checker
9236         instrumentation marks and handle returned bounds.
9237         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
9238         into bit field and add with_bounds field.
9239         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
9240         with_bounds field for instrumented calls.
9241         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
9242         CALL_WITH_BOUNDS_P flag for calls.
9243         * tree-ssa-ccp.c: Include tree-chkp.h.
9244         (insert_clobber_before_stack_restore): Handle
9245         BUILT_IN_CHKP_BNDRET calls.
9246         * tree-ssa-dce.c: Include tree-chkp.h.
9247         (propagate_necessity): For free call fed by alloc check
9248         bounds are also provided by the same alloc.
9249         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
9250         used by free calls.
9251         * tree-inline.c: Include tree-chkp.h.
9252         (declare_return_variable): Add arg holding
9253         returned bounds slot.  Create and initialize returned bounds var.
9254         (remap_gimple_stmt): Handle returned bounds.
9255         Return sequence of statements instead of a single statement.
9256         (insert_init_stmt): Add declaration.
9257         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
9258         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
9259         Properly handle bounds in va_arg_pack and va_arg_pack_len.
9260         (expand_call_inline): Handle returned bounds.  Add bounds copy
9261         for generated mem to mem assignments.
9262         * tree-inline.h (copy_body_data): Add fields retbnd and
9263         assign_stmts.
9264         * value-prof.c: Include tree-chkp.h.
9265         (gimple_ic): Support returned bounds.
9266         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
9267         with "chkp ctor" and "bnd_legacy" attributes.
9268         (symtab_remove_unreachable_nodes): Keep initial values for
9269         pointer bounds to be used for checks eliminations.
9270         (process_references): Handle IPA_REF_CHKP.
9271         (walk_polymorphic_call_targets): Likewise.
9272         * ipa-visibility.c (cgraph_externally_visible_p): Mark
9273         instrumented 'main' as externally visible.
9274         (function_and_variable_visibility): Filter instrumentation
9275         thunks.
9276         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
9277         field.
9278         (cgraph_node): Add instrumented_version, orig_decl and
9279         instrumentation_clone fields.
9280         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
9281         (varpool_node): Add need_bounds_init field.
9282         (cgraph_local_p): New.
9283         * cgraph.c: Include tree-chkp.h.
9284         (cgraph_node::remove): Fix instrumented_version
9285         of the referenced node if any.
9286         (cgraph_node::dump): Dump instrumentation_clone and
9287         instrumented_version fields.
9288         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
9289         references and instrumentation thunks.
9290         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
9291         all not instrumented instrumentation clones alive.
9292         (cgraph_redirect_edge_call_stmt_to_callee): Support
9293         returned bounds.
9294         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
9295         reference.
9296         (cgraph_rebuild_references): Likewise.
9297         * cgraphunit.c: Include tree-chkp.h.
9298         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
9299         function version.
9300         (varpool_finalize_decl): Register statically initialized decls
9301         in Pointer Bounds Checker.
9302         (walk_polymorphic_call_targets): Do not mark generated call to
9303         __builtin_unreachable as with_bounds.
9304         (output_weakrefs): If there are both instrumented and original
9305         versions, output only one of them.
9306         (cgraph_node::expand_thunk): Set with_bounds flag
9307         for created call statement.
9308         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
9309         (ipa_ref): increase size of use field.
9310         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
9311         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
9312         (ctor_for_folding): Do not fold constant bounds vars.
9313         * lto-streamer.h (LTO_minor_version): Change minor version from
9314         0 to 1.
9315         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
9316         pointer bounds.
9317         (lto_output_node): Output instrumentation_clone,
9318         thunk.add_pointer_bounds_args and orig_decl field.
9319         (lto_output_ref): Adjust to new ipa_ref::use field size.
9320         (input_overwrite_node): Read instrumentation_clone field.
9321         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
9322         fields.
9323         (input_ref): Adjust to new ipa_ref::use field size.
9324         (input_cgraph_1): Compute instrumented_version fields and restore
9325         IDENTIFIER_TRANSPARENT_ALIAS chains.
9326         (lto_output_varpool_node): Output
9327         need_bounds_init value.
9328         (input_varpool_node): Read need_bounds_init value.
9329         * lto-partition.c (add_symbol_to_partition_1): Keep original
9330         and instrumented versions together.
9331         (privatize_symbol_name): Restore transparent alias chain if required.
9332         (add_references_to_partition): Add references to pointer bounds vars.
9333         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
9334         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
9335         (gen_type_die_with_usage): Skip pointer bounds.
9336         (dwarf2out_global_decl): Likewise.
9337         (is_base_type): Support POINTER_BOUNDS_TYPE.
9338         (gen_formal_types_die): Skip pointer bounds.
9339         (gen_decl_die): Likewise.
9340         * var-tracking.c (vt_add_function_parameters): Skip
9341         bounds parameters.
9342         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
9343         thunk still exists.
9344         (sem_variable::merge): Reset need_bounds_init flag.
9345         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
9346         and attributes.
9347         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9348         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9349         (TARGET_LOAD_RETURNED_BOUNDS): New.
9350         (TARGET_STORE_RETURNED_BOUNDS): New.
9351         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9352         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9353         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9354         (TARGET_CHKP_BOUND_TYPE): New.
9355         (TARGET_CHKP_BOUND_MODE): New.
9356         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9357         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9358         * doc/tm.texi: Regenerated.
9359         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
9360         (BND32mode): New.
9361         (BND64mode): New.
9362         * doc/invoke.texi (-mmpx): New.
9363         (-mno-mpx): New.
9364         (chkp-max-ctor-size): New.
9365         * config/i386/constraints.md (w): New.
9366         (Ti): New.
9367         (Tb): New.
9368         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
9369         * config/i386/i386-modes.def (BND32): New.
9370         (BND64): New.
9371         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
9372         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
9373         (regclass_map): Add bound registers.
9374         (dbx_register_map): Likewise.
9375         (dbx64_register_map): Likewise.
9376         (svr4_dbx_register_map): Likewise.
9377         (isa_opts): Add -mmpx.
9378         (PTA_MPX): New.
9379         (ix86_option_override_internal): Support MPX ISA.
9380         (ix86_conditional_register_usage): Support bound registers.
9381         (ix86_code_end): Add MPX bnd prefix.
9382         (output_set_got): Likewise.
9383         (print_reg): Avoid prefixes for bound registers.
9384         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
9385         (ix86_print_operand_punct_valid_p): Likewise.
9386         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
9387         UNSPEC_BNDLDX_ADDR.
9388         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
9389         (ix86_class_likely_spilled_p): Add bound regs support.
9390         (ix86_hard_regno_mode_ok): Likewise.
9391         (x86_order_regs_for_local_alloc): Likewise.
9392         (ix86_bnd_prefixed_insn_p): New.
9393         (ix86_builtins): Add
9394         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
9395         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
9396         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
9397         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
9398         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
9399         IX86_BUILTIN_BNDUPPER.
9400         (builtin_isa): Add leaf_p and nothrow_p fields.
9401         (def_builtin): Initialize leaf_p and nothrow_p.
9402         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
9403         flags.
9404         (bdesc_mpx): New.
9405         (bdesc_mpx_const): New.
9406         (ix86_init_mpx_builtins): New.
9407         (ix86_init_builtins): Call ix86_init_mpx_builtins.
9408         (ix86_emit_cmove): New.
9409         (ix86_emit_move_max): New.
9410         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
9411         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
9412         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
9413         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
9414         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
9415         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
9416         (ix86_function_value_bounds): New.
9417         (ix86_builtin_mpx_function): New.
9418         (ix86_get_arg_address_for_bt): New.
9419         (ix86_load_bounds): New.
9420         (ix86_store_bounds): New.
9421         (ix86_load_returned_bounds): New.
9422         (ix86_store_returned_bounds): New.
9423         (ix86_mpx_bound_mode): New.
9424         (ix86_make_bounds_constant): New.
9425         (ix86_initialize_bounds):
9426         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9427         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9428         (TARGET_LOAD_RETURNED_BOUNDS): New.
9429         (TARGET_STORE_RETURNED_BOUNDS): New.
9430         (TARGET_CHKP_BOUND_MODE): New.
9431         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9432         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9433         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9434         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9435         (ix86_option_override_internal): Do not
9436         support x32 with MPX.
9437         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
9438         and force_bnd_pass.
9439         (function_arg_advance_32): Return number of used integer
9440         registers.
9441         (function_arg_advance_64): Likewise.
9442         (function_arg_advance_ms_64): Likewise.
9443         (ix86_function_arg_advance): Handle pointer bounds.
9444         (ix86_function_arg): Likewise.
9445         (ix86_function_value_regno_p): Mark fisrt bounds registers as
9446         possible function value.
9447         (ix86_function_value_1): Handle pointer bounds type/mode
9448         (ix86_return_in_memory): Likewise.
9449         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
9450         (ix86_expand_call): Generate returned bounds.
9451         (ix86_setup_incoming_vararg_bounds): New.
9452         (ix86_va_start): Initialize bounds for pointers in va_list.
9453         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9454         * config/i386/i386.h (TARGET_MPX): New.
9455         (TARGET_MPX_P): New.
9456         (FIRST_PSEUDO_REGISTER): Fix to new value.
9457         (FIXED_REGISTERS): Add bound registers.
9458         (CALL_USED_REGISTERS): Likewise.
9459         (REG_ALLOC_ORDER): Likewise.
9460         (HARD_REGNO_NREGS): Likewise.
9461         (VALID_BND_REG_MODE): New.
9462         (FIRST_BND_REG): New.
9463         (LAST_BND_REG): New.
9464         (reg_class): Add BND_REGS.
9465         (REG_CLASS_NAMES): Likewise.
9466         (REG_CLASS_CONTENTS): Likewise.
9467         (BND_REGNO_P): New.
9468         (ANY_BND_REG_P): New.
9469         (BNDmode): New.
9470         (HI_REGISTER_NAMES): Add bound registers.
9471         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
9472         stdarg fields.
9473         * config/i386/i386.md (UNSPEC_BNDMK): New.
9474         (UNSPEC_BNDMK_ADDR): New.
9475         (UNSPEC_BNDSTX): New.
9476         (UNSPEC_BNDLDX): New.
9477         (UNSPEC_BNDLDX_ADDR): New.
9478         (UNSPEC_BNDCL): New.
9479         (UNSPEC_BNDCU): New.
9480         (UNSPEC_BNDCN): New.
9481         (UNSPEC_MPX_FENCE): New.
9482         (UNSPEC_SIZEOF): New.
9483         (BND0_REG): New.
9484         (BND1_REG): New.
9485         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9486         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9487         (prefix_rep): Check for bnd prefix.
9488         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9489         (length_nobnd): New.
9490         (length): Use length_nobnd when specified.
9491         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9492         (BND): New.
9493         (bnd_ptr): New.
9494         (BNDCHECK): New.
9495         (bndcheck): New.
9496         (*jcc_1): Add MPX bnd prefix.
9497         (*jcc_2): Likewise.
9498         (jump): Likewise.
9499         (*indirect_jump): Likewise.
9500         (*tablejump_1): Likewise.
9501         (simple_return_internal): Likewise.
9502         (simple_return_internal_long): Likewise.
9503         (simple_return_pop_internal): Likewise.
9504         (simple_return_indirect_internal): Likewise.
9505         (<mode>_mk): New.
9506         (*<mode>_mk): New.
9507         (mov<mode>): New.
9508         (*mov<mode>_internal_mpx): New.
9509         (<mode>_<bndcheck>): New.
9510         (*<mode>_<bndcheck>): New.
9511         (<mode>_ldx): New.
9512         (*<mode>_ldx): New.
9513         (<mode>_stx): New.
9514         (*<mode>_stx): New.
9515         move_size_reloc_<mode>): New.
9516         * config/i386/predicates.md (address_mpx_no_base_operand): New.
9517         (address_mpx_no_index_operand): New.
9518         (bnd_mem_operator): New.
9519         (symbol_operand): New.
9520         (x86_64_immediate_size_operand): New.
9521         * config/i386/i386.opt (mmpx): New.
9522         * config/i386/i386-builtin-types.def (BND): New.
9523         (ULONG): New.
9524         (BND_FTYPE_PCVOID_ULONG): New.
9525         (VOID_FTYPE_BND_PCVOID): New.
9526         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
9527         (BND_FTYPE_PCVOID_PCVOID): New.
9528         (BND_FTYPE_PCVOID): New.
9529         (BND_FTYPE_BND_BND): New.
9530         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
9531         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
9532         (ULONG_FTYPE_VOID): New.
9533         (PVOID_FTYPE_BND): New.
9534
9535 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
9536
9537         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
9538         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
9539         pass_cleanup_barriers, pass_delay_slots,
9540         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9541         pass_shorten_branches, pass_est_nothrow_function_flags,
9542         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9543         into pass_late_compilation.
9544         (pass_late_compilation): Add.
9545         * passes.c (pass_data_late_compilation, pass_late_compilation,
9546         make_pass_late_compilation): New.
9547         * timevar.def (TV_LATE_COMPILATION): New.
9548
9549         * target.def (omit_struct_return_reg): New data hook.
9550         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9551         * doc/tm.texi: Regenerate.
9552         * function.c (expand_function_end): Use it.
9553
9554         * target.def (no_register_allocation): New data hook.
9555         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9556         * doc/tm.texi: Regenerate.
9557         * ira.c (gate_ira): New function.
9558         (pass_data_ira): Set has_gate.
9559         (pass_ira): Add a gate function.
9560         (pass_data_reload): Likewise.
9561         (pass_reload): Add a gate function.
9562         (pass_ira): Use it.
9563         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9564         no register allocation happens on the target and return.
9565         * final.c (alter_subreg): Ensure register is not a pseudo before
9566         calling simplify_subreg.
9567         (output_operand): Assert that x isn't a pseudo only if doing
9568         register allocation.
9569
9570         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9571         global vars.
9572
9573         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9574         sorry if necessary.
9575
9576 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
9577
9578         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9579         * rtl.h (SUBREG_P): New macro added.
9580
9581 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
9582
9583         * config/aarch64/aarch64-builtins.c
9584         (aarch64_build_scalar_type): Remove.
9585         (aarch64_scalar_builtin_types, aarch64_simd_type,
9586         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9587         aarch64_mangle_builtin_vector_type,
9588         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9589         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9590         aarch64_init_simd_builtin_types,
9591         aarch64_init_simd_builtin_scalar_types): New.
9592         (aarch64_init_simd_builtins): Refactor.
9593         (aarch64_init_crc32_builtins): Fixup with qualifier.
9594         * config/aarch64/aarch64-protos.h
9595         (aarch64_mangle_builtin_type): Export.
9596         * config/aarch64/aarch64-simd-builtin-types.def: New.
9597         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9598         (aarch64_mangle_type): Refactor.
9599         * config/aarch64/arm_neon.h: Declare vector types based on
9600         internal types.
9601         * config/aarch64/t-aarch64: Update dependency.
9602
9603 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
9604
9605         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9606         atomic_update_decl): Guard declaration with #ifdef.
9607
9608 2014-11-04  Marek Polacek  <polacek@redhat.com>
9609
9610         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9611
9612 2014-11-04  Marek Polacek  <polacek@redhat.com>
9613
9614         * Makefile.in (OBJS): Add sanopt.o.
9615         (GTFILES): Add sanopt.c.
9616         * asan.h (asan_expand_check_ifn): Declare.
9617         * asan.c (asan_expand_check_ifn): No longer static.
9618         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9619         * sanopt.c: ...here.  New file.
9620
9621 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
9622             Wilco Dijkstra  <wilco.dijkstra@arm.com>
9623
9624         PR target/63293
9625         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9626         stack adjustment.
9627
9628 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
9629
9630         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9631         also verify that mode is equal to the mode of op0.
9632
9633         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9634         emit into a sequence instead.
9635
9636 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9637
9638         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9639
9640 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9641
9642         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9643         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9644         (reduc_smax_<mode> *2): Rename to...
9645         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9646         (reduc_umin_<mode> *2): Rename to...
9647         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9648         (reduc_umax_<mode> *2): Rename to...
9649         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9650
9651 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9652
9653         config/arm/neon.md (reduc_plus_*): Rename to...
9654         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9655
9656 2014-11-04  Michael Collison <michael.collison@linaro.org>
9657
9658         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9659         to support constraints for CONST_INT in atomic operations.
9660         * config/aarch64/atomics.md
9661         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9662         (atomic_nand<mode>): Likewise.
9663         (atomic_fetch_<atomic_optab><mode>): Likewise.
9664         (atomic_fetch_nand<mode>): Likewise.
9665         (atomic_<atomic_optab>_fetch<mode>): Likewise.
9666         (atomic_nand_fetch<mode>): Likewise.
9667
9668 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9669
9670         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9671         of __ARM_FEATURE_IDIV.
9672
9673 2014-11-04  Marek Polacek  <polacek@redhat.com>
9674
9675         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9676
9677 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9678
9679         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9680
9681 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9682
9683         Revert:
9684         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9685         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9686         Allow CC mode if HAVE_cbranchcc4.
9687
9688 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9689
9690         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9691         with -fdump-go-spec.  Anonymous substructures are now flattened and
9692         replaced by their fields (record) or the first named, non-bitfield
9693         field (union).
9694
9695 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9696
9697         * input.c (expand_location_to_spelling_point): Fix typo.
9698         (expansion_point_location_if_in_system_header): Fix comment.
9699
9700 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9701
9702         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9703
9704 2014-11-03  Richard Biener  <rguenther@suse.de>
9705
9706         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9707         like ordinary operations.
9708         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9709         as NOP_EXPR.
9710
9711 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
9712
9713         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9714         macros.
9715         * configure, config.h.in: Regenerate.
9716         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9717         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9718         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9719         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9720         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9721         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9722         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9723         (atomic_update_decl): New static variables.
9724         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9725         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9726         and __atomic_feupdateenv for soft-float and no-FPRs.
9727
9728 2014-11-03  Richard Biener  <rguenther@suse.de>
9729
9730         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
9731         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9732         * fold-const.c (fold_unary_loc): Remove them here.
9733         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9734         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9735         GIMPLE_UNARY_RHS case.
9736         (gimple_fold_stmt_to_constant_1): Likewise.
9737         (replace_stmt_with_simplification): Fix inverted comparison.
9738
9739 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9740
9741         PR tree-optimization/60770
9742         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9743         statement should be removed.
9744         (maybe_register_def): Likewise. Replace clobbers with default
9745         definitions.
9746         (rewrite_dom_walker::before_dom_children): Remove statement if
9747         rewrite_update_stmt says so.
9748         * tree-ssa-live.c: Include tree-ssa.h.
9749         (set_var_live_on_entry): Do not mark undefined variables as live.
9750         (verify_live_on_entry): Do not check undefined variables.
9751         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9752         of partially undefined variables.
9753         * tree-ssa.c (ssa_undefined_value_p): Likewise.
9754         (execute_update_addresses_taken): Do not drop clobbers.
9755
9756 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9757
9758         PR tree-optimization/63666
9759         * fold-const.c: Include "optabs.h".
9760         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9761         can_vec_perm_p permutation to one that is not.
9762
9763 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9764
9765         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9766
9767 2014-11-03  Andrew Pinski  <apinski@cavium.com>
9768
9769         * config/mips/mips-cpus.def (octeon3): New cpu.
9770         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9771         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9772         of the comparison no longer matches mode of the operands.
9773         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9774         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
9775         (TARGET_OCTEON2): Likewise.
9776         (TUNE_OCTEON): Add Octeon3.
9777         * config/mips/mips.md (processor): Add octeon3.
9778         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9779         (octeon_arith): Add octeon3.
9780         (octeon_condmove): Remove.
9781         (octeon_condmove_o1): New reservation.
9782         (octeon_condmove_o2): New reservation.
9783         (octeon_condmove_o3_int_on_cc): New reservation.
9784         (octeon_load_o2): Add octeon3.
9785         (octeon_cop_o2): Likewise.
9786         (octeon_store): Likewise.
9787         (octeon_brj_o2): Likewise.
9788         (octeon_imul3_o2): Likewise.
9789         (octeon_imul_o2): Likewise.
9790         (octeon_mfhilo_o2): Likewise.
9791         (octeon_imadd_o2): Likewise.
9792         (octeon_idiv_o2_si): Likewise.
9793         (octeon_idiv_o2_di): Likewise.
9794         (octeon_fpu): Add to the automaton.
9795         (octeon_fpu): New cpu unit.
9796         (octeon_condmove_o2): Check for non floating point modes.
9797         (octeon_load_o2): Add prefetchx.
9798         (octeon_cop_o2): Don't check for octeon3.
9799         (octeon3_faddsubcvt): New reservation.
9800         (octeon3_fmul): Likewise.
9801         (octeon3_fmadd): Likewise.
9802         (octeon3_div_sf): Likewise.
9803         (octeon3_div_df): Likewise.
9804         (octeon3_sqrt_sf): Likewise.
9805         (octeon3_sqrt_df): Likewise.
9806         (octeon3_rsqrt_sf): Likewise.
9807         (octeon3_rsqrt_df): Likewise.
9808         (octeon3_fabsnegmov): Likewise.
9809         (octeon_fcond): Likewise.
9810         (octeon_fcondmov): Likewise.
9811         (octeon_fpmtc1): Likewise.
9812         (octeon_fpmfc1): Likewise.
9813         (octeon_fpload): Likewise.
9814         (octeon_fpstore): Likewise.
9815         * config/mips/mips-tables.opt: Regenerate.
9816         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9817
9818 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9819
9820         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9821         Allow CC mode if HAVE_cbranchcc4.
9822
9823 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9824
9825         * config/arc/arc.c (write_ext_corereg_1): Delete.
9826         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9827
9828 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9829
9830         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9831         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9832
9833 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9834
9835         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9836         (small_data_pattern_1): Delete.
9837         (small_data_pattern): Use FOR_EACH_SUBRTX.
9838
9839 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9840
9841         * config/arc/arc.c: Include rtl-iter.h.
9842         (arc_rewrite_small_data_1): Delete.
9843         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9844
9845 2014-11-02  Michael Collison  <michael.collison@linaro.org>
9846
9847         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9848         to support vector modes.
9849         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9850
9851 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
9852
9853         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
9854         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
9855         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9856         * optabs.c: (gen_move_insn): Move to expr.c.
9857         * expr.h: Move protypes and enums to optabs.h.
9858         * expr.c: (gen_move_insn): Relocate from optabs.c.
9859         * genemit.c (main): Include insn-codes.h.
9860         * gengtype.c (open_base_files): Include insn-codes.h.
9861         * asan.c: Include insn-codes.h.
9862         * bb-reorder.c: Ditto.
9863         * builtins.c: Ditto.
9864         * calls.c: Ditto.
9865         * cfgexpand.c: Ditto.
9866         * cilk-common.c: Ditto.
9867         * combine.c: Ditto.
9868         * dojump.c: Ditto.
9869         * dse.c: Ditto.
9870         * except.c: Ditto.
9871         * explow.c: Ditto.
9872         * expmed.c: Ditto.
9873         * function.c: Ditto.
9874         * ifcvt.c: Ditto.
9875         * internal-fn.c: Ditto.
9876         * loop-unroll.c: Ditto.
9877         * lra.c: Ditto.
9878         * modulo-sched.c: Ditto.
9879         * omp-low.c: Ditto.
9880         * postreload.c: Ditto.
9881         * ree.c: Ditto.
9882         * reload.c: Ditto.
9883         * reload1.c: Ditto.
9884         * shrink-wrap.c: Ditto.
9885         * simplify-rtx.c: Ditto.
9886         * stmt.c: Ditto.
9887         * target-globals.c: Ditto.
9888         * targhooks.c: Ditto.
9889         * toplev.c: Ditto.
9890         * tree-if-conv.c: Ditto.
9891         * tree-ssa-forwprop.c: Ditto.
9892         * tree-ssa-loop-prefetch.c: Ditto.
9893         * tree-ssa-math-opts.c: Ditto.
9894         * tree-ssa-phiopt.c: Ditto.
9895         * tree-ssa-reassoc.c: Ditto.
9896         * tree-switch-conversion.c: Ditto.
9897         * tree-vect-data-refs.c: Ditto.
9898         * tree-vect-generic.c: Ditto.
9899         * tree-vect-loop.c: Ditto.
9900         * tree-vect-patterns.c: Ditto.
9901         * tree-vect-slp.c: Ditto.
9902         * tree-vect-stmts.c: Ditto.
9903         * tree-vrp.c: Ditto.
9904         * value-prof.c: Ditto.
9905         * config/aarch64/aarch64-builtins.c: Ditto.
9906         * config/alpha/alpha.c: Ditto.
9907         * config/arm/arm.c: Ditto.
9908         * config/cris/cris.c: Ditto.
9909         * config/epiphany/epiphany.c: Ditto.
9910         * config/frv/frv.c: Ditto.
9911         * config/h8300/h8300.c: Ditto.
9912         * config/ia64/ia64.c: Ditto.
9913         * config/iq2000/iq2000.c: Ditto.
9914         * config/m32c/m32c.c: Ditto.
9915         * config/mep/mep.c: Ditto.
9916         * config/microblaze/microblaze.c: Ditto.
9917         * config/mips/mips.c: Ditto.
9918         * config/mn10300/mn10300.c: Ditto.
9919         * config/moxie/moxie.c: Ditto.
9920         * config/msp430/msp430.c: Ditto.
9921         * config/nios2/nios2.c: Ditto.
9922         * config/pa/pa.c: Ditto.
9923         * config/rl78/rl78.c: Ditto.
9924         * config/rs6000/rs6000.c: Ditto.
9925         * config/rx/rx.c: Ditto.
9926         * config/s390/s390.c: Ditto.
9927         * config/sh/sh.c: Ditto.
9928         * config/sh/sh_treg_combine.cc: Ditto.
9929         * config/spu/spu.c: Ditto.
9930         * config/stormy16/stormy16.c: Ditto.
9931         * config/tilegx/mul-tables.c: Ditto.
9932         * config/tilegx/tilegx.c: Ditto.
9933         * config/tilepro/mul-tables.c: Ditto.
9934         * config/tilepro/tilepro.c: Ditto.
9935         * config/vax/vax.c: Ditto.
9936
9937 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9938
9939         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9940         (CLEAR_BY_PIECES_P): Likewise.
9941         (SET_BY_PIECES_P): Likewise.
9942         (STORE_BY_PIECES_P): Likewise.
9943         * doc/tm.texi: Regenerate.
9944         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9945         SET_BY_PIECES_P, STORE_BY_PIECES_P.
9946         * expr.c (MOVE_BY_PIECES_P): Remove.
9947         (CLEAR_BY_PIECES_P): Likewise.
9948         (SET_BY_PIECES_P): Likewise.
9949         (STORE_BY_PIECES_P): Likewise.
9950         (can_move_by_pieces): Rewrite in terms of
9951         targetm.use_by_pieces_infrastructure_p.
9952         (emit_block_move_hints): Likewise.
9953         (can_store_by_pieces): Likewise.
9954         (store_by_pieces): Likewise.
9955         (clear_storage_hints): Likewise.
9956         (emit_push_insn): Likewise.
9957         (expand_constructor): Likewise.
9958
9959 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9960
9961         * config/aarch64/aarch64.c
9962         (aarch64_use_by_pieces_infrastructre_p): New.
9963         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9964         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9965
9966 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9967
9968         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9969         (STORE_BY_PIECES_P): Likewise.
9970         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9971         (mips_move_by_pieces_p): Rename to...
9972         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9973         parameters, use the default hook implementation as a
9974         fall-back.
9975
9976 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9977
9978         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9979         (sh_use_by_pieces_infrastructure_p): Likewise.
9980         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9981         (STORE_BY_PIECES_P): Likewise.
9982         (SET_BY_PIECES_P): Likewise.
9983
9984 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9985
9986         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9987         (arc_use_by_pieces_infrastructure_p): Likewise.
9988         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9989         (CAN_MOVE_BY_PIECES): Likewise.
9990
9991 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9992
9993         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9994         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9995         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9996         (CLEAR_BY_PIECES): Likewise.
9997         (SET_BY_PIECES): Likewise.
9998         (STORE_BY_PIECES): Likewise.
9999
10000 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10001
10002         * target.def (use_by_pieces_infrastructure_p): New.
10003         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
10004         is deprecated.
10005         (STORE_BY_PIECES_P): Likewise.
10006         (CLEAR_BY_PIECES_P): Likewise.
10007         (SET_BY_PIECES_P): Likewise.
10008         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
10009         * doc/tm.texi: Regenerate.
10010         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
10011         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
10012         (STORE_BY_PIECES_P): Likewise.
10013         (CLEAR_BY_PIECES_P): Likewise.
10014         (SET_BY_PIECES_P): Likewise.
10015         (STORE_MAX_PIECES): Move to...
10016         * defaults.h (STORE_MAX_PIECES): ...here.
10017         * targhooks.c (get_move_ratio): New.
10018         (default_use_by_pieces_infrastructure_p): Likewise.
10019         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
10020         * target.h (by_pieces_operation): New.
10021
10022 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
10023
10024         PR target/63702
10025         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
10026         assignment to 'nargs' variable.
10027
10028 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
10029
10030         PR target/63620
10031         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
10032         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
10033         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
10034         be reloaded through memory.
10035         (*pushxf): Ditto.
10036         (*pushdf): Ditto.
10037
10038 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
10039
10040         PR rtl-optimization/63659
10041         * ree.c (update_reg_equal_equiv_notes): New function.
10042         (combine_set_extension, transform_ifelse): Use it.
10043
10044 2014-10-31  Jeff Law  <law@redhat.com>
10045
10046         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
10047         and Jonny Grant (collect2).
10048
10049 2014-10-31  Richard Biener  <rguenther@suse.de>
10050
10051         * builtins.c (fold_builtin_atomic_always_lock_free): Use
10052         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
10053         approprate.
10054         (fold_builtin_expect): Likewise.
10055         (integer_valued_real_p): Likewise.
10056         * cfgexpand.c (expand_debug_expr): Likewise.
10057         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
10058         (find_foldable_builtin_expect): Likewise.
10059         * trans-mem.c (thread_private_new_memory): Likewise.
10060         * tree-affine.c (aff_combination_expand): Likewise.
10061         * tree-data-ref.c (initialize_matrix_A): Likewise.
10062         * tree-inline.c (copy_bb): Likewise.
10063         * tree-pretty-print.c (dump_function_name): Likewise.
10064         (print_call_name): Likewise.
10065         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
10066         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
10067         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
10068         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
10069         (vect_recog_widen_mult_pattern): Likewise.
10070         (vect_operation_fits_smaller_type): Likewise.
10071         * tree-vrp.c (find_assert_locations_1): Likewise.
10072         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
10073         converts to NOP_EXPR.
10074
10075 2014-10-31  Richard Biener  <rguenther@suse.de>
10076
10077         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
10078         CONVERT_EXPRs in generated code.
10079         (dt_simplify::gen): Likewise.
10080
10081 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
10082
10083         PR target/63534
10084         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
10085         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
10086         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
10087         using mcount in 32bit PIC mode.
10088         (ix86_elim_entry_set_got): New.
10089         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
10090         in PROLOGUE, delete initial if possible.
10091
10092 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10093
10094         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
10095         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
10096
10097 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10098
10099         PR tree-optimization/63259
10100         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
10101         rotation left if it is a 16 bit byte swap.
10102         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
10103         and RROTATE_EXPR statements if it is a byte rotation.
10104
10105 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
10106
10107         PR sanitizer/63697
10108         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
10109         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
10110         instead of vr0.min - vr1.min and vr0.max - vr1.max.
10111
10112 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10113
10114         PR ipa/63696
10115         * ipa-icf.c (sem_function::~sem_function): Change free to delete
10116         to avoid alloc-dealloc mismatch with new, called in
10117         ipa_icf::sem_function::init.
10118
10119 2014-10-30  Felix Yang  <felix.yang@huawei.com>
10120
10121         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
10122         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
10123         (xtensa_reorg, xtensa_reorg_loops): New.
10124         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
10125         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
10126         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
10127         (xtensa_doloop_hooks): Define.
10128         * config/xtensa/xtensa.md (doloop_end, loop_end): New
10129         (zero_cost_loop_start): Rewritten.
10130         (zero_cost_loop_end): Likewise.
10131
10132 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
10133
10134         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
10135
10136 2014-10-30  Richard Biener  <rguenther@suse.de>
10137
10138         * genmatch.c: Remove <map>, <utility> and <string> includes.
10139         Include ggc.h and hash-map.h.
10140         (ggc_internal_cleared_alloc): Provide stub definition.
10141         (ggc_free): Likewise.
10142         (struct capture_id_map_hasher): New traits for hash_map.
10143         (cid_map_t): New typedef.
10144         (everywhere else): Replace std::map use with cid_map_t.
10145         * hash-map.h (hash_map::elements): New member function.
10146         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
10147         hash-map.h and $(GGC_H) as dependency.
10148
10149 2014-10-30  Richard Biener  <rguenther@suse.de>
10150
10151         * genmatch.c (capture_info::walk_c_expr): Ignore capture
10152         uses inside TREE_TYPE ().
10153         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
10154         (find_candidates_dom_walker::before_dom_children): Likewise.
10155         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
10156         (replace_profitable_candidates): Likewise.
10157         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
10158         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
10159         * convert.c (convert_to_integer): Use CASE_CONVERT.
10160
10161 2014-10-30  Richard Biener  <rguenther@suse.de>
10162
10163         * match.pd: Implement more patterns that simplify to a single value.
10164         * fold-const.c (fold_binary_loc): Remove them here.
10165         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
10166         (fwprop_ssa_val): Remove restriction on single uses.
10167
10168 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10169
10170         * config/avr/driver-avr.c (avr_set_current_device): Remove.
10171
10172 2014-10-30  Martin Liska  <mliska@suse.cz>
10173
10174         PR ipa/63574
10175         PR ipa/63664
10176         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
10177         (func_checker::compare_gimple_label): Simlified comparison introduced.
10178         * ipa-icf-gimple.h: Missing comment added.
10179
10180 2014-10-30  Jeff Law  <law@redhat.com>
10181
10182         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
10183         argument from rtx to rtx_insn *.
10184         (compute_movmem_length, compute_clrmem_length): Likewise.
10185         (copy_fp_args, length_fp_args): Likewise.
10186         * config/pa/pa.c (legitimize_pic_address): Promote local variable
10187         "insn" from rtx to rtx_insn *.
10188         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
10189         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
10190         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
10191         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
10192         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
10193         (compute_movmem_length, compute_clrmem_length): Likewise.
10194         (copy_fp-args, length_fp_args): Likewise.
10195
10196 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10197
10198         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
10199         scalar typedef.
10200         (CUMULATIVE_ARGS): Guard against target includes.
10201         (machine_function): Likewise.
10202
10203 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10204
10205         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
10206         recog state after aarch64_prev_real_insn call.
10207
10208 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10209
10210         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
10211
10212 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10213
10214         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
10215         (struct machine_function): Gate definition on
10216         !defined(USED_FOR_TARGET).
10217
10218 2014-10-29  DJ Delorie  <dj@redhat.com>
10219
10220         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
10221
10222 2014-10-29  Martin Liska  <mliska@suse.cz>
10223
10224         PR ipa/63587
10225         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
10226         to local declarations.
10227         * function.c (add_local_decl): Implementation moved from header
10228         file, assert introduced for tree type.
10229         * function.h: Likewise.
10230
10231 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10232
10233         * godump.c (go_format_type): Represent "float _Complex" and
10234         "double _Complex" as complex64 or complex128 in Go, as appropriate.
10235
10236 2014-10-29  Richard Biener  <rguenther@suse.de>
10237
10238         * match.pd: Implement a first set of conversion patterns.
10239         * fold-const.c (fold_unary_loc): Remove them here.
10240         * tree-ssa-forwprop.c (simplify_vce): Remove.
10241         (pass_forwprop::execute): Do not call simplify_vce.
10242
10243 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10244
10245         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
10246         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
10247         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
10248         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
10249         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
10250         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
10251         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
10252         config/arc/arc.h, config/arc/predicates.md,
10253         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
10254         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
10255         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
10256         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
10257         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
10258         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
10259         config/cr16/cr16-protos.h, config/cr16/cr16.c,
10260         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
10261         config/darwin-protos.h, config/darwin.c,
10262         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
10263         config/epiphany/epiphany.md, config/fr30/fr30.c,
10264         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
10265         config/h8300/h8300-protos.h, config/h8300/h8300.c,
10266         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
10267         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
10268         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
10269         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
10270         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
10271         config/lm32/lm32-protos.h, config/lm32/lm32.c,
10272         config/m32c/m32c-protos.h, config/m32c/m32c.c,
10273         config/m32r/m32r-protos.h, config/m32r/m32r.c,
10274         config/m68k/m68k-protos.h, config/m68k/m68k.c,
10275         config/mcore/mcore-protos.h, config/mcore/mcore.c,
10276         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
10277         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
10278         config/mips/mips-protos.h, config/mips/mips.c,
10279         config/mmix/mmix-protos.h, config/mmix/mmix.c,
10280         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
10281         config/moxie/moxie.c, config/msp430/msp430-protos.h,
10282         config/msp430/msp430.c, config/nds32/nds32-cost.c,
10283         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
10284         config/nds32/nds32-protos.h, config/nds32/nds32.c,
10285         config/nios2/nios2-protos.h, config/nios2/nios2.c,
10286         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
10287         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
10288         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
10289         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
10290         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
10291         config/s390/predicates.md, config/s390/s390-protos.h,
10292         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
10293         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
10294         config/sh/sh.md, config/sparc/predicates.md,
10295         config/sparc/sparc-protos.h, config/sparc/sparc.c,
10296         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
10297         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
10298         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
10299         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
10300         config/tilepro/tilepro.c, config/v850/v850-protos.h,
10301         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
10302         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
10303         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
10304         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
10305         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
10306         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
10307         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
10308         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
10309         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
10310         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
10311         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
10312         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
10313         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
10314         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
10315         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
10316         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
10317         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
10318         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
10319         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
10320         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
10321         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
10322         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
10323         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
10324         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
10325         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
10326         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
10327         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
10328         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
10329         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
10330         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
10331         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
10332         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
10333         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
10334         var-tracking.c, varasm.c: Remove redundant enum from
10335         machine_mode.
10336         * gengtype.c (main): Treat machine_mode as a scalar typedef.
10337         * genmodes.c (emit_insn_modes_h): Hide inline functions if
10338         USED_FOR_TARGET.
10339
10340 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10341
10342         PR rtl-optimization/63340 (part 2)
10343         * rtl.h (invalid_mode_change_p): Delete.
10344         (valid_mode_changes_for_regno): New function.
10345         * reginfo.c (invalid_mode_change_p): Delete.
10346         (valid_mode_changes_for_regno): New function.
10347         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
10348         classes to registers that are allowed by valid_mode_changes_for_regno.
10349         (setup_regno_cost_classes_by_mode): Likewise.
10350         (print_allocno_costs): Remove invalid_mode_change_p test.
10351         (print_pseudo_costs, find_costs_and_classes): Likewise.
10352
10353 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10354
10355         PR rtl-optimization/63340 (part 1)
10356         * ira-costs.c (all_cost_classes): New variable.
10357         (complete_cost_classes): New function, split out from...
10358         (setup_cost_classes): ...here.
10359         (initiate_regno_cost_classes): Set up all_cost_classes.
10360         (restrict_cost_classes): New function.
10361         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
10362         registers that are valid for the register's mode.
10363         (setup_regno_cost_classes_by_mode): Model the mode cache as a
10364         restriction of all_cost_classes to a particular mode.
10365         (print_allocno_costs): Remove contains_reg_of_mode check.
10366         (print_pseudo_costs, find_costs_and_classes): Likewise.
10367
10368 2014-10-29  Richard Biener  <rguenther@suse.de>
10369
10370         PR tree-optimization/63666
10371         * tree-vect-slp.c (vect_get_mask_element): Properly handle
10372         accessing out-of-bound elements.
10373
10374 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10375             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10376             Anna Tikhonova  <anna.tikhonova@intel.com>
10377             Ilya Tocar  <ilya.tocar@intel.com>
10378             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10379             Ilya Verbin  <ilya.verbin@intel.com>
10380             Kirill Yukhin  <kirill.yukhin@intel.com>
10381             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10382
10383         * config/i386/i386.md
10384         (movhi_internal): Always detect maskmov.
10385         (movqi_internal): Fix target check.
10386
10387 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10388             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10389             Anna Tikhonova  <anna.tikhonova@intel.com>
10390             Ilya Tocar  <ilya.tocar@intel.com>
10391             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10392             Ilya Verbin  <ilya.verbin@intel.com>
10393             Kirill Yukhin  <kirill.yukhin@intel.com>
10394             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10395
10396         * config/i386/avx512bwintrin.h: Add new intrinsics.
10397         * config/i386/avx512vlbwintrin.h: Ditto.
10398         * config/i386/avx512vlintrin.h: Ditto.
10399
10400 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10401
10402         * godump.c (precision_to_units): New helper function.
10403         (go_append_artificial_name): Ditto.
10404         (go_append_decl_name): Ditto.
10405         (go_append_bitfield): Ditto.
10406         (go_get_uinttype_for_precision): Ditto.
10407         (go_append_padding): Ditto.
10408         (go_force_record_alignment): Ditto.
10409         (go_format_type): Represent unions with an array of uints of the size
10410         of the alignment in go.  This fixes the 'random' size of the union's
10411         representation using just the first field.
10412         (go_format_type): Add argument that indicates whether a record is
10413         nested (used for generation of artificial go names).
10414         (go_output_fndecl): Adapt to new go_format_type signature.
10415         (go_output_typedef): Ditto.
10416         (go_output_var): Ditto.
10417         (go_output_var): Prefer to output type as alias (typedef).
10418         (go_format_type): Bitfields in records are simulated as arrays of bytes
10419         in go.
10420
10421         * godump.c (go_format_type): Fix handling of arrays with zero elements.
10422
10423 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10424
10425         * cgraph.h: Flatten.  Remove all include files.
10426         (symbol_table::initialize): Move to cgraph.c.
10427         * cgraph.c: Adjust include files.
10428         (symbol_table::initialize): Relocate from cgraph.h.
10429         * gengtype.c (open_base_files): Adjust include files.
10430         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
10431         included files.
10432         * ipa-inline.h: Remove all include files.
10433         * ipa-prop.h: Ditto.
10434         * ipa-reference.h: Ditto.
10435         * ipa-utils.h: Ditto:
10436         * lto-streamer.h: Remove cgraph.h from include list.
10437         * asan.c: Adjust include files.
10438         * auto-profile.c: Ditto.
10439         * bb-reorder.c: Ditto.
10440         * calls.c: Ditto.
10441         * cfgexpand.c: Ditto.
10442         * cgraphbuild.c: Ditto.
10443         * cgraphclones.c: Ditto.
10444         * cgraphunit.c: Ditto.
10445         * combine.c: Ditto.
10446         * coverage.c: Ditto.
10447         * data-streamer.c: Ditto.
10448         * data-streamer-in.c: Ditto.
10449         * data-streamer-out.c: Ditto.
10450         * dbxout.c: Ditto.
10451         * dwarf2out.c: Ditto.
10452         * except.c: Ditto.
10453         * expr.c: Ditto.
10454         * final.c: Ditto.
10455         * fold-const.c: Ditto.
10456         * ggc-page.c: Ditto.
10457         * gimple-fold.c: Ditto.
10458         * gimple-iterator.c: Ditto.
10459         * gimple-pretty-print.c: Ditto.
10460         * gimple-streamer-in.c: Ditto.
10461         * gimple-streamer-out.c: Ditto.
10462         * gimplify.c: Ditto.
10463         * ipa.c: Ditto.
10464         * ipa-comdats.c: Ditto.
10465         * ipa-cp.c: Ditto.
10466         * ipa-devirt.c: Ditto.
10467         * ipa-icf.c: Ditto.
10468         * ipa-icf-gimple.c: Ditto.
10469         * ipa-inline-analysis.c: Ditto.
10470         * ipa-inline.c: Ditto.
10471         * ipa-inline-transform.c: Ditto.
10472         * ipa-polymorphic-call.c: Ditto.
10473         * ipa-profile.c: Ditto.
10474         * ipa-prop.c: Ditto.
10475         * ipa-pure-const.c: Ditto.
10476         * ipa-ref.c: Ditto.
10477         * ipa-reference.c: Ditto.
10478         * ipa-split.c: Ditto.
10479         * ipa-utils.c: Ditto.
10480         * ipa-visibility.c: Ditto.
10481         * langhooks.c: Ditto.
10482         * lto-cgraph.c: Ditto.
10483         * lto-compress.c: Ditto.
10484         * lto-opts.c: Ditto.
10485         * lto-section-in.c: Ditto.
10486         * lto-section-out.c: Ditto.
10487         * lto-streamer.c: Ditto.
10488         * lto-streamer-in.c: Ditto.
10489         * lto-streamer-out.c: Ditto.
10490         * omp-low.c: Ditto.
10491         * opts-global.c: Ditto.
10492         * passes.c: Ditto.
10493         * predict.c: Ditto.
10494         * print-tree.c: Ditto.
10495         * profile.c: Ditto.
10496         * ree.c: Ditto.
10497         * stor-layout.c: Ditto.
10498         * symtab.c: Ditto.
10499         * toplev.c: Ditto.
10500         * trans-mem.c: Ditto.
10501         * tree.c: Ditto.
10502         * tree-cfg.c: Ditto.
10503         * tree-eh.c: Ditto.
10504         * tree-emutls.c: Ditto.
10505         * tree-inline.c: Ditto.
10506         * tree-nested.c: Ditto.
10507         * tree-pretty-print.c: Ditto.
10508         * tree-profile.c: Ditto.
10509         * tree-sra.c: Ditto.
10510         * tree-ssa-alias.c: Ditto.
10511         * tree-ssa-loop-ivcanon.c: Ditto.
10512         * tree-ssa-loop-ivopts.c: Ditto.
10513         * tree-ssa-pre.c: Ditto.
10514         * tree-ssa-structalias.c: Ditto.
10515         * tree-streamer.c: Ditto.
10516         * tree-streamer-in.c: Ditto.
10517         * tree-streamer-out.c: Ditto.
10518         * tree-switch-conversion.c: Ditto.
10519         * tree-tailcall.c: Ditto.
10520         * tree-vect-data-refs.c: Ditto.
10521         * tree-vectorizer.c: Ditto.
10522         * tree-vect-stmts.c: Ditto.
10523         * tsan.c: Ditto.
10524         * ubsan.c: Ditto.
10525         * value-prof.c: Ditto.
10526         * varasm.c: Ditto.
10527         * varpool.c: Ditto.
10528         * config/arm/arm.c: Ditto.
10529         * config/bfin/bfin.c: Ditto.
10530         * config/c6x/c6x.c: Ditto.
10531         * config/cris/cris.c: Ditto.
10532         * config/darwin.c: Ditto.
10533         * config/darwin-c.c: Ditto.
10534         * config/i386/i386.c: Ditto.
10535         * config/i386/winnt.c: Ditto.
10536         * config/microblaze/microblaze.c: Ditto.
10537         * config/mips/mips.c: Ditto.
10538         * config/rs6000/rs6000.c: Ditto.
10539         * config/rx/rx.c: Ditto.
10540
10541 2014-10-28  Richard Biener  <rguenther@suse.de>
10542
10543         * gimple-fold.h (follow_single_use_edges): Declare.
10544         * gimple-fold.c (follow_single_use_edges): New function.
10545         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10546         * tree-ssa-propagate.c
10547         (substitute_and_fold_dom_walker::before_dom_children): Allow
10548         following single-use edges when folding stmts we propagated into.
10549
10550 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10551             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10552             Anna Tikhonova  <anna.tikhonova@intel.com>
10553             Ilya Tocar  <ilya.tocar@intel.com>
10554             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10555             Ilya Verbin  <ilya.verbin@intel.com>
10556             Kirill Yukhin  <kirill.yukhin@intel.com>
10557             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10558
10559         * config/i386/avx512bwintrin.h: New.
10560         * config/i386/avx512dqintrin.h: Ditto.
10561         * config/i386/avx512vlbwintrin.h: Ditto.
10562         * config/i386/avx512vldqintrin.h: Ditto.
10563         * config/i386/avx512vlintrin.h: Ditto.
10564         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10565         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10566
10567 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10568             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10569             Anna Tikhonova  <anna.tikhonova@intel.com>
10570             Ilya Tocar  <ilya.tocar@intel.com>
10571             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10572             Ilya Verbin  <ilya.verbin@intel.com>
10573             Kirill Yukhin  <kirill.yukhin@intel.com>
10574             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10575
10576         * config/i386/i386.c
10577         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10578         avx_shufpd256_mask, avx_vpermilv2df_mask.
10579
10580 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10581             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10582             Anna Tikhonova  <anna.tikhonova@intel.com>
10583             Ilya Tocar  <ilya.tocar@intel.com>
10584             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10585             Ilya Verbin  <ilya.verbin@intel.com>
10586             Kirill Yukhin  <kirill.yukhin@intel.com>
10587             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10588
10589         * config/i386/i386.c
10590         (ix86_init_mmx_sse_builtins):
10591         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10592         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10593         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10594         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10595         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10596         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10597         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10598         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10599         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10600         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10601         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10602         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10603         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10604         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10605         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10606         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10607         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10608         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10609
10610 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10611             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10612             Anna Tikhonova  <anna.tikhonova@intel.com>
10613             Ilya Tocar  <ilya.tocar@intel.com>
10614             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10615             Ilya Verbin  <ilya.verbin@intel.com>
10616             Kirill Yukhin  <kirill.yukhin@intel.com>
10617             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10618
10619         * config/i386/i386.c
10620         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10621         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10622         IX86_BUILTIN_GATHER3ALTDIV8SI.
10623         (ix86_expand_builtin):
10624         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10625         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10626         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10627         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10628         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10629         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10630         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10631         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10632         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10633         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10634         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10635         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10636         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10637         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10638         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10639         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10640         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10641         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10642         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10643         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10644
10645 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10646             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10647             Anna Tikhonova  <anna.tikhonova@intel.com>
10648             Ilya Tocar  <ilya.tocar@intel.com>
10649             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10650             Ilya Verbin  <ilya.verbin@intel.com>
10651             Kirill Yukhin  <kirill.yukhin@intel.com>
10652             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10653
10654         * config/i386/i386-builtin-types.def
10655         (SHORT): New.
10656         (V32HI): Ditto.
10657         (V12QI): Ditto.
10658         (V14QI): Ditto.
10659         (V32SI): Ditto.
10660         (V8UDI): Ditto.
10661         (V16USI): Ditto.
10662         (V32UHI): Ditto.
10663         (PSHORT): Ditto.
10664         (PV32QI): Ditto.
10665         (PV32HI): Ditto.
10666         (PV64QI): Ditto.
10667         (PCV8HI): Ditto.
10668         (PCV16QI): Ditto.
10669         (PCV16HI): Ditto.
10670         (PCV32QI): Ditto.
10671         (PCV32HI): Ditto.
10672         (PCV64QI): Ditto.
10673         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10674         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10675         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10676         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10677         (V16SF_FTYPE_V16HI): Ditto.
10678         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10679         (V16SF_FTYPE_V16SI): Ditto.
10680         (V4DI_FTYPE_V4DI): Ditto.
10681         (V16SI_FTYPE_V16SF): Ditto.
10682         (V8DI_FTYPE_PV2DI): Ditto.
10683         (V8DF_FTYPE_PV2DF): Ditto.
10684         (V4DI_FTYPE_PV2DI): Ditto.
10685         (V4DF_FTYPE_PV2DF): Ditto.
10686         (V16SI_FTYPE_PV2SI): Ditto.
10687         (V16SF_FTYPE_PV2SF): Ditto.
10688         (V8SF_FTYPE_FLOAT): Ditto.
10689         (V4SF_FTYPE_FLOAT): Ditto.
10690         (V4DF_FTYPE_DOUBLE): Ditto.
10691         (V8SF_FTYPE_PV4SF): Ditto.
10692         (V8SI_FTYPE_PV4SI): Ditto.
10693         (V4SI_FTYPE_PV2SI): Ditto.
10694         (V8SF_FTYPE_PV2SF): Ditto.
10695         (V8SI_FTYPE_PV2SI): Ditto.
10696         (V16SF_FTYPE_PV8SF): Ditto.
10697         (V16SI_FTYPE_PV8SI): Ditto.
10698         (V8DI_FTYPE_V8SF): Ditto.
10699         (V4DI_FTYPE_V4SF): Ditto.
10700         (V2DI_FTYPE_V4SF): Ditto.
10701         (V64QI_FTYPE_QI): Ditto.
10702         (V32HI_FTYPE_HI): Ditto.
10703         (V16UHI_FTYPE_V16UHI): Ditto.
10704         (V32UHI_FTYPE_V32UHI): Ditto.
10705         (V2UDI_FTYPE_V2UDI): Ditto.
10706         (V4UDI_FTYPE_V4UDI): Ditto.
10707         (V8UDI_FTYPE_V8UDI): Ditto.
10708         (V4USI_FTYPE_V4USI): Ditto.
10709         (V16USI_FTYPE_V16USI): Ditto.
10710         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10711         (V2DF_FTYPE_V8DF_INT): Ditto.
10712         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10713         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10714         (V8DF_FTYPE_V8DF_INT): Ditto.
10715         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10716         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10717         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10718         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10719         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10720         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10721         (V8DI_FTYPE_V8DI_INT): Ditto.
10722         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10723         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10724         (V8SF_FTYPE_V16SF_INT): Ditto.
10725         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10726         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10727         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10728         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10729         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10730         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10731         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10732         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10733         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10734         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10735         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10736         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10737         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10738         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10739         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10740         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10741         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10742         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10743         (V32HI_FTYPE_V32HI_INT): Ditto.
10744         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10745         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10746         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10747         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10748         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10749         (V8SI_FTYPE_V16SI_INT): Ditto.
10750         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10751         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10752         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10753         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10754         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10755         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10756         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10757         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10758         (V8DI_FTYPE_V64QI_V64QI): Ditto.
10759         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10760         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10761         (V2DI_FTYPE_V8DI_INT): Ditto.
10762         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10763         (QI_FTYPE_QI): Ditto.
10764         (SI_FTYPE_SI): Ditto.
10765         (DI_FTYPE_DI): Ditto.
10766         (HI_FTYPE_V16QI): Ditto.
10767         (SI_FTYPE_V32QI): Ditto.
10768         (DI_FTYPE_V64QI): Ditto.
10769         (QI_FTYPE_V8HI): Ditto.
10770         (HI_FTYPE_V16HI): Ditto.
10771         (SI_FTYPE_V32HI): Ditto.
10772         (QI_FTYPE_V4SI): Ditto.
10773         (QI_FTYPE_V8SI): Ditto.
10774         (HI_FTYPE_V16SI): Ditto.
10775         (QI_FTYPE_V2DI): Ditto.
10776         (QI_FTYPE_V4DI): Ditto.
10777         (QI_FTYPE_V8DI): Ditto.
10778         (V16QI_FTYPE_HI): Ditto.
10779         (V32QI_FTYPE_SI): Ditto.
10780         (V64QI_FTYPE_DI): Ditto.
10781         (V8HI_FTYPE_QI): Ditto.
10782         (V16HI_FTYPE_HI): Ditto.
10783         (V32HI_FTYPE_SI): Ditto.
10784         (V4SI_FTYPE_QI): Ditto.
10785         (V4SI_FTYPE_HI): Ditto.
10786         (V8SI_FTYPE_QI): Ditto.
10787         (V8SI_FTYPE_HI): Ditto.
10788         (V2DI_FTYPE_QI): Ditto.
10789         (V4DI_FTYPE_QI): Ditto.
10790         (QI_FTYPE_QI_QI): Ditto.
10791         (SI_FTYPE_SI_SI): Ditto.
10792         (DI_FTYPE_DI_DI): Ditto.
10793         (QI_FTYPE_QI_INT): Ditto.
10794         (SI_FTYPE_SI_INT): Ditto.
10795         (DI_FTYPE_DI_INT): Ditto.
10796         (HI_FTYPE_V16QI_V16QI): Ditto.
10797         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10798         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10799         (SI_FTYPE_V32QI_V32QI): Ditto.
10800         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10801         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10802         (DI_FTYPE_V64QI_V64QI): Ditto.
10803         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10804         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10805         (QI_FTYPE_V8HI_V8HI): Ditto.
10806         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10807         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10808         (HI_FTYPE_V16HI_V16HI): Ditto.
10809         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10810         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10811         (SI_FTYPE_V32HI_V32HI): Ditto.
10812         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10813         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10814         (QI_FTYPE_V4SI_V4SI): Ditto.
10815         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10816         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10817         (QI_FTYPE_V8SI_V8SI): Ditto.
10818         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10819         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10820         (QI_FTYPE_V2DI_V2DI): Ditto.
10821         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10822         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10823         (QI_FTYPE_V4DI_V4DI): Ditto.
10824         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10825         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10826         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10827         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10828         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10829         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10830         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10831         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10832         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10833         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10834         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10835         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10836         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10837         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10838         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10839         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10840         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10841         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10842         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10843         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10844         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10845         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10846         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10847         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10848         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10849         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10850         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10851         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10852         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10853         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10854         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10855         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10856         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10857         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10858         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10859         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10860         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10861         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10862         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10863         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10864         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10865         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10866         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10867         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10868         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10869         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10870         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10871         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10872         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10873         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10874         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10875         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10876         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10877         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10878         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10879         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10880         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10881         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10882         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10883         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10884         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10885         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10886         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10887         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10888         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10889         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10890         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10891         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10892         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10893         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10894         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10895         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10896         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10897         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10898         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10899         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10900         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10901         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10902         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10903         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10904         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10905         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10906         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10907         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10908         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10909         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10910         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10911         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10912         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10913         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10914         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10915         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10916         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10917         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10918         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10919         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10920         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10921         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10922         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10923         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10924         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10925         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10926         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10927         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10928         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10929         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10930         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10931         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10932         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10933         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10934         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10935         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10936         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10937         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10938         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10939         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10940         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10941         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10942         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10943         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10944         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10945         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10946         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10947         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10948         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10949         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10950         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10951         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10952         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10953         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10954         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10955         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10956         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10957         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10958         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10959         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10960         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10961         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10962         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10963         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10964         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10965         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10966         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10967         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10968         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10969         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10970         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10971         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10972         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10973         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10974         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10975         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10976         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10977         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10978         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10979         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10980         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10981         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10982         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10983         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10984         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10985         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10986         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10987         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10988         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10989         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10990         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10991         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10992         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10993         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10994         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10995         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10996         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10997         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10998         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10999         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
11000         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
11001         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
11002         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
11003         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
11004         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
11005         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
11006         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
11007         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
11008         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
11009         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
11010         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
11011         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
11012         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
11013         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
11014         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
11015         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
11016         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
11017         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
11018         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
11019         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
11020         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
11021         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
11022         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
11023         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
11024         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
11025         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
11026         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
11027         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
11028         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
11029         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
11030         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
11031         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
11032         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
11033         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
11034         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
11035         (QI_FTYPE_V8DF_INT): Ditto.
11036         (QI_FTYPE_V4DF_INT): Ditto.
11037         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
11038         (QI_FTYPE_V2DF_INT): Ditto.
11039         (HI_FTYPE_V16SF_INT): Ditto.
11040         (QI_FTYPE_V8SF_INT): Ditto.
11041         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
11042         (QI_FTYPE_V4SF_INT): Ditto.
11043         (QI_FTYPE_V8DF_INT_QI): Ditto.
11044         (QI_FTYPE_V4DF_INT_QI): Ditto.
11045         (QI_FTYPE_V2DF_INT_QI): Ditto.
11046         (HI_FTYPE_V16SF_INT_HI): Ditto.
11047         (QI_FTYPE_V8SF_INT_QI): Ditto.
11048         (QI_FTYPE_V4SF_INT_QI): Ditto.
11049         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
11050         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
11051         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
11052         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
11053         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
11054         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
11055         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
11056         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
11057         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
11058         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
11059         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
11060         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
11061         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
11062         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
11063         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
11064         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
11065         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
11066         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
11067         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
11068         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
11069         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
11070         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
11071         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
11072         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
11073         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
11074         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
11075         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
11076         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
11077         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
11078         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
11079         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
11080         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
11081         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
11082         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
11083         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
11084         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
11085         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
11086         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
11087         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
11088         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
11089         (V8DI_FTYPE_V8DI_INT): Ditto.
11090         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
11091         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
11092         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
11093         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
11094         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
11095         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
11096         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
11097         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
11098         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
11099         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
11100         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
11101         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
11102         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
11103         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
11104         * config/i386/i386.c (ix86_builtins):
11105         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
11106         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
11107         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
11108         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
11109         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
11110         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
11111         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
11112         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
11113         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
11114         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
11115         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
11116         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
11117         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
11118         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
11119         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
11120         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
11121         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
11122         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
11123         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
11124         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
11125         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
11126         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
11127         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
11128         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
11129         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
11130         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
11131         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
11132         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
11133         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
11134         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
11135         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
11136         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
11137         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
11138         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
11139         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
11140         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
11141         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
11142         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
11143         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
11144         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
11145         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
11146         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
11147         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
11148         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
11149         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
11150         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
11151         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
11152         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
11153         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
11154         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
11155         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
11156         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
11157         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
11158         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
11159         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
11160         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
11161         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
11162         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
11163         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
11164         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
11165         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
11166         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
11167         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
11168         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
11169         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
11170         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
11171         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
11172         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
11173         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
11174         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
11175         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
11176         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
11177         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
11178         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
11179         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
11180         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
11181         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
11182         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
11183         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
11184         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
11185         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
11186         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
11187         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
11188         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
11189         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
11190         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
11191         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
11192         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
11193         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
11194         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
11195         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
11196         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
11197         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
11198         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
11199         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
11200         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
11201         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
11202         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
11203         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
11204         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
11205         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
11206         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
11207         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
11208         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
11209         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
11210         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
11211         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
11212         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
11213         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
11214         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
11215         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
11216         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
11217         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
11218         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
11219         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
11220         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
11221         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
11222         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
11223         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
11224         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
11225         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
11226         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
11227         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
11228         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
11229         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
11230         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
11231         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
11232         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
11233         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
11234         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
11235         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
11236         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
11237         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
11238         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
11239         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
11240         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
11241         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
11242         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
11243         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
11244         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
11245         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
11246         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
11247         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
11248         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
11249         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
11250         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
11251         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
11252         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
11253         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
11254         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
11255         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
11256         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
11257         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
11258         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
11259         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
11260         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
11261         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
11262         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
11263         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
11264         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
11265         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
11266         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
11267         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
11268         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
11269         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
11270         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
11271         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
11272         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
11273         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
11274         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
11275         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
11276         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
11277         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
11278         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
11279         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
11280         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
11281         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
11282         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
11283         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
11284         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
11285         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
11286         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
11287         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
11288         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
11289         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
11290         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
11291         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
11292         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
11293         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
11294         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
11295         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
11296         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
11297         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
11298         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
11299         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
11300         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
11301         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
11302         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
11303         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
11304         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
11305         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
11306         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
11307         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
11308         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
11309         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
11310         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
11311         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
11312         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
11313         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
11314         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
11315         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
11316         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
11317         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
11318         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
11319         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
11320         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
11321         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
11322         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
11323         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
11324         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
11325         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
11326         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
11327         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
11328         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
11329         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
11330         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
11331         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
11332         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
11333         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
11334         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
11335         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
11336         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
11337         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
11338         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
11339         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
11340         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
11341         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
11342         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
11343         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
11344         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
11345         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
11346         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
11347         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
11348         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
11349         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
11350         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
11351         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
11352         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
11353         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
11354         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
11355         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
11356         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
11357         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
11358         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
11359         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
11360         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
11361         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
11362         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
11363         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
11364         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
11365         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
11366         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
11367         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
11368         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
11369         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
11370         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
11371         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
11372         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
11373         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
11374         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
11375         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
11376         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
11377         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
11378         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
11379         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
11380         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
11381         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
11382         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
11383         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
11384         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
11385         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
11386         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
11387         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
11388         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
11389         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
11390         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
11391         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
11392         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
11393         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
11394         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
11395         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
11396         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
11397         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
11398         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
11399         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
11400         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
11401         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
11402         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
11403         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
11404         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
11405         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
11406         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
11407         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
11408         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
11409         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
11410         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
11411         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
11412         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
11413         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
11414         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
11415         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
11416         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
11417         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
11418         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
11419         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
11420         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
11421         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
11422         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
11423         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
11424         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
11425         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
11426         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
11427         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
11428         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
11429         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
11430         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
11431         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
11432         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
11433         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
11434         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
11435         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
11436         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
11437         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
11438         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
11439         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
11440         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
11441         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
11442         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
11443         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
11444         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
11445         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
11446         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
11447         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
11448         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
11449         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
11450         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
11451         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
11452         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
11453         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
11454         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
11455         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
11456         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
11457         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
11458         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
11459         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
11460         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
11461         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
11462         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
11463         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
11464         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
11465         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
11466         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
11467         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
11468         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
11469         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
11470         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
11471         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
11472         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
11473         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
11474         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
11475         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
11476         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
11477         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
11478         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
11479         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
11480         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
11481         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
11482         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
11483         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
11484         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
11485         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
11486         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
11487         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
11488         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
11489         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
11490         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
11491         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
11492         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
11493         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
11494         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
11495         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
11496         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
11497         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
11498         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
11499         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
11500         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
11501         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
11502         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
11503         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
11504         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
11505         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
11506         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
11507         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
11508         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
11509         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
11510         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
11511         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
11512         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
11513         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
11514         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
11515         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
11516         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
11517         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
11518         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
11519         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
11520         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
11521         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
11522         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
11523         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
11524         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
11525         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
11526         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
11527         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
11528         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
11529         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
11530         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
11531         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
11532         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
11533         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
11534         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
11535         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
11536         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
11537         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
11538         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
11539         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
11540         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11541         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11542         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11543         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11544         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11545         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11546         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11547         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11548         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11549         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11550         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11551         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11552         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11553         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11554         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11555         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11556         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11557         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11558         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11559         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11560         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11561         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11562         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11563         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11564         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11565         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11566         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11567         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11568         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11569         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11570         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11571         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11572         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11573         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11574         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11575         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11576         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11577         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11578         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11579         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11580         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11581         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11582         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11583         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11584         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11585         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11586         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11587         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11588         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11589         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11590         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11591         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11592         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11593         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11594         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11595         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11596         (bdesc_special_args):
11597         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11598         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11599         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11600         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11601         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11602         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11603         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11604         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11605         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11606         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11607         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11608         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11609         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11610         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11611         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11612         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11613         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11614         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11615         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11616         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11617         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11618         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11619         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11620         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11621         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11622         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11623         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11624         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11625         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11626         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11627         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11628         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11629         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11630         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11631         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11632         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11633         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11634         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11635         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11636         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11637         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11638         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11639         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11640         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11641         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11642         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11643         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11644         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11645         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11646         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11647         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11648         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11649         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11650         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11651         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11652         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11653         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11654         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11655         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11656         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11657         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11658         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11659         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11660         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11661         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11662         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11663         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11664         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11665         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11666         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11667         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11668         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11669         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11670         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11671         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11672         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11673         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11674         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11675         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11676         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11677         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11678         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11679         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11680         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11681         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11682         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11683         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11684         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11685         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11686         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11687         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11688         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11689         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11690         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11691         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11692         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11693         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11694         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11695         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11696         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11697         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11698         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11699         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11700         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11701         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11702         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11703         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11704         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11705         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11706         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11707         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11708         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11709         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11710         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11711         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11712         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11713         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11714         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11715         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11716         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11717         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11718         __builtin_ia32_reducesd, __builtin_ia32_reducess,
11719         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11720         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11721         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11722         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11723         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11724         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11725         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11726         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11727         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11728         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11729         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11730         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11731         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11732         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11733         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11734         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11735         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11736         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11737         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11738         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11739         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11740         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11741         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11742         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11743         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11744         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11745         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11746         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11747         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11748         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11749         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11750         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11751         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11752         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11753         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11754         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11755         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11756         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11757         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11758         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11759         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11760         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11761         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11762         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11763         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11764         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11765         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11766         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11767         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11768         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11769         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11770         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11771         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11772         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11773         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11774         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11775         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11776         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11777         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11778         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11779         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11780         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11781         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11782         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11783         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11784         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11785         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11786         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11787         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11788         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11789         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11790         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11791         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11792         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11793         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11794         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11795         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11796         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11797         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11798         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11799         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11800         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11801         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11802         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11803         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11804         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11805         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11806         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11807         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11808         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11809         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11810         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11811         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11812         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11813         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11814         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11815         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11816         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11817         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11818         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11819         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11820         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11821         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11822         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11823         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11824         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11825         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11826         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11827         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11828         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11829         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11830         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11831         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11832         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11833         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11834         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11835         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11836         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11837         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11838         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11839         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11840         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11841         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11842         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11843         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11844         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11845         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11846         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11847         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11848         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11849         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11850         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11851         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11852         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11853         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11854         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11855         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11856         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11857         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11858         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11859         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11860         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11861         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11862         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11863         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11864         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11865         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11866         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11867         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11868         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11869         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11870         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11871         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11872         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11873         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11874         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11875         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11876         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11877         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11878         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11879         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11880         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11881         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11882         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11883         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11884         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11885         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11886         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11887         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11888         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11889         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11890         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11891         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11892         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11893         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11894         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11895         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11896         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11897         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11898         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11899         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11900         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11901         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11902         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11903         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11904         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11905         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11906         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11907         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11908         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11909         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11910         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11911         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11912         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11913         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11914         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11915         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11916         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11917         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11918         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11919         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11920         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11921         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11922         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11923         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11924         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11925         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11926         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11927         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11928         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11929         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11930         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11931         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11932         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11933         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11934         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11935         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11936         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11937         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11938         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11939         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11940         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11941         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11942         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11943         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11944         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11945         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11946         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11947         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11948         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11949         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11950         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11951         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11952         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11953         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11954         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11955         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11956         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11957         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11958         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11959         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11960         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11961         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11962         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11963         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11964         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11965         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11966         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11967         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11968         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11969         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11970         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11971         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11972         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11973         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11974         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11975         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11976         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11977         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11978         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11979         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11980         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11981         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11982         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11983         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11984         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11985         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11986         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11987         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11988         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11989         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11990         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11991         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11992         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11993         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11994         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11995         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11996         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11997         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11998         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11999         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
12000         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
12001         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
12002         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
12003         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
12004         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
12005         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
12006         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
12007         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
12008         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
12009         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
12010         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
12011         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
12012         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
12013         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
12014         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
12015         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
12016         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
12017         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
12018         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
12019         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
12020         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
12021         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
12022         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
12023         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
12024         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
12025         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
12026         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
12027         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
12028         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
12029         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
12030         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
12031         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
12032         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
12033         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
12034         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
12035         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
12036         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
12037         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
12038         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
12039         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
12040         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
12041         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
12042         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
12043         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
12044         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
12045         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
12046         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
12047         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
12048         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
12049         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
12050         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
12051         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
12052         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
12053         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
12054         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
12055         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
12056         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
12057         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
12058         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
12059         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
12060         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
12061         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
12062         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
12063         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
12064         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
12065         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
12066         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
12067         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
12068         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
12069         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
12070         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
12071         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
12072         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
12073         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
12074         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
12075         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
12076         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
12077         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
12078         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
12079         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
12080         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
12081         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
12082         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
12083         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
12084         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
12085         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
12086         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
12087         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
12088         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
12089         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
12090         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
12091         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
12092         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
12093         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
12094         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
12095         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
12096         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
12097         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
12098         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
12099         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
12100         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
12101         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
12102         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
12103         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
12104         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
12105         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
12106         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
12107         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
12108         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
12109         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
12110         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
12111         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
12112         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
12113         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
12114         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
12115         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
12116         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
12117         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
12118         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
12119         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
12120         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
12121         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
12122         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
12123         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
12124         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
12125         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
12126         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
12127         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
12128         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
12129         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
12130         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
12131         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
12132         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
12133         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
12134         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
12135         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
12136         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
12137         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
12138         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
12139         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
12140         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
12141         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
12142         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
12143         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
12144         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
12145         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
12146         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
12147         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
12148         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
12149         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
12150         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
12151         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
12152         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
12153         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
12154         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
12155         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
12156         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
12157         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
12158         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
12159         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
12160         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
12161         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
12162         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
12163         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
12164         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
12165         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
12166         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
12167         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
12168         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
12169         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
12170         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
12171         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
12172         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
12173         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
12174         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
12175         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
12176         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
12177         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
12178         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
12179         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
12180         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
12181         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
12182         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
12183         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
12184         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
12185         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
12186         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
12187         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
12188         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
12189         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
12190         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
12191         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
12192         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
12193         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
12194         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
12195         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
12196         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
12197         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
12198         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
12199         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
12200         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
12201         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
12202         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
12203         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
12204         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
12205         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
12206
12207 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
12208
12209         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
12210         type for the left shift in CASE_CONVERT case.
12211
12212 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
12213
12214         * asan.h (asan_intercepted_p): New function.
12215         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
12216         hash value construction.  Call iterative_hash_expr instead of explicit
12217         hash building.
12218         (asan_mem_ref_hasher::equal): Change condition.
12219         (has_mem_ref_been_instrumented): Likewise.
12220         (update_mem_ref_hash_table): Likewise.
12221         (maybe_update_mem_ref_hash_table): New function.
12222         (instrument_strlen_call): Removed.
12223         (get_mem_refs_of_builtin_call): Handle new parameter.
12224         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
12225         of instrument_mem_region_access if intercepted_p is true.
12226         (instrument_mem_region_access): Instrument only base with len instead of
12227         base and end with 1.
12228         (build_check_stmt): Remove start_instrumented and end_instrumented
12229         parameters.
12230         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
12231         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
12232         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
12233         * builtins.c (expand_builtin): Include asan.h.  Don't expand
12234         string/memory builtin functions that have interceptors if ASan is
12235         enabled.
12236
12237 2014-10-28  Richard Biener  <rguenther@suse.de>
12238
12239         PR middle-end/63665
12240         * fold-const.c (fold_comparison): Properly guard simplifying
12241         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
12242
12243 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
12244
12245         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
12246         * fold-const.c (const_binop): Likewise.
12247         * cfgexpand.c (expand_debug_expr): Likewise.
12248         * tree-inline.c (estimate_operator_cost): Likewise.
12249         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
12250         * optabs.c (optab_for_tree_code): Likewise.
12251         (expand_vec_shift_expr): Likewise, update comment.
12252         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
12253         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
12254         * optabs.def: Remove vec_shl_optab.
12255         * doc/md.texi: Remove references to vec_shr_m.
12256
12257 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
12258
12259         * asan.c (report_error_func): Add noabort path.
12260         (check_func): Ditto.  Formatting.
12261         (asan_expand_check_ifn): Handle noabort path.
12262         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
12263         to default value.
12264         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
12265         * opts.c (finish_options): Reword comment.
12266         * sanitizer.def: Add noabort ASan builtins.
12267
12268 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
12269
12270         * asan.c (set_asan_shadow_offset): New function.
12271         (asan_shadow_offset): Likewise.
12272         (asan_emit_stack_protection): Call asan_shadow_offset.
12273         (build_shadow_mem_access): Likewise.
12274         * asan.h (set_asan_shadow_offset): Declare.
12275         * common.opt (fasan-shadow-offset): New option.
12276         (frandom-seed): Fixed parameter name.
12277         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
12278         (frandom-seed): Fixed parameter name.
12279         * opts-global.c (handle_common_deferred_options): Handle
12280         -fasan-shadow-offset.
12281         * opts.c (common_handle_option): Likewise.
12282
12283 2014-10-27  Jiong Wang <jiong.wang@arm.com>
12284
12285         PR target/63442
12286         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
12287
12288 2014-10-27  DJ Delorie  <dj@redhat.com>
12289
12290         * tree.c (build_common_tree_nodes): Don't even store the
12291         __int128 types if they're not supported.
12292
12293 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12294
12295         * config/i386/i386.c (ix86_loop_memcount): Delete.
12296         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
12297
12298 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12299
12300         * config/i386/i386.c (find_constant_1): Delete.
12301         (find_constant): Use FOR_EACH_SUBRTX.
12302
12303 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12304
12305         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
12306         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
12307
12308 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12309
12310         * config/i386/i386.c: Include rtl-iter.h
12311         (ix86_check_avx256_register): Take a const_rtx and return a bool.
12312         (ix86_check_avx256_stores): Update call accordingly.
12313         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
12314         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
12315
12316 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12317
12318         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
12319         Take an rtx and return a bool.
12320         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
12321         Use FOR_EACH_SUBRTX_VAR.
12322         * config/alpha/predicates.md (some_small_symbolic_operand): Update
12323         accordingly.
12324
12325 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12326
12327         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
12328         a bool.
12329         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
12330         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
12331
12332 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12333
12334         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
12335         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
12336
12337 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12338
12339         * config/alpha/alpha.c: Include rtl-iter.h.
12340         (split_small_symbolic_operand_1): Delete.
12341         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
12342
12343 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12344
12345         * config/s390/s390.c: Include rtl-iter.h.
12346         (check_dpu): Delete.
12347         (s390_loop_unroll_adjust): Only iterate over patterns.
12348         Use FOR_EACH_SUBRTX.
12349
12350 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12351
12352         * config/spu/spu.c: Include rtl-iter.h
12353         (ea_symbol_ref): Replace with...
12354         (ea_symbol_ref_p): ...this new function.
12355         (spu_legitimate_address_p): Update call accordingly.
12356         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
12357
12358 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
12359             Tom Tromey  <tromey@redhat.com>
12360
12361         * aclocal.m4, configure: Rebuild.
12362         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
12363         * configure.ac: Use GCC_ENABLE_PLUGINS.
12364         * stor-layout.c (finish_bitfield_layout): Now public.  Change
12365         argument type to 'tree'.
12366         (finish_record_layout): Update.
12367         * stor-layout.h (finish_bitfield_layout): Declare.
12368
12369 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12370
12371         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
12372         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12373         Restore, enable for bigendian, update to use __builtin..._scal...
12374
12375 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12376
12377         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
12378         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
12379         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
12380         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
12381
12382         * config/aarch64/aarch64-simd.md
12383         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
12384         (reduc_<maxmin_uns>_internal<mode>): ...this.
12385         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
12386         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
12387
12388         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
12389         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
12390         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
12391
12392         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
12393         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
12394         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
12395         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
12396         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
12397         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
12398         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
12399         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
12400
12401 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12402
12403         * config/aarch64/aarch64-simd-builtins.def
12404         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
12405         Remove.
12406         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
12407
12408         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
12409         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
12410
12411         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
12412         (aarch64_reduc_plus_internal<mode>): ...this.
12413
12414         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
12415         (aarch64_reduc_plus_internalv2si): ...this.
12416
12417         (reduc_splus_<mode>/V2F): Rename to...
12418         (aarch64_reduc_plus_internal<mode>): ...this.
12419
12420         * config/aarch64/iterators.md
12421         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
12422         (UNSPEC_ADDV): New.
12423         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
12424
12425         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
12426         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
12427         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
12428         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
12429         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
12430
12431 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12432
12433         PR tree-optimization/61114
12434         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
12435         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
12436
12437         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
12438         back to old reduc_... + BIT_FIELD_REF only if not.
12439
12440         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
12441         return the reduce-to-scalar (reduc_..._scal) optab.
12442         (scalar_reduc_to_vector): New.
12443
12444         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
12445         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
12446         New.
12447
12448         * optabs.h (scalar_reduc_to_vector): Declare.
12449
12450         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
12451         to either scalar or vector.
12452
12453 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12454
12455         PR tree-optimization/61114
12456         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
12457         extract_bit_field around optab result.
12458
12459         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
12460         scalar not vector.
12461
12462         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
12463         for REDUC_{MIN,MAX,PLUS}_EXPR.
12464
12465         * tree-vect-loop.c (vect_analyze_loop): Update comment.
12466         (vect_create_epilog_for_reduction): For direct vector reduction, use
12467         result of tree code directly without extract_bit_field.
12468
12469         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
12470         comment.
12471
12472 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
12473
12474         * basic-block.h: Remove all includes.
12475         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
12476         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
12477         * Makefile.in (GTFILES): Add cfg.h to list.
12478         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
12479         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
12480         * genconditions.c (write_header): Add predict.h and basic-block.h to
12481         lits of includes.
12482         * genemit.c (main): Ditto.
12483         * genpreds.c (write_insn_preds_c): Ditto.
12484         * genrecog.c (write_header): Ditto.
12485         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
12486         to list of includes.
12487         * alias.c: Adjust include files.
12488         * asan.c: Ditto.
12489         * auto-inc-dec.c: Ditto.
12490         * auto-profile.c: Ditto.
12491         * bb-reorder.c: Ditto.
12492         * bt-load.c: Ditto.
12493         * builtins.c: Ditto.
12494         * caller-save.c: Ditto.
12495         * calls.c: Ditto.
12496         * cfg.c: Ditto.
12497         * cfganal.c: Ditto.
12498         * cfgbuild.c: Ditto.
12499         * cfgcleanup.c: Ditto.
12500         * cfgexpand.c: Ditto.
12501         * cfghooks.c: Ditto.
12502         * cfgloop.c: Ditto.
12503         * cfgloopanal.c: Ditto.
12504         * cfgloopmanip.c: Ditto.
12505         * cfgrtl.c: Ditto.
12506         * cgraphbuild.c: Ditto.
12507         * cgraphclones.c: Ditto.
12508         * cgraphunit.c: Ditto.
12509         * combine-stack-adj.c: Ditto.
12510         * combine.c: Ditto.
12511         * compare-elim.c: Ditto.
12512         * coverage.c: Ditto.
12513         * cprop.c: Ditto.
12514         * cse.c: Ditto.
12515         * cselib.c: Ditto.
12516         * data-streamer-in.c: Ditto.
12517         * data-streamer-out.c: Ditto.
12518         * data-streamer.c: Ditto.
12519         * dce.c: Ditto.
12520         * ddg.c: Ditto.
12521         * ddg.h: Ditto.
12522         * df-core.c: Ditto.
12523         * df-problems.c: Ditto.
12524         * df-scan.c: Ditto.
12525         * df.h: Ditto.
12526         * dojump.c: Ditto.
12527         * dominance.c: Ditto.
12528         * domwalk.c: Ditto.
12529         * dse.c: Ditto.
12530         * dwarf2cfi.c: Ditto.
12531         * emit-rtl.c: Ditto.
12532         * et-forest.c: Ditto.
12533         * except.c: Ditto.
12534         * expmed.c: Ditto.
12535         * expr.c: Ditto.
12536         * final.c: Ditto.
12537         * fold-const.c: Ditto.
12538         * function.c: Ditto.
12539         * fwprop.c: Ditto.
12540         * gcc-plugin.h: Ditto.
12541         * gcse.c: Ditto.
12542         * generic-match-head.c: Ditto.
12543         * ggc-page.c: Ditto.
12544         * gimple-builder.c: Ditto.
12545         * gimple-expr.c: Ditto.
12546         * gimple-fold.c: Ditto.
12547         * gimple-iterator.c: Ditto.
12548         * gimple-low.c: Ditto.
12549         * gimple-match-head.c: Ditto.
12550         * gimple-pretty-print.c: Ditto.
12551         * gimple-ssa-isolate-paths.c: Ditto.
12552         * gimple-ssa-strength-reduction.c: Ditto.
12553         * gimple-streamer-in.c: Ditto.
12554         * gimple-streamer-out.c: Ditto.
12555         * gimple-streamer.h: Ditto.
12556         * gimple-walk.c: Ditto.
12557         * gimple.c: Ditto.
12558         * gimplify-me.c: Ditto.
12559         * gimplify.c: Ditto.
12560         * graph.c: Ditto.
12561         * graphite-blocking.c: Ditto.
12562         * graphite-clast-to-gimple.c: Ditto.
12563         * graphite-dependences.c: Ditto.
12564         * graphite-interchange.c: Ditto.
12565         * graphite-isl-ast-to-gimple.c: Ditto.
12566         * graphite-optimize-isl.c: Ditto.
12567         * graphite-poly.c: Ditto.
12568         * graphite-scop-detection.c: Ditto.
12569         * graphite-sese-to-poly.c: Ditto.
12570         * graphite.c: Ditto.
12571         * haifa-sched.c: Ditto.
12572         * hw-doloop.c: Ditto.
12573         * ifcvt.c: Ditto.
12574         * init-regs.c: Ditto.
12575         * internal-fn.c: Ditto.
12576         * ipa-cp.c: Ditto.
12577         * ipa-devirt.c: Ditto.
12578         * ipa-icf-gimple.c: Ditto.
12579         * ipa-icf.c: Ditto.
12580         * ipa-inline-analysis.c: Ditto.
12581         * ipa-inline.c: Ditto.
12582         * ipa-polymorphic-call.c: Ditto.
12583         * ipa-profile.c: Ditto.
12584         * ipa-prop.c: Ditto.
12585         * ipa-pure-const.c: Ditto.
12586         * ipa-reference.c: Ditto.
12587         * ipa-split.c: Ditto.
12588         * ipa-utils.c: Ditto.
12589         * ipa.c: Ditto.
12590         * ira-build.c: Ditto.
12591         * ira-color.c: Ditto.
12592         * ira-conflicts.c: Ditto.
12593         * ira-costs.c: Ditto.
12594         * ira-emit.c: Ditto.
12595         * ira-lives.c: Ditto.
12596         * ira.c: Ditto.
12597         * jump.c: Ditto.
12598         * lcm.c: Ditto.
12599         * loop-doloop.c: Ditto.
12600         * loop-init.c: Ditto.
12601         * loop-invariant.c: Ditto.
12602         * loop-iv.c: Ditto.
12603         * loop-unroll.c: Ditto.
12604         * lower-subreg.c: Ditto.
12605         * lra-assigns.c: Ditto.
12606         * lra-coalesce.c: Ditto.
12607         * lra-constraints.c: Ditto.
12608         * lra-eliminations.c: Ditto.
12609         * lra-lives.c: Ditto.
12610         * lra-spills.c: Ditto.
12611         * lra.c: Ditto.
12612         * lto-cgraph.c: Ditto.
12613         * lto-compress.c: Ditto.
12614         * lto-opts.c: Ditto.
12615         * lto-section-in.c: Ditto.
12616         * lto-section-out.c: Ditto.
12617         * lto-streamer-in.c: Ditto.
12618         * lto-streamer-out.c: Ditto.
12619         * lto-streamer.c: Ditto.
12620         * mcf.c: Ditto.
12621         * mode-switching.c: Ditto.
12622         * modulo-sched.c: Ditto.
12623         * omp-low.c: Ditto.
12624         * optabs.c: Ditto.
12625         * opts-global.c: Ditto.
12626         * passes.c: Ditto.
12627         * postreload-gcse.c: Ditto.
12628         * postreload.c: Ditto.
12629         * predict.c: Ditto.
12630         * print-rtl.c: Ditto.
12631         * profile.c: Ditto.
12632         * recog.c: Ditto.
12633         * ree.c: Ditto.
12634         * reg-stack.c: Ditto.
12635         * regcprop.c: Ditto.
12636         * regcprop.h: Ditto.
12637         * reginfo.c: Ditto.
12638         * regrename.c: Ditto.
12639         * regstat.c: Ditto.
12640         * reload.c: Ditto.
12641         * reload1.c: Ditto.
12642         * reorg.c: Ditto.
12643         * resource.c: Ditto.
12644         * rtlanal.c: Ditto.
12645         * sched-deps.c: Ditto.
12646         * sched-ebb.c: Ditto.
12647         * sched-int.h: Ditto.
12648         * sched-rgn.c: Ditto.
12649         * sched-vis.c: Ditto.
12650         * sel-sched-dump.c: Ditto.
12651         * sel-sched-ir.c: Ditto.
12652         * sel-sched-ir.h: Ditto.
12653         * sel-sched.c: Ditto.
12654         * sese.c: Ditto.
12655         * shrink-wrap.c: Ditto.
12656         * stack-ptr-mod.c: Ditto.
12657         * stmt.c: Ditto.
12658         * store-motion.c: Ditto.
12659         * symtab.c: Ditto.
12660         * toplev.c: Ditto.
12661         * tracer.c: Ditto.
12662         * trans-mem.c: Ditto.
12663         * tree-affine.c: Ditto.
12664         * tree-call-cdce.c: Ditto.
12665         * tree-cfg.c: Ditto.
12666         * tree-cfgcleanup.c: Ditto.
12667         * tree-chrec.c: Ditto.
12668         * tree-complex.c: Ditto.
12669         * tree-data-ref.c: Ditto.
12670         * tree-dfa.c: Ditto.
12671         * tree-eh.c: Ditto.
12672         * tree-emutls.c: Ditto.
12673         * tree-if-conv.c: Ditto.
12674         * tree-inline.c: Ditto.
12675         * tree-into-ssa.c: Ditto.
12676         * tree-loop-distribution.c: Ditto.
12677         * tree-nested.c: Ditto.
12678         * tree-nrv.c: Ditto.
12679         * tree-object-size.c: Ditto.
12680         * tree-outof-ssa.c: Ditto.
12681         * tree-parloops.c: Ditto.
12682         * tree-phinodes.c: Ditto.
12683         * tree-predcom.c: Ditto.
12684         * tree-pretty-print.c: Ditto.
12685         * tree-profile.c: Ditto.
12686         * tree-scalar-evolution.c: Ditto.
12687         * tree-sra.c: Ditto.
12688         * tree-ssa-address.c: Ditto.
12689         * tree-ssa-alias.c: Ditto.
12690         * tree-ssa-ccp.c: Ditto.
12691         * tree-ssa-coalesce.c: Ditto.
12692         * tree-ssa-copy.c: Ditto.
12693         * tree-ssa-copyrename.c: Ditto.
12694         * tree-ssa-dce.c: Ditto.
12695         * tree-ssa-dom.c: Ditto.
12696         * tree-ssa-dse.c: Ditto.
12697         * tree-ssa-forwprop.c: Ditto.
12698         * tree-ssa-ifcombine.c: Ditto.
12699         * tree-ssa-live.c: Ditto.
12700         * tree-ssa-loop-ch.c: Ditto.
12701         * tree-ssa-loop-im.c: Ditto.
12702         * tree-ssa-loop-ivcanon.c: Ditto.
12703         * tree-ssa-loop-ivopts.c: Ditto.
12704         * tree-ssa-loop-manip.c: Ditto.
12705         * tree-ssa-loop-niter.c: Ditto.
12706         * tree-ssa-loop-prefetch.c: Ditto.
12707         * tree-ssa-loop-unswitch.c: Ditto.
12708         * tree-ssa-loop.c: Ditto.
12709         * tree-ssa-math-opts.c: Ditto.
12710         * tree-ssa-operands.c: Ditto.
12711         * tree-ssa-phiopt.c: Ditto.
12712         * tree-ssa-phiprop.c: Ditto.
12713         * tree-ssa-pre.c: Ditto.
12714         * tree-ssa-propagate.c: Ditto.
12715         * tree-ssa-reassoc.c: Ditto.
12716         * tree-ssa-sccvn.c: Ditto.
12717         * tree-ssa-sink.c: Ditto.
12718         * tree-ssa-strlen.c: Ditto.
12719         * tree-ssa-structalias.c: Ditto.
12720         * tree-ssa-tail-merge.c: Ditto.
12721         * tree-ssa-ter.c: Ditto.
12722         * tree-ssa-threadedge.c: Ditto.
12723         * tree-ssa-threadupdate.c: Ditto.
12724         * tree-ssa-uncprop.c: Ditto.
12725         * tree-ssa-uninit.c: Ditto.
12726         * tree-ssa.c: Ditto.
12727         * tree-ssanames.c: Ditto.
12728         * tree-stdarg.c: Ditto.
12729         * tree-streamer-in.c: Ditto.
12730         * tree-streamer-out.c: Ditto.
12731         * tree-streamer.c: Ditto.
12732         * tree-switch-conversion.c: Ditto.
12733         * tree-tailcall.c: Ditto.
12734         * tree-vect-data-refs.c: Ditto.
12735         * tree-vect-generic.c: Ditto.
12736         * tree-vect-loop-manip.c: Ditto.
12737         * tree-vect-loop.c: Ditto.
12738         * tree-vect-patterns.c: Ditto.
12739         * tree-vect-slp.c: Ditto.
12740         * tree-vect-stmts.c: Ditto.
12741         * tree-vectorizer.c: Ditto.
12742         * tree-vrp.c: Ditto.
12743         * tree.c: Ditto.
12744         * tsan.c: Ditto.
12745         * ubsan.c: Ditto.
12746         * valtrack.c: Ditto.
12747         * valtrack.h: Ditto.
12748         * value-prof.c: Ditto.
12749         * var-tracking.c: Ditto.
12750         * varasm.c: Ditto.
12751         * varpool.c: Ditto.
12752         * vtable-verify.c: Ditto.
12753         * web.c: Ditto.
12754         * config/aarch64/aarch64-builtins.c: Ditto.
12755         * config/aarch64/aarch64.c: Ditto.
12756         * config/alpha/alpha.c: Ditto.
12757         * config/arc/arc.c: Ditto.
12758         * config/arm/arm.c: Ditto.
12759         * config/avr/avr.c: Ditto.
12760         * config/bfin/bfin.c: Ditto.
12761         * config/c6x/c6x.c: Ditto.
12762         * config/cr16/cr16.c: Ditto.
12763         * config/cris/cris.c: Ditto.
12764         * config/darwin-c.c: Ditto.
12765         * config/darwin.c: Ditto.
12766         * config/epiphany/epiphany.c: Ditto.
12767         * config/epiphany/mode-switch-use.c: Ditto.
12768         * config/epiphany/resolve-sw-modes.c: Ditto.
12769         * config/fr30/fr30.c: Ditto.
12770         * config/frv/frv.c: Ditto.
12771         * config/h8300/h8300.c: Ditto.
12772         * config/i386/i386.c: Ditto.
12773         * config/i386/winnt.c: Ditto.
12774         * config/ia64/ia64.c: Ditto.
12775         * config/iq2000/iq2000.c: Ditto.
12776         * config/lm32/lm32.c: Ditto.
12777         * config/m32c/m32c.c: Ditto.
12778         * config/m32r/m32r.c: Ditto.
12779         * config/m68k/m68k.c: Ditto.
12780         * config/mcore/mcore.c: Ditto.
12781         * config/mep/mep.c: Ditto.
12782         * config/microblaze/microblaze.c: Ditto.
12783         * config/mips/mips.c: Ditto.
12784         * config/mmix/mmix.c: Ditto.
12785         * config/mn10300/mn10300.c: Ditto.
12786         * config/moxie/moxie.c: Ditto.
12787         * config/msp430/msp430.c: Ditto.
12788         * config/nds32/nds32-cost.c: Ditto.
12789         * config/nds32/nds32-fp-as-gp.c: Ditto.
12790         * config/nds32/nds32-intrinsic.c: Ditto.
12791         * config/nds32/nds32-isr.c: Ditto.
12792         * config/nds32/nds32-md-auxiliary.c: Ditto.
12793         * config/nds32/nds32-memory-manipulation.c: Ditto.
12794         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12795         * config/nds32/nds32-predicates.c: Ditto.
12796         * config/nds32/nds32.c: Ditto.
12797         * config/nios2/nios2.c: Ditto.
12798         * config/pa/pa.c: Ditto.
12799         * config/pdp11/pdp11.c: Ditto.
12800         * config/rl78/rl78.c: Ditto.
12801         * config/rs6000/rs6000.c: Ditto.
12802         * config/rx/rx.c: Ditto.
12803         * config/s390/s390.c: Ditto.
12804         * config/sh/sh-mem.cc: Ditto.
12805         * config/sh/sh.c: Ditto.
12806         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12807         * config/sh/sh_treg_combine.cc: Ditto.
12808         * config/sparc/sparc.c: Ditto.
12809         * config/spu/spu.c: Ditto.
12810         * config/stormy16/stormy16.c: Ditto.
12811         * config/tilegx/tilegx.c: Ditto.
12812         * config/tilepro/tilepro.c: Ditto.
12813         * config/v850/v850.c: Ditto.
12814         * config/vax/vax.c: Ditto.
12815         * config/xtensa/xtensa.c: Ditto.
12816
12817 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12818
12819         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12820         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12821         Remove using preprocessor directives.
12822
12823 2014-10-27  Richard Biener  <rguenther@suse.de>
12824
12825         * match.pd (0 % X): Properly use the iterator iterating over
12826         all modulo operators.
12827         (X % 1): Likewise.
12828
12829 2014-10-27  Richard Biener  <rguenther@suse.de>
12830
12831         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12832         (lattice): New global.
12833         (fwprop_ssa_val): New function.
12834         (fold_all_stmts): Likewise.
12835         (pass_forwprop::execute): Finally fold all stmts.
12836
12837 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12838
12839         PR c++/53061
12840         * doc/invoke.texi (fmessage-length): Update text to match reality.
12841
12842 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12843
12844         * config/microblaze/microblaze.c: Include rtl-iter.h.
12845         (microblaze_tls_referenced_p_1): Delete.
12846         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12847
12848 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12849
12850         * config/mips/mips.c (mips_at_reg_p): Delete.
12851         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12852
12853 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12854
12855         * config/mips/mips.c (mips_record_lo_sum): Replace with...
12856         (mips_record_lo_sums): ...this new function.
12857         (mips_reorg_process_insns): Update accordingly.
12858
12859 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12860
12861         * config/mips/mips.c (mips_sim_insn): Update comment.
12862         (mips_sim_wait_regs_2): Delete.
12863         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12864
12865 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12866
12867         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12868         and return a bool.  Iterate over all subrtxes here.
12869         (r10k_needs_protection_p): Update accordingly.
12870
12871 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12872
12873         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12874         rather than an rtx pointer.  Change type of insn from "void *"
12875         to its real type.  Return bool rather than int.  Iterate over
12876         all subrtxes here.
12877         (r10k_needs_protection_p_store): Update accordingly.
12878         (r10k_needs_protection_p): Likewise.
12879
12880 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12881
12882         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12883         (mips16_rewrite_pool_refs): Take the insn and constant pool as
12884         parameters.  Iterate over the instruction's pattern and return void.
12885         (mips16_lay_out_constants): Update accordingly.
12886
12887 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12888
12889         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12890         (mips_refers_to_kernel_reg_p): ...this new function.
12891         (mips_expand_prologue): Update accordingly.
12892
12893 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12894
12895         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12896         as a parameter instead of the containing MEM.  Iterate over all
12897         subrtxes.  Don't return a value.
12898         (mips_rewrite_small_data): Update call accordingly.
12899
12900 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12901
12902         * config/mips/mips.c: Include rtl-iter.h.
12903         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12904         Take the context as a parameter instead of the containing MEM.
12905         Iterate over all subrtxes.
12906         (mips_small_data_pattern_p): Update call accordingly.
12907
12908 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12909
12910         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12911         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12912
12913 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12914
12915         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12916         return a bool.  Replace "void *" with specific type.  Iterate
12917         over all subrtxes.
12918         (mep_store_data_bypass_1): Update calls accordingly.
12919
12920 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12921
12922         * config/mep/mep.c: Include rtl-iter.h.
12923         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12924         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
12925
12926 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12927
12928         * config/xtensa/xtensa.c: Include rtl-iter.h.
12929         (xtensa_tls_referenced_p_1): Delete.
12930         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12931
12932 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12933
12934         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12935         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12936
12937 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12938
12939         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12940         rtx as argument and return the number of changes.
12941         * config/sh/sh.c: Include rtl-iter.h.
12942         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12943         over all subrtxes.  Return the number of changes made.
12944         * config/sh/sh.md: Update caller accordingly.
12945
12946 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12947
12948         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12949         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12950
12951 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12952
12953         * config/m68k/m68k.c: Include rtl-iter.h.
12954         (m68k_final_prescan_insn_1): Delete.
12955         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12956
12957 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
12958
12959         PR tree-optimization/63641
12960         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12961         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12962
12963 2014-10-25  Alan Modra  <amodra@gmail.com>
12964
12965         PR rtl-optimization/63615
12966         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12967         decomposing PLUS or MINUS if operands are not placed adjacent
12968         in the "ops" array.
12969
12970 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
12971
12972         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12973         not allow e500 double in registers not satisyfing
12974         SPE_SIMD_REGNO_P.
12975
12976 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
12977
12978         * dwarf2out.c (declare_in_namespace): Only emit external
12979         declarations in the local scope once.
12980
12981 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
12982
12983         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12984
12985 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12986
12987         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12988         update uses to use new macro arguments.
12989         (__LD3_LANE_FUNC): Likewise.
12990         (__LD4_LANE_FUNC): Likewise.
12991
12992 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12993
12994         * config/aarch64/aarch64-builtins.c
12995         (aarch64_types_loadstruct_lane_qualifiers): Define.
12996         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12997         ld4_lane): New builtins.
12998         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12999         New pattern.
13000         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
13001         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
13002         (aarch64_ld2_lane<mode>): New expand.
13003         (aarch64_ld3_lane<mode>): Likewise.
13004         (aarch64_ld4_lane<mode>): Likewise.
13005         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
13006         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
13007
13008 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
13009
13010         * avr-protos.h (avr_out_sign_extend): New.
13011         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
13012         (avr_out_sign_extend): New function.
13013         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
13014         (extendhisi2, extendpsisi2): Use it.
13015         (adjust_len) [sext]: New.
13016
13017 2014-10-24  Martin Liska  <mliska@suse.cz>
13018
13019         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
13020         added.
13021
13022 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13023
13024         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
13025         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
13026         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
13027         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
13028
13029 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13030
13031         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
13032         do while (0).
13033         * config/aarch64/aarch64.c (is_mem_p): Delete.
13034         (is_memory_op): Rename to...
13035         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
13036         (dep_between_memop_and_curr): Assert that the input is a SET.
13037         (aarch64_madd_needs_nop): Add comment.  Do not call
13038         dep_between_memop_and_curr on NULL body.
13039         (aarch64_final_prescan_insn): Add comment.
13040         Include rtl-iter.h.
13041
13042 2014-10-24  Richard Biener  <rguenther@suse.de>
13043
13044         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
13045         to genmatch BUILD_LIBS instead.
13046
13047 2014-10-24  Richard Biener  <rguenther@suse.de>
13048
13049         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
13050         and build_call_expr_loc.
13051         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
13052         non_lvalue_loc to build it for GENERIC.
13053         (decision_tree::gen_generic): Add location argument to
13054         generic_simplify prototype.
13055         (capture_info): New class.
13056         (capture_info::capture_info): New constructor.
13057         (capture_info::walk_match): New method.
13058         (capture_info::walk_result): New method.
13059         (capture_info::walk_c_expr): New method.
13060         (dt_simplify::gen): Handle preserving side-effects for
13061         GENERIC code generation.
13062         (decision_tree::gen_generic): Do not reject operands
13063         with TREE_SIDE_EFFECTS.
13064         * generic-match.h: New file.
13065         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
13066         * match.pd: Add some constant folding patterns from fold-const.c.
13067         * fold-const.c: Include generic-match.h.
13068         (fold_unary_loc): Dispatch to generic_simplify.
13069         (fold_ternary_loc): Likewise.
13070         (fold_binary_loc): Likewise.  Remove patterns now implemented
13071         by generic_simplify.
13072         * gimple-fold.c (replace_stmt_with_simplification): New function.
13073         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
13074         (no_follow_ssa_edges): New function.
13075         (fold_stmt): New overload with valueization hook.  Use
13076         no_follow_ssa_edges for the overload without hook.
13077         (fold_stmt_inplace): Likewise.
13078         * gimple-fold.h (no_follow_ssa_edges): Declare.
13079
13080 2014-10-24  Felix Yang  <felix.yang@huawei.com>
13081         Jiji Jiang  <jiangjiji@huawei.com>
13082
13083         PR target/63173
13084         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
13085         (__LD3R_FUNC): Ditto.
13086         (__LD4R_FUNC): Ditto.
13087         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
13088          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
13089          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
13090          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
13091          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
13092          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
13093         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
13094          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
13095          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
13096          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
13097          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
13098          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
13099         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
13100          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
13101          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
13102          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
13103          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
13104          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
13105         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
13106         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
13107         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
13108         builtins.
13109         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
13110         (aarch64_simd_ld3r<mode>): Likewise.
13111         (aarch64_simd_ld4r<mode>): Likewise.
13112         (aarch64_ld2r<mode>): New expand.
13113         (aarch64_ld3r<mode>): Likewise.
13114         (aarch64_ld4r<mode>): Likewise.
13115
13116 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13117
13118         * rtlanal.c (get_base_term): Handle SCRATCH.
13119
13120 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13121
13122         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
13123         register pressure.
13124
13125 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13126
13127         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
13128         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
13129         (max_issue, choose_ready, sched_init): Update.
13130
13131 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13132
13133         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
13134         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
13135         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
13136         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
13137         (print_rank_for_schedule_stats): Print out elements of ready list that
13138         ended up on their respective places due to each of the sorting
13139         heuristics.
13140         (ready_sort): Update.
13141         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
13142         (schedule_block): Update.
13143
13144 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13145
13146         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
13147         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
13148         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
13149         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
13150         (model_start_schedule): Update.
13151         (sched_pressure_start_bb): New static function.  Calculate
13152         sched_class_regs_num.
13153         (schedule_block): Use it.
13154         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
13155
13156 2014-10-24  Richard Biener  <rguenther@suse.de>
13157
13158         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
13159         host library and make sure to pull in the required libintl
13160         and libiconv dependencies.
13161
13162 2014-10-24  Richard Biener  <rguenther@suse.de>
13163
13164         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
13165
13166 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
13167
13168         PR bootstrap/63632
13169         * collect2.c (main): Filter out -fno-lto.
13170
13171 2014-10-24  Martin Liska  <mliska@suse.cz>
13172
13173         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
13174         division by zero in dumps.
13175         (sem_item_optimizer::merge_classes): Ditto.
13176
13177 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
13178
13179         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
13180
13181 2014-10-23  Ian Lance Taylor  <iant@google.com>
13182
13183         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
13184
13185 2014-10-23  Ian Lance Taylor  <iant@google.com>
13186
13187         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
13188
13189 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
13190
13191         PR debug/63623
13192         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
13193         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
13194         instead of only handling autoinc in dest if it is a MEM.
13195         (vt_stack_adjustments): Fix up formatting.
13196
13197 2014-10-23  DJ Delorie  <dj@redhat.com>
13198
13199         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
13200         independend of -mlarge.
13201         * config/msp430/constraints.md (Ys): Update comment.
13202
13203 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
13204
13205         PR target/63534
13206         PR target/63618
13207         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
13208         while it is pseudo.
13209         * dse.c (deletable_insn_p): Likewise.
13210
13211 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
13212
13213         * config/avr/avr.c: Fix GNU coding rules and typos.
13214         * config/avr/avr.h: Dito.
13215         * config/avr/avr-c.c: Dito.
13216         * config/avr/avr.md: Dito.
13217
13218 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
13219
13220         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
13221         New.
13222         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
13223         iterator.
13224         (define_expand "abs<mode>2"): Ditto.
13225
13226 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
13227
13228         * tree-core.h (tree_var_decl): Extend `function_code' field
13229         by one bit, move `regdecl_flag' field to ...
13230         (tree_decl_with_vis): Here.
13231         * tree.h (DECL_STATIC_CHAIN): Update struct name.
13232
13233 2014-10-23  Richard Biener  <rguenther@suse.de>
13234
13235         * Makefile.in (BUILD_CPPLIB): Add.
13236         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
13237         Drop LIBIBERTY.
13238
13239 2014-10-23  Richard Biener  <rguenther@suse.de>
13240
13241         * fold-const.c (fold_binary_loc): Preserve side-effects of
13242         X - X when simplifying to 0.
13243         * stor-layout.c (finish_bitfield_representative): Strip
13244         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
13245
13246 2014-10-22  Richard Biener  <rguenther@suse.de>
13247             Tobias Burnus <burnus@net-b.de>
13248
13249         PR lto/63603
13250         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
13251
13252 2014-10-22  Dehao Chen  <dehao@google.com>
13253
13254         * auto-profile.c: Change order of header files.
13255
13256 2014-10-22  Guozhi Wei  <carrot@google.com>
13257
13258         PR tree-optimization/63530
13259         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
13260         pointer alignment according to DR_MISALIGNMENT.
13261
13262 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
13263
13264         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
13265
13266 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
13267
13268         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
13269         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
13270         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
13271         * dominance.h: New.  Add prototypes for dominance.c.
13272         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
13273         * cfghooks.h: (struct profile_record) Relocate here.
13274         Relocate 2 prototypes from basic-block.h.
13275         * basic-block.h: Move prototypes and struct to new header files.
13276         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
13277         * rtl.h: Move a few prototypes to new header files.
13278         * cfgcleanup.c (merge_memattrs): Make static.
13279         * genopinit.c (main): Add predict.h to list of includes.
13280         * predict.h: Update prototype list to match predict.c.
13281         * predict.c (maybe_hot_count_p): Export.
13282         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
13283         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
13284         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
13285         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
13286         * profile.h: Adjust prototypes.
13287         * ifcvt.h: New.  Relocate struct ce_if_block here.
13288         * ifcvt.c: Include ifcvt.h.
13289         * config/frv/frv.c: Include ifcvt.h.
13290         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
13291
13292 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13293
13294         * lra.c (lra): Remove call to recog_init.
13295         * config/i386/i386.md (preferred_for_speed): New attribute
13296         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
13297         "enabled".  Remove check for sched1.
13298
13299 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13300
13301         * recog.h (recog_data_d): Remove enabled_alternatives.
13302         * recog.c (extract_insn): Don't set it.
13303         * reload.c (find_reloads): Call get_enabled_alternatives.
13304
13305 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13306
13307         * recog.h (constrain_operands): Add an alternative_mask parameter.
13308         (constrain_operands_cached): Likewise.
13309         (get_preferred_alternatives): Declare new form.
13310         * recog.c (get_preferred_alternatives): New bb-taking instance.
13311         (constrain_operands): Take the set of available alternatives as
13312         a parameter.
13313         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
13314         (extract_constrain_insn_cached): Update calls to constrain_operands.
13315         * caller-save.c (reg_save_code): Likewise.
13316         * ira.c (setup_prohibited_mode_move_regs): Likewise.
13317         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
13318         * ree.c (combine_reaching_defs): Likewise.
13319         * reload.c (can_reload_into): Likewise.
13320         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
13321         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
13322         (emit_insn_if_valid_for_reload): Likewise.
13323         * reorg.c (fill_slots_from_thread): Likewise.
13324         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
13325         * config/pa/pa.c (pa_can_combine_p): Likewise.
13326         * config/rl78/rl78.c (insn_ok_now): Likewise.
13327         * config/sh/sh.md (define_peephole2): Likewise.
13328         * final.c (final_scan_insn): Update call to constrain_operands_cached.
13329
13330 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13331
13332         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
13333         attributes.
13334         * genattr.c (main): Handle "preferred_for_size" and
13335         "preferred_for_speed" in the same way as "enabled".
13336         * recog.h (bool_attr): New enum.
13337         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
13338         (get_preferred_alternatives, check_bool_attrs): Declare.
13339         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
13340         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
13341         New functions.
13342         (get_enabled_alternatives): Use get_bool_attr_mask.
13343         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
13344         instead of recog_data.enabled_alternatives.
13345         * ira.c (ira_setup_alts): Likewise.
13346         * postreload.c (reload_cse_simplify_operands): Likewise.
13347         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
13348         * ira-lives.c (preferred_alternatives): New variable.
13349         (process_bb_node_lives): Set it.
13350         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
13351         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
13352         of recog_data.enabled_alternatives.
13353         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
13354         to preferred_alternatives.
13355         * lra-constraints.c (process_alt_operands): Update accordingly.
13356         * lra.c (lra_set_insn_recog_data): Likewise.
13357         (lra_update_insn_recog_data): Assert check_bool_attrs.
13358
13359 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13360
13361         * recog.h (extract_constrain_insn): Declare.
13362         * recog.c (extract_constrain_insn): New function.
13363         * lra.c (check_rtl): Use it.
13364         * postreload.c (reload_cse_simplify_operands): Likewise.
13365         * reg-stack.c (check_asm_stack_operands): Likewise.
13366         (subst_asm_stack_regs): Likewise.
13367         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
13368         * regrename.c (build_def_use): Likewise.
13369         * sel-sched.c (get_reg_class): Likewise.
13370         * config/arm/arm.c (note_invalid_constants): Likewise.
13371         * config/s390/predicates.md (execute_operation): Likewise.
13372
13373 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13374             Yury Gribov  <y.gribov@samsung.com>
13375
13376         * common.opt (flag_sanitize_recover): New variable.
13377         (fsanitize-recover): Remove Var/Init, deprecate.
13378         (fsanitize-recover=): New option.
13379         * doc/invoke.texi (fsanitize-recover): Update docs.
13380         * opts.c (finish_options): Use opts->x_flag_sanitize
13381         instead of flag_sanitize.  Prohibit -fsanitize-recover
13382         for anything besides UBSan.  Formatting.
13383         (common_handle_option): Handle OPT_fsanitize_recover_
13384         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
13385         instead of flag_sanitize.
13386         * asan.c (pass_sanopt::execute): Fix up formatting.
13387         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
13388         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
13389         instrument_bool_enum_load, ubsan_instrument_float_cast,
13390         instrument_nonnull_arg, instrument_nonnull_return): Check
13391         bits in flag_sanitize_recover bitmask instead of
13392         flag_sanitize_recover as bool flag.
13393
13394 2014-10-22  Jiong Wang <jiong.wang@arm.com>
13395
13396         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
13397
13398 2014-10-22  Renlin Li <renlin.li@arm.com>
13399
13400         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
13401         __ARM_FEATURE_IDIV__.
13402
13403 2014-10-22  Richard Biener  <rguenther@suse.de>
13404
13405         * Makefile.in (s-match): Adjust dependencies to only catch
13406         match.pd.
13407
13408 2014-10-22  Richard Biener  <rguenther@suse.de>
13409         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
13410
13411         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
13412         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
13413         (gimple-match.c): Generate by triggering s-match.
13414         (generic-match.c): Likewise.
13415         (s-match): Rule to build gimple-match.c and generic-match.c
13416         by running the genmatch generator program.
13417         (build/hash-table.o): Dependencies to build hash-table.c for the host.
13418         (build/genmatch.o): Dependencies to build genmatch.
13419         (genprog): Add match.
13420         (build/genmatch): Likewise.
13421         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
13422         * generic-match-head.c: New file.
13423         * gimple-match-head.c: Likewise.
13424         * gimple-match.h: Likewise.
13425         * genmatch.c: Likewise.
13426         * match.pd: Likewise.
13427         * builtins.h (fold_builtin_n): Export.
13428         * builtins.c (fold_builtin_n): Likewise.
13429         * gimple-fold.h (gimple_build): Declare various overloads.
13430         (gimple_simplify): Likewise.
13431         (gimple_convert): Re-implement in terms of gimple_build.
13432         * gimple-fold.c (gimple_convert): Remove.
13433         (gimple_build): New functions.
13434         * doc/match-and-simplify.texi: New file.
13435         * doc/gccint.texi: Add menu item Match and Simplify and include
13436         match-and-simplify.texi.
13437
13438 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13439
13440         PR target/63594
13441         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
13442         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
13443         even for just TARGET_AVX2, not only for
13444         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
13445         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
13446         otherwise build it using concatenation of 256-bit
13447         broadcast.
13448         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
13449         avx512 broadcast patterns.
13450         (vec_dup<mode>): Likewise.  For avx2 use
13451         v<sseintprefix>broadcast<bcstscalarsuff> instead of
13452         vbroadcast<ssescalarmodesuffix>.
13453         (AVX2_VEC_DUP_MODE): New mode iterator.
13454         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
13455         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
13456
13457         PR target/63542
13458         * config/i386/i386.c (ix86_pic_register_p): Also return
13459         true if x is a hard register with ORIGINAL_REGNO equal to
13460         pic_offset_table_rtx pseudo REGNO.
13461         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
13462         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
13463
13464 2014-10-22  Alan Modra  <amodra@gmail.com>
13465
13466         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
13467         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
13468         (gcc_obstack_init): Use obstack_specify_allocation in place of
13469         _obstack_begin.
13470         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
13471         (regexp_representation): Likewise.
13472         * godump.c (go_output_type): Likewise.
13473
13474 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
13475
13476         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
13477         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
13478         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
13479
13480 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
13481
13482         * doc/invoke.texi (pedantic-errors): Explain better.
13483
13484 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
13485             Vidya Praveen <vidya.praveen@atmel.com>
13486             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
13487             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
13488             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
13489
13490         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
13491         __MEMX for avrtiny.
13492         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
13493         (avr_nonconst_pointer_addrspace): Likewise.
13494         * config/avr/avr.h (AVR_HAVE_LPM): Define.
13495
13496         Added AVRTINY architecture to avr target.
13497         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
13498         (base_arch_s): member added for AVRTINY architecture.
13499         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
13500         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
13501         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
13502         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
13503         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
13504         in callee saved register list.
13505         (avr_option_override): CCP address updated for AVRTINY.
13506         (avr_init_expanders): tmp and zero rtx initialized as per arch.
13507         Reset avr_have_dimode if AVRTINY.
13508         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
13509         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
13510         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
13511         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
13512         (expand_epilogue): Likewise.
13513         (avr_print_operand): Print CCP address in case of AVRTINY also.
13514         <TBD>bad address
13515         (function_arg_regno_p): Check different register list for arguments
13516         if AVRTINY.
13517         (init_cumulative_args): Check for AVRTINY to update number of argument
13518         registers.
13519         (tiny_valid_direct_memory_access_range): New function. Return false if
13520         direct memory access range is not in accepted range for AVRTINY.
13521         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
13522         indirect load (with displacement) for AVRTINY.
13523         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
13524         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
13525         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
13526         indirect load (no displacement) for AVRTINY.
13527         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
13528         indirect load (with displacement) for AVRTINY.
13529         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
13530         indirect load for pre-decrement address.
13531         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
13532         functions. Update instruction length for AVRTINY.
13533         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
13534         SImode.
13535         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
13536         (out_movsi_r_mr): Likewise, for SImode.
13537         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
13538         indirect store (no displacement) for AVRTINY.
13539         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
13540         indirect store (with displacement) for AVRTINY.
13541         (out_movsi_mr_r): Emit out insn for IO address store. Update store
13542         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13543         store functions.
13544         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13545         indirect load (no displacement) for PSImode in AVRTINY.
13546         (avr_out_load_psi_reg_disp_tiny): New function to handle register
13547         indirect load (with displacement) for PSImode in AVRTINY.
13548         (avr_out_load_psi): Call PSImode register indirect load functions for
13549         AVRTINY. Update instruction length for AVRTINY.
13550         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13551         indirect store (no displacement) for PSImode in AVRTINY.
13552         (avr_out_store_psi_reg_disp_tiny): New function to handle register
13553         indirect store (with displacement) for PSImode in AVRTINY.
13554         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13555         register indirect store functions for AVRTINY.
13556         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13557         register indirect store (with displacement) for AVRTINY.
13558         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13559         register indirect store function for QImode in AVRTINY.
13560         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13561         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13562         indirect store (no displacement) for HImode in AVRTINY.
13563         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13564         indirect store (with displacement) for HImode in AVRTINY.
13565         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13566         indirect store for post-increment address in HImode.
13567         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13568         register indirect store function for HImode in AVRTINY.
13569         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13570         in case of AVRTINY.
13571         (order_regs_for_local_alloc): Updated register allocation order for
13572         AVRTINY.
13573         (avr_conditional_register_usage): New function. It is a target hook
13574         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13575         used registers list and register allocation order for AVRTINY.
13576         (avr_return_in_memory): Update return value size for AVRTINY.
13577         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13578         for AVRTINY arch and tiny program memory base address.
13579         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13580         (avr_texinfo): Added description for AVRTINY arch.
13581         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13582         STATIC_CHAIN_REGNUM for AVRTINY.
13583         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13584         * config/avr/avr.md: Added constants for tmp/ zero registers in
13585         AVRTINY. Attributes for AVRTINY added.
13586         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13587         memory access range.
13588         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13589         in AVRTINY memory access range.
13590         (*mov<mode>): Likewise for HImode and SImode.
13591         (*movsf): Likewise for SFmode.
13592         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13593         not have sbiw.
13594         * config/avr/avr-protos.h: Added function prototype for
13595         tiny_valid_direct_memory_access_range.
13596         * config/avr/avr-tables.opt: Regenerate.
13597         * gcc/config/avr/t-multilib: Regenerate.
13598         * doc/avr-mmcu.texi: Regenerate.
13599
13600 2014-10-21  Andrew Pinski  <apinski@cavium.com>
13601
13602         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13603         available option also.
13604         * config/aarch64/aarch64-cost-tables.h: New file.
13605         * config/aarch64/aarch64-cores.def (thunderx): New core.
13606         * config/aarch64/aarch64-tune.md: Regenerate.
13607         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13608         of config/arm/aarch-cost-tables.h.
13609         (thunderx_regmove_cost): New variable.
13610         (thunderx_tunings): New variable.
13611
13612 2014-10-21  Dehao Chen  <dehao@google.com>
13613
13614         * auto-profile.c: New file.
13615         * auto-profile.h: New file.
13616         * basic-block.h (maybe_hot_count_p): New export func.
13617         (add_working_set): New export func.
13618         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13619         (GCOV_TAG_AFDO_FUNCTION): Likewise.
13620         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13621         * opts.c (enable_fdo_optimizations): New func.
13622         (common_handle_option): Handle -fauto-profile flag.
13623         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13624         (class pass_early_inline): Export early_inliner.
13625         (early_inliner): Likewise.
13626         (pass_early_inline::execute): Likewise.
13627         * ipa-inline.h (early_inliner): Likewise.
13628         * predict.c (maybe_hot_count_p): New export func.
13629         (counts_to_freqs): AutoFDO logic.
13630         (rebuild_frequencies): Likewise.
13631         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13632         * profile.c (add_working_set): New func.
13633         * Makefile.in (auto-profile.o): New object file.
13634         * passes.def (pass_ipa_auto_profile): New pass.
13635         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13636         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13637         * toplev.c (compile_file): AutoFDO logic.
13638         * doc/invoke.texi (-fauto-profile): New doc.
13639         * coverage.c (coverage_init): AutoFDO logic.
13640         * common.opt (-fauto-profile): New flag.
13641         * timevar.def (TV_IPA_AUTOFDO): New tag.
13642         * value-prof.c (gimple_alloc_histogram_value): New export func.
13643         (check_ic_target): Likewise.
13644         * value-prof.h (gimple_alloc_histogram_value): Likewise.
13645         (check_ic_target): Likewise.
13646
13647 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
13648
13649         * cgraph.c (cgraph_c_finalize): New function.
13650         * cgraph.h (cgraph_c_finalize): New prototype.
13651         (cgraphunit_c_finalize): New prototype.
13652         * cgraphunit.c (first_analyzed): Move from analyze_functions
13653         to file-scope.
13654         (first_analyzed_var): Likewise.
13655         (analyze_functions): Move static variables into file-scope.
13656         (cgraphunit_c_finalize): New function.
13657         * diagnostic.c (diagnostic_finish): Free the memory for
13658         context->classify_diagnostic and context->printer, running the
13659         destructor for the latter.
13660         (bt_stop): Use toplev::main.
13661         * dwarf2out.c (dwarf2out_finalize): New function.
13662         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13663         * gcse.c (gcse_c_finalize): New function.
13664         * gcse.h (gcse_c_finalize): New prototype.
13665         * ggc-page.c (init_ggc): Make idempotent.
13666         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13667         * ipa-cp.c (ipa_cp_c_finalize): New function.
13668         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13669         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13670         a field of class pass_ipa_pure_const.
13671         (node_duplication_hook_holder): Likewise.
13672         (node_removal_hook_holder): Likewise.
13673         (register_hooks): Convert to method...
13674         (pass_ipa_pure_const::register_hooks): ...here, converting
13675         static variable init_p into...
13676         (pass_ipa_pure_const::init_p): ...new field.
13677         (pure_const_generate_summary): Update invocation of
13678         register_hooks to invoke as a method of current_pass.
13679         (pure_const_read_summary): Likewise.
13680         (propagate): Convert to...
13681         (pass_ipa_pure_const::execute): ...method.
13682         * ipa-reference.c (ipa_init): Move static bool init_p from here
13683         to...
13684         (ipa_init_p): New file-scope variable, so that it can be reset
13685         when repeatedly invoking the compiler within one process by...
13686         (ipa_reference_c_finalize): New function.
13687         * ipa-reference.h (ipa_reference_c_finalize): New.
13688         * main.c (main): Replace invocation of toplev_main with
13689         construction of a toplev instance, and call its "main" method.
13690         * params.c (global_init_params): Add an assert that
13691         params_finished is false.
13692         (params_c_finalize): New.
13693         * params.h (params_c_finalize): New.
13694         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13695         invoking generate_summary, for the benefit of pass_ipa_pure_const.
13696         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13697         before calling write_summary hook.
13698         (ipa_write_optimization_summaries_1): Likewise when calling
13699         write_optimization_summary hook.
13700         (ipa_read_summaries_1): Likewise for read_summary hook.
13701         (ipa_read_optimization_summaries_1): Likewise for
13702         read_optimization_summary hook.
13703         (execute_ipa_stmt_fixups): Likewise.
13704         * stringpool.c (init_stringpool): Clean up if we're called more
13705         than once.
13706         * timevar.c (timevar_init): Ignore repeated calls.
13707         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13708         "ipa-prop.h".
13709         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13710         (initialize_rtl): Move static local "initialized_once"
13711         into file scope, and rename to...
13712         (rtl_initialized): New variable.
13713         (do_compile): Move timevar initialization from here to
13714         toplev::start_timevars.
13715         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13716         toplev::finalize): New functions.
13717         (toplev_main): Rename to...
13718         (toplev::main): ...this.
13719         * toplev.h (class toplev): New class.
13720
13721 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13722
13723         * loop-doloop.c: Include loop-unroll.h.
13724
13725 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13726
13727         * cfg.h: New.  Header file for cfg.c.
13728         * cfganal.h: New.  Header file for cfganal.c.
13729         * lcm.h: New.  Header file for lcm.c.
13730         * loop-unroll.h: New.  Header file for loop-unroll.h.
13731         * cfgloop.h: (unroll_loops): Remove prototype.
13732         * basic-block.h: Move prototypes and structs to new header files.
13733         Include cfg.h, cfganal.h, and lcm.h.
13734         * loop-init.c: Include loop-unroll.h.
13735         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13736         * modulo-sched.c: Include loop-unroll.h.
13737
13738 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13739
13740         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13741         MARKER_BYTE_UNKNOWN markers when handling casts.
13742
13743 2014-10-21  Richard Biener  <rguenther@suse.de>
13744
13745         * tree-ssa-phiopt.c (value_replacement): Properly verify we
13746         are the non-singleton PHI.
13747
13748 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
13749
13750         PR tree-optimization/63563
13751         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13752         if either dra or drb stmts are not normal loads/stores.
13753
13754 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
13755
13756         * config/i386/i386.c (expand_vec_perm_1): Fix
13757         expand_vec_perm_palignr case.
13758         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13759         VI1_AVX512.
13760
13761 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
13762
13763         * cfgloopanal.c (seq_cost): Delete.
13764         * rtl.h (seq_cost): New prototype.
13765         * rtlanal.c (seq_cost): New function.
13766         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13767
13768 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
13769
13770         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
13771         * basic-block.h: Remove prototypes for cfgrtl.c.
13772         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13773         prototypes to cfgrtl.h.
13774         * profile.h (profile_info): Add extern export declaration.
13775         * rtl.h: Remove prototypes for cfgrtl.h.
13776         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13777         * ipa-inline.c: Include profile.h.
13778         * loop-unroll.c: Ditto.
13779         * modulo-sched.c: Ditto.
13780         * postreload-gcse.c: Ditto.
13781         * predict.c: Ditto.
13782         * sched-ebb.c: Ditto.
13783         * sched-rgn.c: Ditto.
13784         * tracer.c: Ditto.
13785         * tree-ssa-loop-ivcanon.c: Ditto.
13786
13787 2014-10-20  Richard Biener  <rguenther@suse.de>
13788
13789         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13790         operands to get a def operand kind match.  Signal mismatches
13791         to the parent so we can try swapping its operands.
13792         (vect_build_slp_tree): Try swapping operands if they have
13793         a mismatched operand kind.
13794
13795 2014-10-20  Alan Modra  <amodra@gmail.com>
13796
13797         PR debug/60655
13798         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13799         Increase "ops" array size.  Correct array size tests.  Init
13800         n_constants in loop.  Break out of innermost loop when finding
13801         a trivial CONST expression.
13802
13803 2014-10-20  Martin Liska  <mliska@suse.cz>
13804
13805         PR ipa/63583
13806         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13807         Gimple tempate string is compared.
13808
13809 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
13810
13811         * varasm.c (const_alias_set): Remove.
13812         (init_varasm_once): Remove initialization of const_alias_set.
13813         (build_constant_desc): Do not set alias set to const_alias_set.
13814
13815 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
13816
13817         * configure: Regenerate.
13818         * configure.ac: Move the test for section attribute specifier "e" in GAS
13819         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13820         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13821         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13822         ifdef HAVE_GAS_SECTION_EXCLUDE.
13823
13824 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
13825
13826         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13827         match_operand expression.
13828
13829 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
13830             David Edelsohn  <dje.gcc@gmail.com>
13831
13832         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13833         function.
13834         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13835
13836 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13837
13838         * doc/invoke.texi (Options to Request or Suppress Warnings):
13839         Explain options precedence.
13840         (Wtrampolines): Do not indent paragraph.
13841
13842 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
13843
13844         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13845         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13846         (pa_jump_in_call_delay): Likewise.
13847         * config/pa/pa.c (pa_option_override): Remove jump in call delay
13848         override.
13849         (pa_output_millicode_call): Remove support for jump in call delay.
13850         (pa_output_call): Likewise.
13851         (pa_jump_in_call_delay): Delete.
13852         (pa_following_call): Likewise.
13853         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13854         (uncond_branch): Remove following call check from attribute length.
13855
13856 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
13857
13858         PR target/53513
13859         * config/sh/sh-modes.def (PSI): Remove.
13860         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13861         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13862         (sh_reorg): Remove commented out FPSCR code.
13863         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
13864         insn instead of move insn.
13865         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13866         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13867         handling.
13868         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13869         (sh1_builtin_p): Uncomment.
13870         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13871         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13872         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13873         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13874         (general_movsrc_operand, general_movdst_operand): Disallow
13875         fpscr_operand.
13876         * config/sh/sh.md (FPSCR_FR): New constant.
13877         (push_fpscr): Emit sts_fpscr insn.
13878         (pop_fpscr): Emit lds_fpscr_insn.
13879         (movsi_ie): Disallow FPSCR operands.
13880         (fpu_switch, unnamed related split, extend_psi_si,
13881         truncate_si_psi): Remove insns.
13882         (lds_fpscr, sts_fpscr): New insns.
13883         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13884
13885 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
13886
13887         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13888         (clone_inlined_nodes): Do not overwrite the clone if above predicate
13889         returns true.
13890
13891 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
13892
13893         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13894         (expand_vec_perm_d): Ditto.
13895         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13896         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13897         V4DFmode.
13898         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13899         (ix86_expand_sse_unpack): Handle V64QImode.
13900         (expand_vec_perm_blend): Update conditions for TARGET, handle
13901         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13902         (expand_vec_perm_pshufb): Handle V64QImode.
13903         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13904         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13905         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
13906         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13907         (ix86_expand_vecop_qihi): Handle V64QImode.
13908         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13909         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13910         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13911         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13912         (mul<mode>3): Use VI1_AVX512.
13913         (<sse2_avx2>_packsswb): Ditto.
13914         (<sse2_avx2>_packuswb): Ditto.
13915         (<ssse3_avx2>_pshufb<mode>3): Ditto.
13916         (<shift_insn><mode>3): Ditto.
13917
13918 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
13919
13920         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13921         conditions to fix bootstrap.
13922
13923 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
13924
13925         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
13926
13927 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13928             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13929             Anna Tikhonova  <anna.tikhonova@intel.com>
13930             Ilya Tocar  <ilya.tocar@intel.com>
13931             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13932             Ilya Verbin  <ilya.verbin@intel.com>
13933             Kirill Yukhin  <kirill.yukhin@intel.com>
13934             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13935
13936         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13937         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13938         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13939         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13940         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13941         (define_expand "vec_init<mode>"): Use VF48_I1248.
13942
13943 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13944             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13945             Anna Tikhonova  <anna.tikhonova@intel.com>
13946             Ilya Tocar  <ilya.tocar@intel.com>
13947             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13948             Ilya Verbin  <ilya.verbin@intel.com>
13949             Kirill Yukhin  <kirill.yukhin@intel.com>
13950             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13951
13952         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13953         expand_sse2_mulvxdi3.
13954
13955 2014-10-17  Richard Biener  <rguenther@suse.de>
13956
13957         * fold-const.c (fold_comparison): Remove redundant constant
13958         folding and operand swapping.
13959         (fold_binary_loc): Do comparison operand swapping here.
13960         (fold_ternary_loc): Canonicalize operand order for
13961         commutative ternary operations.
13962         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13963         and FMA_EXPR.
13964
13965 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
13966
13967         PR tree-optimization/63464
13968         * gimple.h (gimple_seq_discard): New prototype.
13969         * gimple.c: Include stringpool.h and tree-ssanames.h.
13970         (gimple_seq_discard): New function.
13971         * optabs.h (lshift_cheap_p): New prototype.
13972         * optabs.c (lshift_cheap_p): New function, moved from...
13973         * tree-switch-conversion.c (lshift_cheap_p): ... here.
13974         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13975         (reassoc_branch_fixups): New variable.
13976         (update_range_test): Add otherrangep and seq arguments.
13977         Unshare exp.  If otherrange is NULL, use for other ranges
13978         array of pointers pointed by otherrangep instead.
13979         Emit seq before gimplified statements for tem.
13980         (optimize_range_tests_diff): Adjust update_range_test
13981         caller.
13982         (optimize_range_tests_xor): Likewise.  Fix up comment.
13983         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13984         functions.
13985         (optimize_range_tests): Adjust update_range_test caller.
13986         Call optimize_range_tests_to_bit_test.
13987         (branch_fixup): New function.
13988         (execute_reassoc): Call branch_fixup.
13989
13990         PR tree-optimization/63302
13991         * tree-ssa-reassoc.c (optimize_range_tests_xor,
13992         optimize_range_tests_diff): Use !integer_pow2p () instead of
13993         tree_log2 () < 0.
13994
13995 2014-10-17  Martin Liska  <mliska@suse.cz>
13996
13997         * ipa-icf.c (sem_function::merge): Local flags are set to false
13998         to enforce equal calling convention to be used.
13999         * opts.c (common_handle_option): Indentation fix.
14000
14001 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
14002
14003         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
14004
14005 2014-10-17  Tom de Vries  <tom@codesourcery.com>
14006
14007         PR rtl-optimization/61605
14008         * regcprop.c (copyprop_hardreg_forward_1): Use
14009         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
14010
14011 2014-10-17  Tom de Vries  <tom@codesourcery.com>
14012
14013         PR rtl-optimization/61605
14014         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.
14015         Don't notice stores for noops.  Don't regard noops as copies.
14016
14017 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
14018
14019         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
14020         register in a special way.
14021         (__cpuid_count): Ditto.
14022         * config/i386/driver-i386.h: Protect with
14023         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
14024         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
14025         is required to compile the function.
14026
14027 2014-10-16  DJ Delorie  <dj@redhat.com>
14028
14029         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
14030         integers.
14031
14032         * config/rs6000/rs6000-c.c (rid_int128): New.
14033         (rs6000_macro_to_expand): Use instead of RID_INT128.
14034
14035 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
14036
14037         * function.h: Flatten file.  Remove includes, adjust prototypes to
14038         reflect only what is in function.h.
14039         (enum direction, struct args_size, struct locate_and_pad_arg_data,
14040         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
14041         from expr.h.
14042         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
14043         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
14044         prototypes to predict.h.
14045         (init_varasm_status): Move prototype to varasm.h.
14046         * expr.h: Adjust include files.
14047         (enum direction, struct args_size, struct locate_and_pad_arg_data,
14048         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
14049         to function.h.
14050         (locate_and_pad_parm): Move prototype to function.h.
14051         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
14052         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
14053         assign_temp, reposition_prologue_and_epilogue_notes,
14054         prologue_epilogue_contains, sibcall_epilogue_contains,
14055         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
14056         set_return_jump_label): Move prototypes to function.h.
14057         * predict.h (optimize_function_for_size_p,
14058         optimize_function_for_speed_p): Relocate prototypes from function.h.
14059         * shrink-wrap.h (emit_return_into_block, active_insn_between,
14060         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
14061         function.h.
14062         * varasm.h (init_varasm_status): Relocate prototype from function.h.
14063         * genattrtab.c (write_header): Add predict.h to include list.
14064         * genconditions.c (write_header): Add predict.h to include list.
14065         * genemit.c (main): Adjust header file includes.
14066         * gengtype.c (ifiles): Add flattened function.h header files.
14067         * genoutput.c (output_prologue): Add predict.h to include list.
14068         * genpreds.c (write_insn_preds_c): Adjust header file includes.
14069         * genrecog.c (write_header): Add flattened function.h header files.
14070         * alias.c: Adjust include files.
14071         * auto-inc-dec.c: Likewise.
14072         * basic-block.h: Likewise.
14073         * bb-reorder.c: Likewise.
14074         * bt-load.c: Likewise.
14075         * builtins.c: Likewise.
14076         * caller-save.c: Likewise.
14077         * calls.c: Likewise.
14078         * cfgbuild.c: Likewise.
14079         * cfgcleanup.c: Likewise.
14080         * cfgexpand.c: Likewise.
14081         * cfgloop.c: Likewise.
14082         * cfgloop.h: Likewise.
14083         * cfgrtl.c: Likewise.
14084         * cgraph.h: Likewise.
14085         * cgraphclones.c: Likewise.
14086         * cgraphunit.c: Likewise.
14087         * combine-stack-adj.c: Likewise.
14088         * combine.c: Likewise.
14089         * coverage.c: Likewise.
14090         * cprop.c: Likewise.
14091         * cse.c: Likewise.
14092         * cselib.c: Likewise.
14093         * dbxout.c: Likewise.
14094         * ddg.c: Likewise.
14095         * df-core.c: Likewise.
14096         * df-problems.c: Likewise.
14097         * df-scan.c: Likewise.
14098         * dojump.c: Likewise.
14099         * dwarf2cfi.c: Likewise.
14100         * dwarf2out.c: Likewise.
14101         * emit-rtl.c: Likewise.
14102         * except.c: Likewise.
14103         * explow.c: Likewise.
14104         * expr.c: Likewise.
14105         * final.c: Likewise.
14106         * function.c: Likewise.
14107         * gcse.c: Likewise.
14108         * gimple-fold.c: Likewise.
14109         * gimple-low.c: Likewise.
14110         * gimple-streamer.h: Likewise.
14111         * haifa-sched.c: Likewise.
14112         * ifcvt.c: Likewise.
14113         * ira.c: Likewise.
14114         * jump.c: Likewise.
14115         * lcm.c: Likewise.
14116         * loop-invariant.c: Likewise.
14117         * lra-assigns.c: Likewise.
14118         * lra-coalesce.c: Likewise.
14119         * lra-constraints.c: Likewise.
14120         * lra-eliminations.c: Likewise.
14121         * lra-lives.c: Likewise.
14122         * lra-spills.c: Likewise.
14123         * lra.c: Likewise.
14124         * lto-cgraph.c: Likewise.
14125         * lto-section-in.c: Likewise.
14126         * lto-section-out.c: Likewise.
14127         * lto-streamer-in.c: Likewise.
14128         * lto-streamer-out.c: Likewise.
14129         * mode-switching.c: Likewise.
14130         * modulo-sched.c: Likewise.
14131         * omp-low.c: Likewise.
14132         * optabs.c: Likewise.
14133         * passes.c: Likewise.
14134         * postreload-gcse.c: Likewise.
14135         * postreload.c: Likewise.
14136         * predict.c: Likewise.
14137         * profile.c: Likewise.
14138         * recog.c: Likewise.
14139         * ree.c: Likewise.
14140         * reg-stack.c: Likewise.
14141         * regcprop.c: Likewise.
14142         * reginfo.c: Likewise.
14143         * regrename.c: Likewise.
14144         * reload.c: Likewise.
14145         * reload1.c: Likewise.
14146         * reorg.c: Likewise.
14147         * resource.c: Likewise.
14148         * rtlanal.c: Likewise.
14149         * sched-deps.c: Likewise.
14150         * sched-ebb.c: Likewise.
14151         * sched-rgn.c: Likewise.
14152         * sel-sched-dump.c: Likewise.
14153         * sel-sched-ir.c: Likewise.
14154         * sel-sched.c: Likewise.
14155         * shrink-wrap.c: Likewise.
14156         * simplify-rtx.c: Likewise.
14157         * statistics.c: Likewise.
14158         * stmt.c: Likewise.
14159         * stor-layout.c: Likewise.
14160         * store-motion.c: Likewise.
14161         * symtab.c: Likewise.
14162         * targhooks.c: Likewise.
14163         * toplev.c: Likewise.
14164         * trans-mem.c: Likewise.
14165         * tree-cfg.c: Likewise.
14166         * tree-cfgcleanup.c: Likewise.
14167         * tree-dfa.c: Likewise.
14168         * tree-eh.c: Likewise.
14169         * tree-inline.c: Likewise.
14170         * tree-into-ssa.c: Likewise.
14171         * tree-nested.c: Likewise.
14172         * tree-nrv.c: Likewise.
14173         * tree-profile.c: Likewise.
14174         * tree-ssa-alias.c: Likewise.
14175         * tree-ssa-ccp.c: Likewise.
14176         * tree-ssa-copy.c: Likewise.
14177         * tree-ssa-copyrename.c: Likewise.
14178         * tree-ssa-dom.c: Likewise.
14179         * tree-ssa-operands.c: Likewise.
14180         * tree-ssa-propagate.c: Likewise.
14181         * tree-ssa-structalias.c: Likewise.
14182         * tree-ssa-tail-merge.c: Likewise.
14183         * tree-ssa-threadedge.c: Likewise.
14184         * tree-ssa-threadupdate.c: Likewise.
14185         * tree-ssa-uncprop.c: Likewise.
14186         * tree-ssa-uninit.c: Likewise.
14187         * tree-ssa.c: Likewise.
14188         * tree-stdarg.c: Likewise.
14189         * tree-tailcall.c: Likewise.
14190         * tree.c: Likewise.
14191         * tsan.c: Likewise.
14192         * valtrack.c: Likewise.
14193         * varasm.c: Likewise.
14194         * vmsdbgout.c: Likewise.
14195         * web.c: Likewise.
14196         * config/aarch64/aarch64.c: Add flattened includes from function.h.
14197         * config/alpha/alpha.c: Likewise.
14198         * config/arc/arc.c: Likewise.
14199         * config/arm/arm.c: Likewise.
14200         * config/avr/avr-log.c: Likewise.
14201         * config/avr/avr.c: Likewise.
14202         * config/bfin/bfin.c: Likewise.
14203         * config/c6x/c6x.c: Likewise.
14204         * config/cr16/cr16.c: Likewise.
14205         * config/cris/cris.c: Likewise.
14206         * config/darwin.c: Likewise.
14207         * config/epiphany/epiphany.c: Likewise.
14208         * config/epiphany/mode-switch-use.c: Likewise.
14209         * config/epiphany/resolve-sw-modes.c: Likewise.
14210         * config/fr30/fr30.c: Likewise.
14211         * config/frv/frv.c: Likewise.
14212         * config/h8300/h8300.c: Likewise.
14213         * config/i386/i386.c: Likewise.
14214         * config/ia64/ia64.c: Likewise.
14215         * config/iq2000/iq2000.c: Likewise.
14216         * config/lm32/lm32.c: Likewise.
14217         * config/m32c/m32c.c: Likewise.
14218         * config/m32r/m32r.c: Likewise.
14219         * config/m68k/m68k.c: Likewise.
14220         * config/mcore/mcore.c: Likewise.
14221         * config/mep/mep-pragma.c: Likewise.
14222         * config/mep/mep.c: Likewise.
14223         * config/microblaze/microblaze.c: Likewise.
14224         * config/mips/mips.c: Likewise.
14225         * config/mmix/mmix.c: Likewise.
14226         * config/mn10300/mn10300.c: Likewise.
14227         * config/moxie/moxie.c: Likewise.
14228         * config/msp430/msp430.c: Likewise.
14229         * config/nds32/nds32-cost.c: Likewise.
14230         * config/nds32/nds32-fp-as-gp.c: Likewise.
14231         * config/nds32/nds32-intrinsic.c: Likewise.
14232         * config/nds32/nds32-isr.c: Likewise.
14233         * config/nds32/nds32-md-auxiliary.c: Likewise.
14234         * config/nds32/nds32-memory-manipulation.c: Likewise.
14235         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14236         * config/nds32/nds32-predicates.c: Likewise.
14237         * config/nds32/nds32.c: Likewise.
14238         * config/nios2/nios2.c: Likewise.
14239         * config/pa/pa.c: Likewise.
14240         * config/pdp11/pdp11.c: Likewise.
14241         * config/rl78/rl78.c: Likewise.
14242         * config/rs6000/rs6000.c: Likewise.
14243         * config/rx/rx.c: Likewise.
14244         * config/s390/s390.c: Likewise.
14245         * config/score/score.c: Likewise.
14246         * config/sh/sh.c: Likewise.
14247         * config/sparc/sparc.c: Likewise.
14248         * config/spu/spu.c: Likewise.
14249         * config/stormy16/stormy16.c: Likewise.
14250         * config/tilegx/tilegx.c: Likewise.
14251         * config/tilepro/tilepro.c: Likewise.
14252         * config/v850/v850.c: Likewise.
14253         * config/vax/vax.c: Likewise.
14254         * config/xtensa/xtensa.c: Likewise.
14255
14256 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
14257
14258         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
14259         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
14260
14261 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
14262
14263         * config/sh/sh-protos.h (fldi_ok): Remove.
14264         * config/sh/sh.c (fldi_ok): Likewise.
14265         (sh_secondary_reload): Don't use fldi_ok.
14266         * config/sh/constraints.md (G constraint, H constraint): Don't use
14267         fldi_ok.
14268
14269 2014-10-16  Martin Liska  <mliska@suse.cz>
14270
14271         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
14272         Cast to unsigned long.
14273         (sem_item_optimizer::dump_cong_classes): Likewise.
14274
14275 2014-10-16  Tom de Vries  <tom@codesourcery.com>
14276
14277         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
14278         with SSA_NAME_IN_FREELIST.
14279
14280 2014-10-16  Richard Biener  <rguenther@suse.de>
14281
14282         PR middle-end/63554
14283         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
14284         (fold_builtin_strncat_chk): Move ...
14285         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
14286         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
14287
14288 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
14289
14290         PR target/59401
14291         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
14292         GBR to 0.
14293
14294 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14295             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14296             Anna Tikhonova  <anna.tikhonova@intel.com>
14297             Ilya Tocar  <ilya.tocar@intel.com>
14298             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14299             Ilya Verbin  <ilya.verbin@intel.com>
14300             Kirill Yukhin  <kirill.yukhin@intel.com>
14301             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14302
14303         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
14304         V64QI modes.
14305
14306 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14307             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14308             Anna Tikhonova  <anna.tikhonova@intel.com>
14309             Ilya Tocar  <ilya.tocar@intel.com>
14310             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14311             Ilya Verbin  <ilya.verbin@intel.com>
14312             Kirill Yukhin  <kirill.yukhin@intel.com>
14313             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14314
14315         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
14316         V16SI, V32HI, V64QI modes.
14317
14318 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
14319
14320         PR target/53513
14321         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
14322         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
14323
14324         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
14325         to match fp insn patterns.
14326         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
14327         list.
14328         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
14329         expand_df_unop, expand_df_binop): Remove.
14330         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
14331         FPSCR_STAT_REG as not call clobbered.
14332         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
14333         invoking fpscr_set_from_mem.
14334
14335         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
14336         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
14337         FPSCR_STAT_REG.
14338         (REGISTER_NAMES): Adjust.
14339         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14340         (FIRST_PSEUDO_REGISTER): Increase to 156.
14341         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
14342         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
14343         FPSCR_STAT_REG.
14344         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
14345         FPSCR_MODES_REG and FPSCR_STAT_REG.
14346         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14347
14348         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
14349         FPSCR_SZ): Add new constants.
14350         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
14351
14352         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
14353         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
14354         Use TARGET_FPU_ANY condition.
14355         (fpu_switch peephole2): Remove.
14356         (fpu_switch split): Use simple_mem_operand to capture the mem and
14357         adjust split implementation.
14358         (extend_psi_si, truncate_si_psi): New insns.
14359         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
14360         set of FPSCR_MODES_REG.
14361
14362         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
14363         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
14364         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
14365         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
14366         call_value_compact, call_value_compact_rettramp, call,
14367         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
14368         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
14369         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
14370         sibcall_value_compact, sibcall_value, call_value_pop_compact,
14371         call_value_pop_compact_rettramp, various unnamed splits):
14372         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
14373         function uses.
14374
14375         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
14376         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
14377         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
14378         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
14379         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
14380
14381         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
14382         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
14383         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
14384         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
14385         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
14386         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
14387         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
14388
14389 2014-10-16  Martin Liska  <mliska@suse.cz>
14390             Jan Hubicka  <hubicka@ucw.cz>
14391
14392         * Makefile.in: New object files included.
14393         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
14394         is printed.
14395         (verify_edge_corresponds_to_fndecl): More sensitive verification
14396         of nodes that are merged by IPA ICF.
14397         * cgraph.h (cgraph_node::num_references): New function.
14398         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
14399         * common.opt: New options ipa-icf, ipa-icf-functions and
14400         ipa-icf-variables introduced.
14401         * doc/invoke.texi: Documentation of new options introduced.
14402         * ipa-icf-gimple.c: New file.
14403         * ipa-icf-gimple.h: New file.
14404         * ipa-icf.c: New file.
14405         * ipa-icf.h: New file.
14406         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
14407         (input_overwrite_node): Likewise.
14408         * lto-section-in.c: New icf section added.
14409         * lto-streamer.h (enum lto_section_type): Likewise.
14410         * opts.c (common_handle_option): New option added.
14411         * passes.def: New pass included.
14412         * timevar.def: Time variable for IPA ICF added.
14413         * tree-pass.h: New IPA ICF pass entry point added.
14414
14415 2014-10-16  Richard Biener  <rguenther@suse.de>
14416
14417         PR tree-optimization/63168
14418         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
14419         latches if after merging they are no longer simple.
14420         * cfghooks.c (merge_blocks): Handle merging a latch block
14421         into another block.
14422
14423 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14424             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14425             Anna Tikhonova  <anna.tikhonova@intel.com>
14426             Ilya Tocar  <ilya.tocar@intel.com>
14427             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14428             Ilya Verbin  <ilya.verbin@intel.com>
14429             Kirill Yukhin  <kirill.yukhin@intel.com>
14430             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14431
14432         * config/i386/sse.md
14433         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
14434         support AVX-512VL instructions.
14435
14436 2014-10-16  DJ Delorie  <dj@redhat.com>
14437
14438         * tree-core.h: Fix comment to not assume pointers are multiples of
14439         bytes.
14440
14441 2014-10-15  Tom Tromey  <tromey@redhat.com>
14442
14443         * timevar.h (class auto_timevar): New class.
14444
14445 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
14446
14447         PR go/59432
14448         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14449         Remove the second alternative.
14450         (regprefix): Remove mode attribute.
14451         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
14452         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
14453
14454         Revert:
14455         2013-11-05  Ian Lance Taylor  <iant@google.com>
14456
14457         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14458         If possible, add .cfi directives to record change to bx.
14459         * config/i386/i386.c (ix86_emit_cfi): New function.
14460         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
14461
14462 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
14463
14464         PR lto/62026
14465         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
14466         to duplicate.
14467         * lto-streamer-out.c (lto_output): Handle correctly thunks that was
14468         born at WPA time.
14469
14470 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
14471
14472         PR rtl-optimization/63448
14473         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
14474         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
14475         (LRA_MAX_INHERITANCE_PASSES): Use it.
14476         (lra_constraint_iter_after_spill): Remove.
14477         (lra_assignment_iter): New.
14478         (lra_assignment_iter_after_spill): New.
14479         * lra-assigns.c (lra_assignment_iter): New.
14480         (lra_assignment_iter_after_spill): New.
14481         (former_reload_pseudo_spill_p): New.
14482         (spill_for): Set up former_reload_pseudo_spill_p.
14483         (setup_live_pseudos_and_spill_after_risky): Ditto.
14484         (assign_by_spills): Ditto.
14485         (lra_assign): Increment lra_assignment_iter.  Print the iteration
14486         number.  Reset former_reload_pseudo_spill_p.  Check
14487         lra_assignment_iter_after_spill.
14488         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
14489         lra_assignment_iter and lra_assignment_iter_after_spill.
14490         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
14491         (lra_constraints): Remove code with
14492         lra_assignment_iter_after_spill.
14493
14494 2014-10-15  Teresa Johnson  <tejohnson@google.com>
14495
14496         PR bootstrap/63432
14497         * tree-ssa-threadupdate.c (recompute_probabilities): Better
14498         overflow checking.
14499
14500 2014-10-15  Renlin Li <renlin.li@arm.com>
14501
14502         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
14503         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
14504         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
14505         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
14506
14507 2014-10-15  Richard Biener  <rguenther@suse.de>
14508
14509         * gimple-fold.c (gimple_fold_call): Properly keep virtual
14510         SSA form up-to-date when devirtualizing a call to
14511         __builtin_unreachable and avoid fixing up EH info here.
14512
14513 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14514             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14515             Anna Tikhonova  <anna.tikhonova@intel.com>
14516             Ilya Tocar  <ilya.tocar@intel.com>
14517             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14518             Ilya Verbin  <ilya.verbin@intel.com>
14519             Kirill Yukhin  <kirill.yukhin@intel.com>
14520             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14521
14522         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
14523         to support AVX-512BW.
14524         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
14525         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
14526         (define_insn "*<plusminus_insn><mode>3"): Ditto.
14527         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
14528         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14529         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
14530         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14531         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
14532         (define_insn "*andnot<mode>3"): Ditto.
14533         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
14534         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
14535         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
14536         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
14537         (define_insn "*abs<mode>2"): Remove masking support.
14538         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
14539         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
14540         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14541
14542 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14543             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14544             Anna Tikhonova  <anna.tikhonova@intel.com>
14545             Ilya Tocar  <ilya.tocar@intel.com>
14546             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14547             Ilya Verbin  <ilya.verbin@intel.com>
14548             Kirill Yukhin  <kirill.yukhin@intel.com>
14549             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14550
14551         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14552         * config/i386/sse.md
14553         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14554         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14555         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14556         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14557         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14558         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14559         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14560
14561 2014-10-15  Renlin Li <renlin.li@arm.com>
14562
14563         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14564
14565 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
14566
14567         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14568         MINUS_EXPR in unsigned type to avoid undefined behavior.
14569
14570 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
14571
14572         * stor-layout.c (self_referential_size): Do not promote arguments.
14573
14574 2014-10-15  Marek Polacek  <polacek@redhat.com>
14575
14576         * doc/invoke.texi: Update to reflect that GNU11 is the default
14577         mode for C.
14578         * c-common.h (c_language_kind): Update comment.
14579
14580 2014-10-15  Richard Biener  <rguenther@suse.de>
14581
14582         * hash-table.c: Include bconfig.h if building for the host.
14583         * hash-table.h: Do not include ggc.h on the host but just declare
14584         a few ggc allocation templates.
14585
14586 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14587             Jeff Law  <law@redhat.com>
14588
14589         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14590         multiple hard registers, use smaller mode derived from MODE.
14591
14592 2014-10-15  Andreas Schwab  <schwab@suse.de>
14593
14594         * explow.c (convert_memory_address_addr_space_1): Mark in_const
14595         as ATTRIBUTE_UNUSED.
14596
14597 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
14598
14599         * loop-unroll.c (decide_unrolling_and_peeling): Rename to
14600         (decide_unrolling): ... this one.
14601         (peel_loops_completely): Remove.
14602         (decide_peel_simple): Remove.
14603         (decide_peel_once_rolling): Remove.
14604         (decide_peel_completely): Remove.
14605         (peel_loop_simple): Remove.
14606         (peel_loop_completely): Remove.
14607         (unroll_and_peel_loops): Rename to ...
14608         (unroll_loops): ... this one; handle only unrolling.
14609         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and LPT_PEEL_SIMPLE.
14610         (UAP_PEEL): Remove.
14611         (unroll_and_peel_loops): Remove.
14612         (unroll_loops): New.
14613         * passes.def: Replace pass_rtl_unroll_and_peel_loops
14614         by pass_rtl_unroll_loops.
14615         * loop-init.c (gate_rtl_unroll_and_peel_loops,
14616         rtl_unroll_and_peel_loops): Rename to ...
14617         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14618         (pass_rtl_unroll_and_peel_loops): Rename to ...
14619         (pass_rtl_unroll_loops): ... this one.
14620         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14621         (make_pass_rtl_unroll_loops): New.
14622         * tree-ssa-loop-ivcanon.c (estimated_peeled_sequence_size,
14623         try_peel_loop): New.
14624         (canonicalize_loop_induction_variables): Update.
14625
14626 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14627
14628         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14629         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14630         !TARGET_HARD_FLOAT_POSTINC.
14631         (*lsip, *ssip): new instructions.
14632
14633 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14634
14635         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14636         remove.
14637
14638 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14639
14640         * explow.c (convert_memory_address_addr_space): Rename to ...
14641         (convert_memory_address_addr_space_1): This.  Add in_const argument.
14642         Inside a CONST RTL, permute the conversion and addition of constant
14643         for zero and sign extended pointers.
14644         (convert_memory_address_addr_space): New function.
14645
14646 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14647
14648         Revert:
14649         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14650
14651         PR middle-end/49721
14652         * explow.c (convert_memory_address_addr_space): Also permute the
14653         conversion and addition of constant for zero-extend.
14654
14655 2014-10-14  DJ Delorie  <dj@redhat.com>
14656
14657         * config/msp430/msp430-modes.def (PSI): Add.
14658
14659         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding):
14660         New.
14661         (msp430_hard_regno_nregs_with_padding): New.
14662         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14663         (msp430_hard_regno_nregs_has_padding): New.
14664         (msp430_hard_regno_nregs_with_padding): New.
14665         (msp430_unwind_word_mode): Use PSImode instead of SImode.
14666         (msp430_addr_space_legitimate_address_p): New.
14667         (msp430_asm_integer): New.
14668         (msp430_init_dwarf_reg_sizes_extra): New.
14669         (msp430_print_operand): Use X suffix for PSImode even in small model.
14670         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14671         (PTR_SIZE): ...but 4 bytes for EH.
14672         (SIZE_TYPE): Use __int20.
14673         (PTRDIFF_TYPE): Likewise.
14674         (INCOMING_FRAME_SP_OFFSET): Adjust.
14675         * config/msp430/msp430.md (movqi_topbyte): New.
14676         (movpsi): Use fixed suffixes.
14677         (movsipsi2): Enable for 430X, not large model.
14678         (extendhipsi2): Likewise.
14679         (zero_extendhisi2): Likewise.
14680         (zero_extendhisipsi2): Likewise.
14681         (extend_and_shift1_hipsi2): Likewise.
14682         (extendpsisi2): Likewise.
14683         (*bitbranch<mode>4_z): Fix suffix logic.
14684
14685 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
14686
14687         PR ada/62019
14688         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14689         do not choke on null node.
14690         <VAR_DECL>: Likewise.
14691
14692 2014-10-14  DJ Delorie  <dj@redhat.com>
14693
14694         * machmode.h (int_n_data_t): New.
14695         (int_n_enabled_p): New.
14696         (int_n_data): New.
14697         * tree.c (int_n_enabled_p): New.
14698         (int_n_trees): New.
14699         (make_or_reuse_type): Check for all __intN types, not just __int128.
14700         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
14701         entries.
14702         * tree.h (int128_integer_type_node): Remove.
14703         (int128_unsigned_type_node): Remove.
14704         (int_n_trees_t): New.
14705         (int_n_enabled_p): New.
14706         (int_n_trees): New.
14707         * toplev.c (standard_type_bitsize): New.
14708         (do_compile): Check which __intN types are enabled for the current run.
14709         * builtin-types.def (BT_INT128): Remove.
14710         (BT_UINT128): Remove.
14711         * machmode.def: Add macro to create __int128 for all targets.
14712         * stor-layout.c (mode_for_size): Support __intN types.
14713         (smallest_mode_for_size): Likewise.
14714         (initialize_sizetypes): Support __intN types.
14715         * genmodes.c (struct mode_data): Add int_n field.
14716         (blank_mode): Likewise.
14717         (INT_N): New.
14718         (make_int_n): New.
14719         (emit_insn_modes_h): Count __intN entries and define NUM_INT_N_ENTS.
14720         (emit_mode_int_n): New.
14721         (emit_insn_modes_c): Call it.
14722         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14723         types, not just __int128.
14724         * tree-core.h (integer_type_kind): Remove __int128-specific
14725         entries, reserve spots for __intN entries.
14726
14727         * config/msp430/msp430-modes.def (PSI): Add.
14728
14729 2014-10-14  Kito Cheng  <kito@0xlab.org>
14730
14731         * ira.c: Fix typo in comment.
14732         * ira.h: Ditto.
14733         * ira-build.c: Ditto.
14734         * ira-color.c: Ditto.
14735         * ira-emit.c: Ditto.
14736         * ira-int.h: Ditto.
14737         * ira-lives.c: Ditto.
14738
14739 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
14740
14741         PR rtl-optimization/63475
14742         * alias.c (true_dependence_1): Always use get_addr to extract
14743         true address operands from x_addr and mem_addr.  Use extracted
14744         address operands to check for references with alignment ANDs.
14745         Use extracted address operands with find_base_term and
14746         base_alias_check. For noncanonicalized operands call canon_rtx with
14747         extracted address operand.
14748         (write_dependence_1): Ditto.
14749         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
14750
14751 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
14752
14753         PR target/63534
14754         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14755         __morestack local.
14756
14757 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14758             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14759             Anna Tikhonova  <anna.tikhonova@intel.com>
14760             Ilya Tocar  <ilya.tocar@intel.com>
14761             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14762             Ilya Verbin  <ilya.verbin@intel.com>
14763             Kirill Yukhin  <kirill.yukhin@intel.com>
14764             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14765
14766         * config/i386/i386.c
14767         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14768         (ix86_expand_int_vcond): Ditto.
14769
14770 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14771             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14772             Anna Tikhonova  <anna.tikhonova@intel.com>
14773             Ilya Tocar  <ilya.tocar@intel.com>
14774             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14775             Ilya Verbin  <ilya.verbin@intel.com>
14776             Kirill Yukhin  <kirill.yukhin@intel.com>
14777             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14778
14779         * config/i386/i386.c
14780         (emit_reduc_half): Handle V64QI and V32HI mode.
14781         * config/i386/sse.md
14782         (define_mode_iterator VI_AVX512BW): New.
14783         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14784
14785 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14786             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14787             Anna Tikhonova  <anna.tikhonova@intel.com>
14788             Ilya Tocar  <ilya.tocar@intel.com>
14789             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14790             Ilya Verbin  <ilya.verbin@intel.com>
14791             Kirill Yukhin  <kirill.yukhin@intel.com>
14792             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14793
14794         * config/i386/sse.md
14795         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14796
14797 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14798             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14799             Anna Tikhonova  <anna.tikhonova@intel.com>
14800             Ilya Tocar  <ilya.tocar@intel.com>
14801             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14802             Ilya Verbin  <ilya.verbin@intel.com>
14803             Kirill Yukhin  <kirill.yukhin@intel.com>
14804             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14805
14806         * config/i386/i386.c
14807         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14808         * config/i386/sse.md
14809         (define_mode_iterator VI): Add V64QI and V32HI modes.
14810
14811 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14812             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14813             Anna Tikhonova  <anna.tikhonova@intel.com>
14814             Ilya Tocar  <ilya.tocar@intel.com>
14815             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14816             Ilya Verbin  <ilya.verbin@intel.com>
14817             Kirill Yukhin  <kirill.yukhin@intel.com>
14818             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14819
14820         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14821
14822 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14823             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14824             Anna Tikhonova  <anna.tikhonova@intel.com>
14825             Ilya Tocar  <ilya.tocar@intel.com>
14826             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14827             Ilya Verbin  <ilya.verbin@intel.com>
14828             Kirill Yukhin  <kirill.yukhin@intel.com>
14829             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14830
14831         * config/i386/sse.md
14832         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14833         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14834
14835 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14836             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14837             Anna Tikhonova  <anna.tikhonova@intel.com>
14838             Ilya Tocar  <ilya.tocar@intel.com>
14839             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14840             Ilya Verbin  <ilya.verbin@intel.com>
14841             Kirill Yukhin  <kirill.yukhin@intel.com>
14842             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14843
14844         * config/i386/sse.md
14845         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14846         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14847
14848 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14849             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14850             Anna Tikhonova  <anna.tikhonova@intel.com>
14851             Ilya Tocar  <ilya.tocar@intel.com>
14852             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14853             Ilya Verbin  <ilya.verbin@intel.com>
14854             Kirill Yukhin  <kirill.yukhin@intel.com>
14855             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14856
14857         * config/i386/sse.md
14858         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14859         (define_mode_iterator VI2_AVX2): Add V32HI mode.
14860         (define_expand "mul<mode>3<mask_name>"): Add masking.
14861         (define_insn "*mul<mode>3<mask_name>"): Ditto.
14862         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14863         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14864         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14865         (define_mode_attr SDOT_PMADD_SUF): Ditto.
14866         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14867         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14868         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14869         (define_insn "avx2_packusdw"): Delete.
14870         (define_insn "sse4_1_packusdw"): Ditto.
14871         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
14872
14873 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14874             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14875             Anna Tikhonova  <anna.tikhonova@intel.com>
14876             Ilya Tocar  <ilya.tocar@intel.com>
14877             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14878             Ilya Verbin  <ilya.verbin@intel.com>
14879             Kirill Yukhin  <kirill.yukhin@intel.com>
14880             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14881
14882         * config/i386/sse.md
14883         (define_insn "vec_dup<mode>"): Update constraints.
14884
14885 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14886             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14887             Anna Tikhonova  <anna.tikhonova@intel.com>
14888             Ilya Tocar  <ilya.tocar@intel.com>
14889             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14890             Ilya Verbin  <ilya.verbin@intel.com>
14891             Kirill Yukhin  <kirill.yukhin@intel.com>
14892             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14893
14894         * config/i386/sse.md
14895         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14896         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14897         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14898
14899 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14900             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14901             Anna Tikhonova  <anna.tikhonova@intel.com>
14902             Ilya Tocar  <ilya.tocar@intel.com>
14903             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14904             Ilya Verbin  <ilya.verbin@intel.com>
14905             Kirill Yukhin  <kirill.yukhin@intel.com>
14906             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14907
14908         * config/i386/sse.md
14909         (define_expand "mul<mode>3<mask_name>"): Add masking.
14910
14911 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14912             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14913             Anna Tikhonova  <anna.tikhonova@intel.com>
14914             Ilya Tocar  <ilya.tocar@intel.com>
14915             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14916             Ilya Verbin  <ilya.verbin@intel.com>
14917             Kirill Yukhin  <kirill.yukhin@intel.com>
14918             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14919
14920         * config/i386/sse.md
14921         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14922         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14923
14924 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14925             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14926             Anna Tikhonova  <anna.tikhonova@intel.com>
14927             Ilya Tocar  <ilya.tocar@intel.com>
14928             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14929             Ilya Verbin  <ilya.verbin@intel.com>
14930             Kirill Yukhin  <kirill.yukhin@intel.com>
14931             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14932
14933         * config/i386/sse.md
14934         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14935         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14936         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14937         Ditto.
14938
14939 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14940             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14941             Anna Tikhonova  <anna.tikhonova@intel.com>
14942             Ilya Tocar  <ilya.tocar@intel.com>
14943             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14944             Ilya Verbin  <ilya.verbin@intel.com>
14945             Kirill Yukhin  <kirill.yukhin@intel.com>
14946             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14947
14948         * config/i386/sse.md
14949         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14950         use VF_128_256 mode iterator and update assembler emit code.
14951         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14952         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14953         Add masking, use VF_128_256 mode iterator.
14954         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14955         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14956         Add masking, use VF_128_256 mode iterator and update assembler emit
14957         code.
14958         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14959         (define_mode_attr avx512flogicsuff): Delete.
14960         (define_insn "avx512f_<logic><mode>"): Ditto.
14961         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14962         MODE_TI.
14963         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14964
14965 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14966             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14967             Anna Tikhonova  <anna.tikhonova@intel.com>
14968             Ilya Tocar  <ilya.tocar@intel.com>
14969             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14970             Ilya Verbin  <ilya.verbin@intel.com>
14971             Kirill Yukhin  <kirill.yukhin@intel.com>
14972             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14973
14974         * config/i386/sse.md
14975         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14976         (define_expand "vashr<mode>3<mask_name>"): Add masking,
14977         use VI12_128 mode iterator.
14978         (define_expand "ashrv2di3<mask_name>"): New.
14979
14980 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14981             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14982             Anna Tikhonova  <anna.tikhonova@intel.com>
14983             Ilya Tocar  <ilya.tocar@intel.com>
14984             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14985             Ilya Verbin  <ilya.verbin@intel.com>
14986             Kirill Yukhin  <kirill.yukhin@intel.com>
14987             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14988
14989         * config/i386/i386.c
14990         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14991         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14992         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14993         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14994         CODE_FOR_avx512vl_ucmpv4si3_mask.
14995         * config/i386/sse.md
14996         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14997         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14998         (define_insn
14999         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
15000         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
15001         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
15002         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
15003         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
15004         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
15005
15006 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15007             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15008             Anna Tikhonova  <anna.tikhonova@intel.com>
15009             Ilya Tocar  <ilya.tocar@intel.com>
15010             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15011             Ilya Verbin  <ilya.verbin@intel.com>
15012             Kirill Yukhin  <kirill.yukhin@intel.com>
15013             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15014
15015         * config/i386/sse.md
15016         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
15017         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
15018         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
15019         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
15020         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
15021         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
15022         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
15023         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
15024         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
15025
15026 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15027             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15028             Anna Tikhonova  <anna.tikhonova@intel.com>
15029             Ilya Tocar  <ilya.tocar@intel.com>
15030             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15031             Ilya Verbin  <ilya.verbin@intel.com>
15032             Kirill Yukhin  <kirill.yukhin@intel.com>
15033             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15034
15035         * config/i386/sse.md
15036         (define_insn "avx512f_blendm<mode>"): Delete.
15037         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
15038         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
15039         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
15040         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
15041         (define_insn
15042         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
15043         Remove.
15044         (define_insn
15045         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
15046         New.
15047         (define_insn
15048         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
15049         Ditto.
15050         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
15051         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
15052         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
15053         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
15054         Delete.
15055         (define_insn
15056         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
15057         New.
15058         (define_insn
15059         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
15060         Ditto.
15061         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
15062         Delete.
15063         (define_insn
15064         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
15065         New.
15066         (define_insn
15067         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
15068         Ditto.
15069
15070 2014-10-14  Richard Biener  <rguenther@suse.de>
15071
15072         PR tree-optimization/63512
15073         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
15074         modified.
15075
15076 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
15077
15078         PR target/63260
15079         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
15080         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
15081         of FPSCR.
15082         (negsf2_i): Rename to *negsf2_i.
15083         (abssf2_i): Rename to *abssf2_i.
15084         (negdf2_i): Rename to *negdf2_i.
15085         (absdf2_i): Rename to *absdf2_i.
15086
15087 2014-10-14  Felix Yang  <felix.yang@huawei.com>
15088             Jeff Law  <law@redhat.com>
15089
15090         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
15091         "replace" into boolean bitfields; turn member "loop_depth" into a short
15092         integer; add new member "no_equiv" and "reserved".
15093         (no_equiv): Set no_equiv of struct equivalence if register is marked
15094         as having no known equivalence.
15095         (update_equiv_regs): Check all definitions for a multiple-set
15096         register to make sure that the RHS have the same value.
15097
15098 2014-10-13  Richard Henderson  <rth@redhat.com>
15099
15100         * combine-stack-adj.c (no_unhandled_cfa): New.
15101         (maybe_merge_cfa_adjust): New.
15102         (combine_stack_adjustments_for_block): Use them.
15103
15104 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
15105
15106         * Makefile.in (TAGS): Tag ../include files.
15107
15108 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15109
15110         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
15111         to rs6000_dbx_register_number.
15112         (DWARF_FRAME_REGNUM): Redefine as identity map.
15113         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
15114         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
15115         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
15116         argument to handle .debug_frame and .eh_frame directly.  Always
15117         translate SPE high register numbers.  Add special treatment for CR,
15118         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
15119
15120         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
15121         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
15122         (RS6000_USE_DWARF_NUMBERING): Define.
15123         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
15124         (RS6000_USE_DWARF_NUMBERING): Define.
15125         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
15126         (RS6000_USE_DWARF_NUMBERING): Define.
15127         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
15128         (RS6000_USE_DWARF_NUMBERING): Define.
15129         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
15130         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
15131
15132 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
15133
15134         * config/i386/i386.c (ix86_address_cost): Lower cost for
15135         when address contains GOT register.
15136
15137 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
15138             Vladimir Makarov  <vmakarov@redhat.com>
15139
15140         PR target/8340
15141         PR middle-end/47602
15142         PR rtl-optimization/55458
15143         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
15144         (ix86_init_pic_reg): New.
15145         (ix86_select_alt_pic_regnum): Add check on pseudo register.
15146         (ix86_save_reg): Likewise.
15147         (ix86_expand_prologue): Remove PIC register initialization
15148         now performed in ix86_init_pic_reg.
15149         (ix86_output_function_epilogue): Add check on pseudo register.
15150         (set_pic_reg_ever_alive): New.
15151         (legitimize_pic_address): Replace df_set_regs_ever_live with new
15152         set_pic_reg_ever_alive.
15153         (legitimize_tls_address): Likewise.
15154         (ix86_pic_register_p): New check.
15155         (ix86_delegitimize_address): Add check on pseudo register.
15156         (ix86_expand_call): Insert move from pseudo PIC register to ABI
15157         defined REAL_PIC_OFFSET_TABLE_REGNUM.
15158         (TARGET_INIT_PIC_REG): New.
15159         (TARGET_USE_PSEUDO_PIC_REG): New.
15160         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
15161         if pic_offset_table_rtx exists.
15162         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
15163         Document.
15164         * doc/tm.texi: Regenerate.
15165         * function.c (assign_parms): Generate pseudo register for PIC.
15166         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
15167         register.
15168         * ira-color.c (color_pass): Add check on pseudo register.
15169         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
15170         register.
15171         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
15172         register.
15173         (ira): Add target specific PIC register initialization.
15174         (do_reload): Keep PIC pseudo register.
15175         * lra-assigns.c (spill_for): Add checks on pseudo register.
15176         * lra-constraints.c (contains_symbol_ref_p): New.
15177         (lra_constraints): Enable lra risky transformations when PIC is pseudo
15178         register.
15179         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
15180         * target.def (use_pseudo_pic_reg): New.
15181         (init_pic_reg): New.
15182
15183 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
15184
15185         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
15186         Remove m_SILVERMONT and m_INTEL from the tune.
15187
15188 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15189
15190         PR libfortran/63471
15191         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
15192         when _HPUX_SOURCE is defined.
15193
15194 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
15195
15196         PR tree-optimization/62127
15197         * tree.c (remap_type_1): When remapping array, remap
15198         also its type.
15199
15200 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
15201
15202         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
15203         longer impact parallelization.
15204
15205 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
15206
15207         PR bootstrap/63496
15208         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
15209
15210 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
15211
15212         * asan.c (instrument_derefs): BIT_FIELD_REF added.
15213
15214 2014-10-13  Richard Biener  <rguenther@suse.de>
15215
15216         PR tree-optimization/63419
15217         * gimple-fold.h (gimple_convert): New function.
15218         * gimple-fold.c (gimple_convert): Likewise.
15219         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
15220         to split out required conversions early.
15221
15222 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
15223
15224         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
15225         Add the parts of an insn in reverse order, with the pattern at
15226         the top of the queue.  Detect when we're iterating over a SEQUENCE
15227         pattern and in that case just consider patterns of subinstructions.
15228
15229 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
15230
15231         PR target/59401
15232         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
15233         of rtx.
15234         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
15235         insn walking.
15236         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
15237         address.  Use def chains to handle GBR clobbering call insns.
15238
15239 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
15240
15241         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
15242         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
15243         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
15244         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
15245         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
15246         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
15247         * doc/gty.texi (for_user): Document new option.
15248         * gengtype.c (create_user_defined_type): Don't try to get a struct for
15249         char.
15250         (walk_type): Don't error out on for_user option.
15251         (write_func_for_structure): Emit user marking routines if requested by
15252         for_user option.
15253         (write_local_func_for_structure): Likewise.
15254         (main): Mark types with for_user option as used.
15255         * ggc.h (gt_pch_nx): Add overload for unsigned int.
15256         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
15257         * hash-table.h (ggc_hasher): New struct.
15258         (hash_table::create_ggc): New function.
15259         (gt_pch_nx): New overload for hash_table.
15260
15261 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
15262
15263         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
15264         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
15265         * config/sh/sh.c: Likewise.
15266         * config/sh/sh-mem.cc: Likewise.
15267         * config/sh/sh.md: Likewise.
15268         * config/sh/predicates.md: Likewise.
15269         * config/sh/sync.md: Likewise.
15270
15271 2014-10-11  Martin Liska  <mliska@suse.cz>
15272
15273         PR middle-end/63376
15274         * cgraphunit.c (symbol_table::process_new_functions): Missing call
15275         for call_cgraph_insertion_hooks added.
15276
15277 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
15278
15279         PR c/63495
15280         * stor-layout.c (min_align_of_type): Don't decrease alignment
15281         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
15282         TYPE_USER_ALIGN is set.
15283
15284 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
15285
15286         PR rtl-optimization/63483
15287         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
15288         references when alignment ANDs are involved.
15289         (write_dependence_p): Ditto.
15290         (may_alias_p): Ditto.
15291
15292 2014-10-10  Marek Polacek  <polacek@redhat.com>
15293
15294         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
15295         * doc/invoke.texi: Document -fsanitize=object-size.
15296         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
15297         or it into SANITIZE_UNDEFINED.
15298         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
15299         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
15300         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
15301         * opts.c (common_handle_option): Handle -fsanitize=object-size.
15302         * ubsan.c: Include tree-object-size.h.
15303         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
15304         (ubsan_expand_bounds_ifn): Use false instead of 0.
15305         (ubsan_expand_objsize_ifn): New function.
15306         (instrument_object_size): New function.
15307         (pass_ubsan::execute): Add object size instrumentation.
15308         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
15309
15310 2014-10-10  Richard Henderson  <rth@redhat.com>
15311
15312         PR target/63404
15313         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
15314         Restrict the set of expressions we're willing to move.
15315
15316 2014-10-10  Jeff Law  <law@redhat.com>
15317
15318         * ira.c (struct equivalence): Promote INIT_INSNs field to
15319         an rtx_insn_list.  Add comments.
15320         (no_equiv): Promote LIST to an rtx_insn_list.  Update
15321         testing for and creating the special marker.  Use methods
15322         to extract the insn and next pointers.  Promote INSN to an
15323         rtx_insn.
15324         (update_equiv_regs): Update test for special marker in the
15325         INIT_INSNs list.
15326
15327 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15328
15329         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
15330         * configure: Regenerate.
15331         * config/aarch64/aarch64.c (aarch64_override_options): Handle
15332         TARGET_FIX_ERR_A53_835769_DEFAULT.
15333         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
15334         value to 2.
15335         * doc/install.texi (aarch64*-*-*): Document
15336         new --enable-fix-cortex-a53-835769 option.
15337
15338 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15339             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15340
15341         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
15342         (ADJUST_INSN_LENGTH): Define.
15343         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
15344         * config/aarch64/aarch64.c (is_mem_p): New function.
15345         (is_memory_op): Likewise.
15346         (aarch64_prev_real_insn): Likewise.
15347         (is_madd_op): Likewise.
15348         (dep_between_memop_and_curr): Likewise.
15349         (aarch64_madd_needs_nop): Likewise.
15350         (aarch64_final_prescan_insn): Likewise.
15351         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
15352         and -mno-fix-cortex-a53-835769 options.
15353
15354 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
15355
15356         PR tree-optimization/63464
15357         * tree-switch-conversion.c (struct case_bit_test): Remove
15358         hi and lo fields, add wide_int mask field.
15359         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
15360         hi/lo fields into wide_int mask operations, optimize by pretending
15361         minval to be 0 if maxval is small enough.
15362         (process_switch): Adjust caller.
15363
15364 2014-10-10  Richard Biener  <rguenther@suse.de>
15365
15366         PR tree-optimization/63379
15367         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
15368         a neutral operand for min/max when it is not a reduction chain.
15369
15370 2014-10-10  Richard Biener  <rguenther@suse.de>
15371
15372         PR tree-optimization/63476
15373         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
15374         (BB_LIVE_VOP_ON_EXIT): New define.
15375         (create_expression_by_pieces): Assign VUSEs to stmts.
15376         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
15377         (pass_pre::execute): Assert virtual SSA form is up-to-date
15378         after insertion.
15379
15380 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
15381
15382         * lra-assigns.c (assign_by_spills): Error out on spill failure.
15383
15384 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
15385
15386         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
15387         assertion.
15388
15389 2014-10-09  Richard Biener  <rguenther@suse.de>
15390
15391         PR tree-optimization/63380
15392         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
15393         may trap.
15394
15395 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15396
15397         * config/avr/avr.opt (mmcu=): Change to have a string value.
15398         (mn-flash=, mskip-bug, march=, mrmw): New options.
15399         (HeaderInclude): New.
15400         (mmcu=): Remove Var / Init clauses.
15401         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
15402         -specs option.
15403         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
15404         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
15405         (SYMBOL_FLAG_IO_LOW): Define.
15406         (avr_device_to_as, avr_device_to_ld): Don't declare.
15407         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
15408         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
15409         (EXTRA_SPEC_FUNCTIONS): Don't define.
15410         (ASM_SPEC): Translate -arch= option to -mmcu= option.
15411         (LINK_SPEC): Translate -arch= option to -m= option.
15412         Don't use device_to_ld / device_to_data_start.
15413         (STARTFILE_SPEC): Now empty.
15414         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
15415         * config/avr/gen-avr-mmcu-specs.c: New file.
15416         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
15417         (s-device-specs): Likewise.
15418         (GCC_PASSES): Add s-device-specs.
15419         (install-driver): Depend on install-device-specs.
15420         (install-device-specs): New rule.
15421         * config/avr/avr.c (avr_option_override): Look up mcu arch by
15422         avr_arch_index and provide fallback initialization for avr_n_flash.
15423         (varasm.h): #include.
15424         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
15425         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
15426         (avr_attribute_table): Add "io", "address" and "io_low".
15427         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
15428         Add special handling for symbols with "io" and/or "address" attributes.
15429         (avr_asm_asm_output_aligned_bss): New function.
15430         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
15431         as appropriate.  Handle io_low attribute.
15432         (avr_out_sbxx_branch): Handle symbolic io addresses.
15433         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
15434         avr_n_flash instead of avr_current_device->n_flash.
15435         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
15436         (avr_emit_movmemhi): Likewise.
15437         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
15438         Use TARGET_RMW instead of avr_current_device->dev_attributes.
15439         Don't define avr_current_device->macro (that's the specfile's job).
15440         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
15441         * config/avr/avr.c (avr_2word_insn_p): Likewise.
15442         * config/avr/avr.md (*cpse.ne): Likewise.
15443         (mov<mode>): Use avr_eval_addr_attrib.
15444         (cbi): Change constraint for low_io_address_operand operand to "i".
15445         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
15446         * config/avr/predicates.md (io_address_operand):
15447         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
15448         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
15449         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
15450         Update prototype.
15451         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
15452         * config/avr/genmultilib.awk: Use -march=.
15453         Remove Multilib matches processing.
15454         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
15455         * config/avr/avr-arch.h: Add double include guard.
15456         (avr_mcu_t) <library_name>: Update comment.
15457         * config/avr/driver-avr.c (avr_device_to_as): Delete.
15458         (avr_device_to_ld, avr_device_to_data_start): Likewise.
15459         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
15460         (avr_device_to_sp8): Likewise.
15461         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
15462
15463         * doc/extend.texi (io, address): Document new AVR variable attributes.
15464         (io_low): Likewise.
15465
15466 2014-10-09  Marek Polacek  <polacek@redhat.com>
15467
15468         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
15469
15470 2014-10-08  Richard Biener  <rguenther@suse.de>
15471
15472         PR tree-optimization/61969
15473         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
15474         variables.
15475
15476 2014-10-09  Richard Biener  <rguenther@suse.de>
15477
15478         PR tree-optimization/63445
15479         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
15480         overflow for non-equality compares.
15481
15482 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
15483
15484         PR rtl-optimization/57003
15485         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15486         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
15487         killing regs_invalidated_by_call.
15488
15489 2014-10-08  Teresa Johnson  <tejohnson@google.com>
15490
15491         PR bootstrap/63432.
15492         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
15493         (ssa_fix_duplicate_block_edges): Invoke it.
15494         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
15495
15496 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
15497
15498         PR target/52941
15499         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
15500         atomic_fetch_<fetchop_name>si_hard,
15501         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
15502         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
15503         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
15504         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
15505
15506 2014-10-08  Rong Xu  <xur@google.com>
15507
15508         * gcov-tool.c (profile_overlap): New driver function
15509         to compute profile overlap.
15510         (print_overlap_usage_message): New.
15511         (overlap_usage): New.
15512         (do_overlap): New.
15513         (print_usage): Add calls to overlap function.
15514         (main): Ditto.
15515         * doc/gcov-tool.texi: Add documentation.
15516
15517 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15518
15519         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
15520         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
15521
15522 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
15523
15524         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
15525         pattern matching of MEM_REF.
15526         (check_stmt_for_type_change): Update.
15527
15528 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15529
15530         * config/mips/linux64.h: Remove.
15531         * config/mips/gnu-user64.h: Remove.
15532         * gcc.config (mips*-*-*): Remove references to linux64.h and
15533         gnu-user64.h
15534         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
15535         with modified version from gnu-user64.h.
15536         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
15537         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
15538         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15539         linux64.h.
15540         (GNU_USER_LINK_EMULATION64): Ditto.
15541         (GNU_USER_LINK_EMULATIONN32): Ditto.
15542         (GLIBC_DYNAMIC_LINKER32): Ditto.
15543         (GLIBC_DYNAMIC_LINKER64): Ditto.
15544         (GLIBC_DYNAMIC_LINKERN32): Ditto.
15545         (UCLIBC_DYNAMIC_LINKER32): Ditto.
15546         (UCLIBC_DYNAMIC_LINKER64): Ditto.
15547         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15548         (BIONIC_DYNAMIC_LINKERN32): Ditto.
15549         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15550         (GLIBC_DYNAMIC_LINKER): Delete.
15551         (UCLIBC_DYNAMIC_LINKER): Delete.
15552
15553 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15554             Richard Biener  <rguenther@suse.de>
15555
15556         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15557         Get address space from operand 0 (BASE).
15558
15559 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
15560
15561         PR target/61387
15562         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15563
15564 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
15565
15566         * dwarf2out.c: Remove current_function_has_inlines.
15567         (gen_subprogram_die): Same.
15568         (gen_inlined_subroutine_die): Same.
15569
15570 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
15571
15572         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15573         type.
15574         (_addcarry_u64): Ditto.
15575         (_addcarryx_u64): Ditto.
15576
15577 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15578
15579         * cgraph.h (cgraph_node::get_fun): Declare.
15580         * cgraph.c (cgraph_node::get_fun): New method.
15581         * ipa-inline.c (can_inline_edge_p): Use it.
15582
15583 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15584
15585         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15586         and -ftrapping-math.
15587         * lto-wrapper.c (merge_and_complain): Likewise.
15588         (run_gcc): Likewise.
15589
15590 2014-10-06  Rong Xu  <xur@google.com>
15591
15592         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15593         * tree-profile.c: (params.h): New include.
15594         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15595         and __gcov_indirect_call_topn_counters for
15596         indirect_call_topn_profile.
15597         (gimple_init_edge_profiler): New decls for
15598         __gcov_indirect_call_topn_profiler.
15599         (gimple_gen_ic_profiler): Generate the correct profiler call.
15600         (gimple_gen_ic_func_profiler): Fix format.
15601         * value-prof.c (params.h): New include.
15602         (dump_histogram_value): Hanlde indirect_call_topn counters.
15603         (stream_in_histogram_value): Ditto.
15604         (gimple_indirect_call_to_profile): Use indirect_call_topn
15605         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15606         (gimple_find_values_to_profile): Hanlde indirect_call_topn
15607         counters.
15608         * value-prof.h (enum hist_type): Histrogram type for
15609         indirect_call_topn counters.
15610         * profile.c (instrument_values): Instrument
15611         indirect_call_topn counters.
15612
15613 2014-10-06  Rong Xu  <xur@google.com>
15614
15615         * Makefile.in: Fix dependence.
15616         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15617         indirect call topn profiler.
15618         * gcov-io.h: Ditto.
15619
15620 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15621
15622         * calls.c (expand_call): Do not use the target as the return slot if
15623         it is not sufficiently aligned.
15624
15625 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15626
15627         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15628         discussion of permutes and why we don't handle them.
15629
15630 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15631
15632         * config/sparc/predicates.md (int_register_operand): Delete.
15633
15634 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15635
15636         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15637
15638 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
15639
15640         * ubsan.h (ubsan_get_source_location): New prototype.
15641         * ubsan.c (ubsan_source_location_type): New variable.
15642         Function renamed to ...
15643         (ubsan_get_source_location_type): ... this.  Cache
15644         return value in ubsan_source_location_type variable.
15645         (ubsan_source_location, ubsan_create_data): Use
15646         ubsan_get_source_location_type instead of
15647         ubsan_source_location_type.
15648         * asan.c (asan_protect_global): Don't protect globals
15649         with ubsan_get_source_location_type () type.
15650         (asan_add_global): Provide global decl location info
15651         if possible.
15652
15653 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15654
15655         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15656         sanity check.
15657
15658 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15659
15660         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15661         on size.
15662         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15663         into vptr pointer.
15664         (ipa_polymorphic_call_context::dump): Fix formating.
15665         (walk_ssa_copies): Add logic avoiding loops; update uses.
15666         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15667
15668 2014-10-02  Mark Wielaard  <mjw@redhat.com>
15669
15670         PR debug/63239
15671         * dwarf2out.c (gen_subprogram_die): When a member function is
15672         explicitly deleted then add a DW_AT_GNU_deleted attribute.
15673         * langhooks.h (struct lang_hooks_for_decls): Add
15674         function_decl_deleted_p langhook.
15675         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15676         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15677
15678 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15679
15680         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15681         NULL pointer checks.
15682         (ipa_polymorphic_call_context::get_dynamic_type): Return true
15683         if type doesn't change.
15684         * cgraph.h (cgraph_indirect_call_info): New flag.
15685         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15686         (cgraph_node::dump): Dump it.
15687         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
15688         of context.get_dynamic_type.
15689         (ipa_make_edge_direct_to_target): Do not speculate
15690         edge that is already speuclative.
15691         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15692         speculate to __builtin_unreachable
15693         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15694         vptr_changed.
15695         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15696
15697 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15698
15699         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15700         get_dynamic_type; drop TODO.
15701         * ipa-polymorphic-call.c
15702         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15703         for otr_type to be unknown.
15704
15705 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15706
15707         * common/config/score/score-common.c: Remove.
15708         * config.gcc: Remove support for score-*.
15709         * config/score/constraints.md: Remove.
15710         * config/score/elf.h: Remove.
15711         * config/score/predicates.md: Remove.
15712         * config/score/score-conv.h: Remove.
15713         * config/score/score-generic.md: Remove.
15714         * config/score/score-modes.def: Remove.
15715         * config/score/score-protos.h: Remove.
15716         * config/score/score.c: Remove.
15717         * config/score/score.h: Remove.
15718         * config/score/score.md: Remove.
15719         * config/score/score.opt: Remove.
15720         * doc/md.texi: Don't document score-*.
15721
15722 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15723
15724         PR pch/63429
15725         * genconditions.c: Directly include ggc.h before rtl.h.
15726
15727 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15728
15729         * ipa-polymorphic-call.c
15730         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15731         code determining speculative type.
15732         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15733
15734 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15735
15736         * altivec.md (altivec_lvsl): New define_expand.
15737         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15738         (altivec_lvsr): New define_expand.
15739         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15740         * rs6000.c (rs6000_expand_builtin): Change to use
15741         altivec_lvs[lr]_direct; remove commented-out code.
15742
15743 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15744
15745         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15746         Issue a warning message when vec_lvsl or vec_lvsr is used with a
15747         little endian target.
15748
15749 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15750
15751         * tree-pretty-print.c (dump_location): Make it extern. Dump also
15752         the column.
15753         * tree-pretty-print.h (dump_location): Declare.
15754         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15755         (pp_gimple_stmt_1): Likewise.
15756         (dump_implicit_edges): Likewise.
15757         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15758         LOCATION_LINE.
15759
15760
15761 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15762
15763         * gcc.c (driver::global_initializations): Remove "const" so
15764         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15765         and decoded_options_count.
15766
15767 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
15768
15769         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15770         macro.
15771         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15772         TARGET_E500_DOUBLE case here.
15773
15774 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
15775
15776         PR c++/54427
15777         PR c++/57198
15778         PR c++/58845
15779         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15780
15781 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15782
15783         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15784         * lto-cgraph.c (lto_output_edge, input_edge): Stream
15785         in_polymorphic_cdtor
15786         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15787         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15788         * cgraphclones.c (cgraph_edge::clone): Likewise.
15789         * ipa-prop.c (update_jump_functions_after_inlining,
15790         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15791         to possible_dynamic_type_change.
15792         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15793         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15794         IN_POLY_CDOTR argument.
15795
15796         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15797         for BASE and OUTER_TYPE being NULL.
15798         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15799         in_poly_cdtor parameter.
15800
15801 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15802
15803         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15804         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15805         TARGET_AVX512F.
15806         (expand_vec_perm_1): Likewise.
15807
15808 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15809             Uros Bizjak  <ubizjak@gmail.com>
15810
15811         PR tree-optimization/61403
15812         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15813         error in comment.  Also optimize 256-bit vectors for AVX2
15814         or AVX (floating vectors only), provided the first permutation
15815         can be performed in one insn.
15816
15817 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15818
15819         * gcc.c (class driver): New class.
15820         (main): Reimplement in terms of driver::main, moving most of the
15821         locals to be locals within individual methods of class driver.
15822         The remaining locals "explicit_link_files", "decoded_options" and
15823         "decoded_options_count" are used by multiple driver:: methods, and
15824         so become member data.  Doing so isolates the argc/argv reads and
15825         writes.  Replace "goto out" with a special exit code from
15826         new method driver::prepare_infiles.  Split out the old
15827         implementation of main into the following...
15828         (driver::main): New function, corresponding to the old "main"
15829         implementation.
15830         (driver::set_progname): New function, taken from the old
15831         "main" implementation.
15832         (driver::expand_at_files): Likewise.
15833         (driver::decode_argv): Likewise.
15834         (driver::global_initializations): Likewise.
15835         (driver::build_multilib_strings): Likewise.
15836         (driver::set_up_specs): Likewise.
15837         (driver::putenv_COLLECT_GCC): Likewise.
15838         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15839         (driver::handle_unrecognized_options): Likewise.
15840         (driver::maybe_print_and_exit): Likewise.
15841         (driver::prepare_infiles): Likewise.
15842         (driver::do_spec_on_infiles): Likewise.
15843         (driver::maybe_run_linker): Likewise.
15844         (driver::final_actions): Likewise.
15845         (driver::get_exit_code): Likewise.
15846
15847 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
15848
15849         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15850         don't emit empty ctors.
15851
15852 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
15853
15854         * convert.c (convert_to_integer): Do not introduce useless conversions
15855         between integral types.
15856
15857 2014-10-03  David Sherwood  <david.sherwood@arm.com>
15858
15859         * ira-int.h (ira_allocno): Mark hard_regno as signed.
15860
15861 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
15862
15863         * lra-constraints.c (inherit_in_ebb): Handle calls with
15864         multiple return values.
15865         * caller-save.c (save_call_clobbered_regs): Likewise.
15866
15867 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15868
15869         * tree-vect-data-refs.c (vect_permute_load_chain,
15870         vect_shift_permute_load_chain): Fix a typo in temporary var names,
15871         suffle3 to shuffle3.
15872
15873         PR libgomp/61200
15874         * omp-low.c (taskreg_contexts): New variable.
15875         (scan_omp_parallel): Push newly created context into taskreg_contexts
15876         vector and move record layout code to finish_taskreg_scan.
15877         (scan_omp_task): Likewise.
15878         (finish_taskreg_scan): New function.
15879         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15880         vector elements and release it.
15881
15882         PR target/62128
15883         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15884         of palignr arguments can't be used due to min 0 or max - min
15885         too high, try also op0, op1 order of palignr arguments.
15886
15887 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
15888
15889         * cgraph.h (ipa_polymorphic_call_context):
15890         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15891         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15892         * ipa-polymorphic-call.c
15893         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15894         past end of dynamic types.
15895         (ipa_polymorphic_call_context::stream_out,
15896         speculative_outer_type): Stream dynamic flag.
15897         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15898         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15899         Clear DYNAMIC.
15900         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15901         set it.
15902         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15903         * ipa-prop.c (update_jump_functions_after_inlining,
15904         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15905
15906 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15907
15908         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15909         up when synthesizing counts to avoid rounding errors.
15910
15911 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15912
15913         PR middle-end/63422
15914         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15915         asserts to handle incoming insanities.
15916
15917 2014-10-02  Martin Jambor  <mjambor@suse.cz>
15918
15919         PR tree-optimization/63375
15920         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15921         references.
15922
15923 2014-10-02  Olivier Hainque  <hainque@adacore.com>
15924
15925         * Makefile.in (CROSS): Define, to @CROSS.
15926
15927 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
15928
15929         PR target/62128
15930         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15931         if it expands to a single insn only.
15932         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
15933         fail unless in_order is true.  Add forward declaration.
15934         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15935         is useful for one_operand_p.
15936         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15937
15938 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15939
15940         * cgraphclones.c (build_function_type_skip_args): Do not make new
15941         type variant of old.
15942
15943 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15944
15945         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15946         when speculation is added.
15947         (ipa_edge_args): Add polymorphic_call_contexts.
15948         (ipa_get_ith_polymorhic_call_context): New accesor.
15949         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15950         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15951         (ipa_compute_jump_functions_for_edge): Compute contexts.
15952         (update_jump_functions_after_inlining): Update contexts.
15953         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15954         update dumping; add speculative edge creation.
15955         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15956         context updating.
15957         (update_indirect_edges_after_inlining): Pass down context.
15958         (ipa_edge_duplication_hook): Duplicate contexts.
15959         (ipa_write_node_info): Stream out contexts.
15960         (ipa_read_node_info): Stream in contexts.
15961         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15962         types.
15963         (try_speculative_devirtualization): New function.
15964         * ipa-utils.h (try_speculative_devirtualization): Declare.
15965
15966 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15967
15968         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15969         dumping during WPA.
15970
15971 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15972
15973         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15974         type variants.
15975
15976 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15977
15978         * ipa-polymorphic-call.c
15979         (ipa_polymorphic_call_context::restrict_to_inner_class):
15980         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15981         use speculation_consistent_p to do so; Add CONSDER_BASES
15982         and CONSIDER_PLACEMENT_NEW parameters.
15983         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15984         short circuit obvious cases.
15985         (ipa_polymorphic_call_context::dump): Improve formatting.
15986         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15987         combine_speculation_with to record speculations; Do not ICE when
15988         object is located in pointer type decl; do not ICE for methods
15989         of UNION_TYPE; do not record nonpolymorphic types.
15990         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15991         (ipa_polymorphic_call_context::combine_speculation_with): New method.
15992         (ipa_polymorphic_call_context::combine_with): New method.
15993         (ipa_polymorphic_call_context::make_speculative): Move here; use
15994         combine speculation.
15995         * cgraph.h (ipa_polymorphic_call_context): Update
15996         restrict_to_inner_class prototype; add offset_by, make_speculative,
15997         combine_with, useless_p, combine_speculation_with and
15998         speculation_consistent_p methods.
15999         (ipa_polymorphic_call_context::offset_by): New method.
16000         (ipa_polymorphic_call_context::useless_p): New method.
16001
16002 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
16003
16004         PR rtl-optimization/62151
16005         * combine.c (can_combine_p): Allow the destination register of INSN
16006         to be clobbered in I3.
16007         (subst): Do not substitute into clobbers of registers.
16008
16009 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
16010
16011         PR debug/63342
16012         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
16013         offset, TARGET_MEM_REF and SSA_NAME.
16014
16015         * config/i386/i386.c (expand_vec_perm_palignr): Handle
16016         256-bit vectors for TARGET_AVX2.
16017
16018         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
16019         dfirst permutation.
16020
16021         PR target/63428
16022         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
16023         argument to avx2_permv2ti.
16024
16025 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16026
16027         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
16028
16029 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
16030
16031         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
16032         (fmod<mode>3): Ditto.
16033         (fpremxf4_i387): Ditto.
16034         (reminderxf3): Ditto.
16035         (reminder<mode>3): Ditto.
16036         (fprem1xf4_i387): Ditto.
16037
16038 2014-09-30  Teresa Johnson  <tejohnson@google.com>
16039
16040         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
16041         duplicate_blocks bitmap.
16042         (remove_ctrl_stmt_and_useless_edges): Ditto.
16043         (create_block_for_threading): Ditto.
16044         (compute_path_counts): New function.
16045         (update_profile): Ditto.
16046         (recompute_probabilities): Ditto.
16047         (update_joiner_offpath_counts): Ditto.
16048         (freqs_to_counts_path): Ditto.
16049         (clear_counts_path): Ditto.
16050         (ssa_fix_duplicate_block_edges): Update profile info.
16051         (ssa_create_duplicates): Pass new parameter.
16052         (ssa_redirect_edges): Remove old profile update.
16053         (thread_block_1): New duplicate_blocks bitmap,
16054         remove old profile update.
16055         (thread_single_edge): Pass new parameter.
16056
16057 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
16058
16059         PR middle-end/62120
16060         * varasm.c (decode_reg_name_and_count): Check availability for
16061         registers from ADDITIONAL_REGISTER_NAMES.
16062
16063 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
16064
16065         PR plugins/63410
16066         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
16067         (PLUGIN_HEADERS): Add pass-instances.def.
16068
16069 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
16070
16071         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
16072         iterator.
16073         * config/aarch64/aarch64-simd.md
16074         (aarch64_sqdmull_laneq<mode>): Expand iterator.
16075         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
16076         (vqdmulls_lane_s32): Fix return type.
16077         (vqdmulls_laneq_s32): New.
16078
16079 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
16080
16081         PR inline-asm/63282
16082         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
16083         or invert_jump_1 if jump isn't any_condjump_p.
16084
16085 2014-09-30  Terry Guo  <terry.guo@arm.com>
16086
16087         * config/arm/arm-cores.def (cortex-m7): New core name.
16088         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
16089         (fpv5-d16): Ditto.
16090         * config/arm/arm-tables.opt: Regenerated.
16091         * config/arm/arm-tune.md: Regenerated.
16092         * config/arm/arm.h (TARGET_VFP5): New macro.
16093         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
16094         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
16095         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
16096         * doc/invoke.texi: Document new cpu and fpu names.
16097
16098 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
16099
16100         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
16101         before sinking insn.
16102
16103 2014-09-30  David Sherwood  <david.sherwood@arm.com>
16104
16105         * ira-int.h (ira_allocno): Add "wmode" field.
16106         * ira-build.c (create_insn_allocnos): Add new "parent" function
16107         parameter.
16108         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
16109         that cannot be accessed in wmode.
16110
16111 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
16112
16113         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
16114         integer overflow.
16115
16116 2014-09-29  Andi Kleen  <ak@linux.intel.com>
16117
16118         * opts.c (print_filtered_help): Print --param min/max/default
16119         with -Q.
16120
16121 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
16122
16123         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
16124
16125 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
16126
16127         * tree-vrp.c (get_single_symbol): New function.
16128         (build_symbolic_expr): Likewise.
16129         (symbolic_range_based_on_p): New predicate.
16130         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
16131         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
16132         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
16133         operand is symbolic and based on the other operand.
16134
16135 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
16136
16137         * config/microblaze/microblaze.md (call_internal1): Use VOID
16138         instead of SI to fix "((void (*)(void)) 0)()" issue
16139
16140 2014-09-29  Nick Clifton  <nickc@redhat.com>
16141
16142         * config/msp430/msp430.c (msp430_expand_prologue): Return a
16143         CLOBBER rtx for naked functions.
16144         (msp430_expand_epilogue): Likewise.
16145         (msp430_use_f5_series_hwmult): Cache result.
16146         (use_32bit_hwmult): Cache result.
16147         (msp430_no_hwmult): New function.
16148         (msp430_output_labelref): Use it.
16149
16150 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
16151
16152         PR middle-end/63247
16153         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
16154         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
16155         use the alignment of avar rather than ovar.
16156
16157 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
16158
16159         * config/pa/pa.c (pa_output_function_epilogue): Only update
16160         last_address when a nonnote insn is found.
16161
16162 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
16163
16164         PR ipa/60665
16165         * ipa-devirt.c (possible_polymorphic_call_targets): Silence
16166         clang warning.
16167
16168 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
16169
16170         PR ipa/62121
16171         * ipa-polymorphic-call.c
16172         (ipa_polymorphic_call_context::restrict_to_inner_class): Fix pasto
16173         in checking array size.
16174
16175 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
16176
16177         PR middle-end/35545
16178         * passes.def (pass_tracer): Move before last dominator pass.
16179
16180 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
16181
16182         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
16183         users.
16184         (run_attempt): Handle errors of "pex_run" invocation.
16185
16186 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
16187
16188         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
16189         (CC1_SPEC): Define.
16190         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
16191         (TARGET_ASAN_SHADOW_OFFSET): Define.
16192
16193 2014-09-26  Martin Liska  <mliska@suse.cz>
16194
16195         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
16196         introduced.
16197         * cgraph.h: Likewise.
16198         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new
16199         argument introduced.
16200         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos
16201         created by Java.
16202         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function
16203         transformed to global.
16204         * tree-ssa-alias.h: Likewise.
16205
16206 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
16207             Max Ostapenko  <m.ostapenko@partner.samsung.com>
16208
16209         * common.opt: New option.
16210         * doc/invoke.texi: Describe new option.
16211         * gcc.c (execute): Don't free first string early, but at the end
16212         of the function.  Call retry_ice if compiler exited with
16213         ICE_EXIT_CODE.
16214         (main): Factor out common code.
16215         (print_configuration): New function.
16216         (files_equal_p): Likewise.
16217         (check_repro): Likewise.
16218         (run_attempt): Likewise.
16219         (do_report_bug): Likewise.
16220         (append_text): Likewise.
16221         (try_generate_repro): Likewise
16222
16223 2014-09-25  Andi Kleen  <ak@linux.intel.com>
16224
16225         * config/i386/i386.c (x86_print_call_or_nop): New function.
16226         (x86_function_profiler): Support -mnop-mcount and
16227         -mrecord-mcount.
16228         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
16229         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
16230
16231 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
16232
16233         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
16234         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
16235         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
16236         Remove.
16237
16238 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
16239
16240         * ipa-utils.h (subbinfo_with_vtable_at_offset,
16241         type_all_derivations_known_p, type_known_to_have_no_deriavations_p,
16242         types_must_be_same_for_odr, types_odr_comparable): Declare.
16243         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
16244         * ipa-polymorphic-call.c: New file.
16245         (contains_polymorphic_type_p, possible_placement_new,
16246         ipa_polymorphic_call_context::restrict_to_inner_class,
16247         contains_type_p, decl_maybe_in_construction_p,
16248         ipa_polymorphic_call_context::stream_out,
16249         ipa_polymorphic_call_context::debug,
16250         ipa_polymorphic_call_context::stream_in,
16251         ipa_polymorphic_call_context::set_by_decl,
16252         ipa_polymorphic_call_context::set_by_invariant,
16253         walk_ssa_copies,
16254         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16255         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
16256         extr_type_from_vtbl_ptr_store, record_known_type
16257         check_stmt_for_type_change,
16258         ipa_polymorphic_call_context::get_dynamic_type): Move here from
16259         ipa-devirt.c
16260         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
16261         and streamer-hooks.h
16262         (contains_polymorphic_type_p, possible_placement_new,
16263         ipa_polymorphic_call_context::restrict_to_inner_class,
16264         contains_type_p, decl_maybe_in_construction_p,
16265         ipa_polymorphic_call_context::stream_out,
16266         ipa_polymorphic_call_context::debug,
16267         ipa_polymorphic_call_context::stream_in,
16268         ipa_polymorphic_call_context::set_by_decl,
16269         ipa_polymorphic_call_context::set_by_invariant,
16270         walk_ssa_copies,
16271         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16272         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
16273         extr_type_from_vtbl_ptr_store, record_known_type
16274         check_stmt_for_type_change,
16275         ipa_polymorphic_call_context::get_dynamic_type): Move to
16276         ipa-polymorphic-call.c
16277         (type_all_derivations_known_p, types_odr_comparable,
16278         types_must_be_same_for_odr): Export.
16279         (type_known_to_have_no_deriavations_p): New function.
16280         * Makefile.in: Add ipa-polymorphic-call.c
16281
16282 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
16283
16284         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
16285         for better storage.
16286         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
16287         (possible_polymorphic_call_targets): Instead of computing both
16288         speculative and non-speculative answers, do just one at a time.
16289         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
16290         (dump_targets): Break out from ...
16291         (dump_possible_polymorphic_call_targets): ... here; dump both
16292         speculative and non-speculative lists.
16293         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
16294         * ipa-utils.h (possible_polymorphic_call_targets): Update.
16295
16296 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
16297
16298         PR rtl-optimization/63348
16299         * emit-rtl.c (try_split): Do not emit extra barrier.
16300
16301 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
16302
16303         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
16304         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
16305         new predicates.
16306         (aarch64_<sur>shll2_n<mode>): Likewise.
16307         (aarch64_<sur>shr_n<mode>): Likewise.
16308         (aarch64_<sur>sra_n<mode>: Likewise.
16309         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
16310         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
16311         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
16312         * config/aarch64/iterators.md (ve_mode): New.
16313         (offsetlr): Remap to infix text for use in new predicates.
16314         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
16315         (aarch64_simd_shift_imm_hi): Likewise.
16316         (aarch64_simd_shift_imm_si): Likewise.
16317         (aarch64_simd_shift_imm_di): Likewise.
16318         (aarch64_simd_shift_imm_offset_qi): Likewise.
16319         (aarch64_simd_shift_imm_offset_hi): Likewise.
16320         (aarch64_simd_shift_imm_offset_si): Likewise.
16321         (aarch64_simd_shift_imm_offset_di): Likewise.
16322         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
16323         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
16324         (aarch64_simd_shift_imm_bitsize_si): Likewise.
16325         (aarch64_simd_shift_imm_bitsize_di): Likewise.
16326
16327 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
16328
16329         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
16330         new created BB as the intersection of live-in from "old_dest" and
16331         live-out from "bb".
16332
16333 2014-09-25  Felix Yang  <felix.yang@huawei.com>
16334
16335         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
16336         * genautomata.c (merge_states): Ditto.
16337
16338 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
16339
16340         PR target/62218
16341         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
16342         in instruction sequence.
16343
16344 2014-09-25  Nick Clifton  <nickc@redhat.com>
16345
16346         PR target/62218
16347         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
16348         in instruction sequence.
16349
16350 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16351
16352         PR target/63335
16353         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
16354         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
16355
16356 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16357             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16358             Anna Tikhonova  <anna.tikhonova@intel.com>
16359             Ilya Tocar  <ilya.tocar@intel.com>
16360             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16361             Ilya Verbin  <ilya.verbin@intel.com>
16362             Kirill Yukhin  <kirill.yukhin@intel.com>
16363             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16364
16365         * config/i386/sse.md
16366         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
16367         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
16368         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
16369         (define_expand "<avx512>_perm<mode>_mask"): ... this.
16370         Use VI8F_256_512 mode iterator.
16371         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
16372         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
16373
16374 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16375             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16376             Anna Tikhonova  <anna.tikhonova@intel.com>
16377             Ilya Tocar  <ilya.tocar@intel.com>
16378             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16379             Ilya Verbin  <ilya.verbin@intel.com>
16380             Kirill Yukhin  <kirill.yukhin@intel.com>
16381             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16382
16383         * config/i386/sse.md
16384         (define_insn "avx_movshdup256<mask_name>"): Add masking.
16385         (define_insn "sse3_movshdup<mask_name>"): Ditto.
16386         (define_insn "avx_movsldup256<mask_name>"): Ditto.
16387         (define_insn "sse3_movsldup<mask_name>"): Ditto.
16388         (define_insn "vec_dupv2df<mask_name>"): Ditto.
16389         (define_insn "*vec_concatv2df"): Add EVEX version.
16390
16391 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16392             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16393             Anna Tikhonova  <anna.tikhonova@intel.com>
16394             Ilya Tocar  <ilya.tocar@intel.com>
16395             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16396             Ilya Verbin  <ilya.verbin@intel.com>
16397             Kirill Yukhin  <kirill.yukhin@intel.com>
16398             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16399
16400         * config/i386/sse.md
16401         (define_insn "vec_set<mode>_0"): Add EVEX version.
16402
16403 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16404             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16405             Anna Tikhonova  <anna.tikhonova@intel.com>
16406             Ilya Tocar  <ilya.tocar@intel.com>
16407             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16408             Ilya Verbin  <ilya.verbin@intel.com>
16409             Kirill Yukhin  <kirill.yukhin@intel.com>
16410             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16411
16412         * config/i386/sse.md
16413         (define_insn
16414         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
16415         New.
16416         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
16417         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
16418         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
16419         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
16420         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
16421         (define_expand "sse2_cvtpd2ps_mask): New.
16422         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
16423         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
16424
16425 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16426             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16427             Anna Tikhonova  <anna.tikhonova@intel.com>
16428             Ilya Tocar  <ilya.tocar@intel.com>
16429             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16430             Ilya Verbin  <ilya.verbin@intel.com>
16431             Kirill Yukhin  <kirill.yukhin@intel.com>
16432             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16433
16434         * config/i386/i386.c
16435         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
16436         (ufix_notruncv8dfv8si2_mask_round): ... this.
16437         * config/i386/sse.md
16438         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
16439         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
16440         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
16441         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
16442         (define_expand "sse2_cvtpd2dq"): Delete.
16443         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
16444         make 2nd operand const0 vector.
16445         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
16446         Delete.
16447         (define_mode_attr pd2udqsuff): New.
16448         (define_insn
16449         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
16450         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
16451         (define_insn "*avx_cvttpd2dq256_2"): Delete.
16452         (define_expand "sse2_cvttpd2dq"): Ditto.
16453         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
16454         make 2nd operand const0 vector.
16455
16456 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
16457
16458         PR tree-optimization/63341
16459         * tree-vectorizer.h (vect_create_data_ref_ptr,
16460         vect_create_addr_base_for_vector_ref): Add another tree argument
16461         defaulting to NULL_TREE.
16462         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
16463         argument, pass it down to vect_create_addr_base_for_vector_ref.
16464         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
16465         add that to base_offset too if non-NULL.
16466         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
16467         for dr_explicit_realign_optimized set it to vector byte size
16468         - 1 instead of setting offset, pass byte_offset down to
16469         vect_create_data_ref_ptr.
16470
16471 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16472
16473         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
16474         forgotten debug output; canonicalize querries more wtih LTO.
16475
16476 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16477
16478         * cgraph.h (class ipa_polymorphic_call_context): Move here from
16479         ipa-utils.h; add stream_int and stream_out methods.
16480         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
16481         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
16482         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
16483         add CONTEXT.
16484         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16485         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16486         ipa_polymorphic_call_context::clear_speculation,
16487         ipa_polymorphic_call_context::clear_outer_type): Move here from
16488         ipa-utils.h
16489         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
16490         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16491         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16492         ipa_polymorphic_call_context::clear_speculation,
16493         ipa_polymorphic_call_context::clear_outer_type): Likewise.
16494         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
16495         streamer-hooks.h
16496         (ipa_polymorphic_call_context::stream_out): New method.
16497         (ipa_polymorphic_call_context::stream_in): New method.
16498         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
16499         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
16500         OUTER_TYPE.
16501         (ipa_analyze_call_uses): Simplify.
16502         (update_indirect_edges_after_inlining): Do not care about outer_type.
16503         (ipa_write_indirect_edge_info): Update.
16504         (ipa_write_indirect_edge_info): Likewise.
16505         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
16506         (dump_edge_flags): Break out from ...
16507         (cgraph_node::dump): ... here; dump indirect edges.
16508
16509 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16510
16511         * ipa-utils.h (polymorphic_call_context): Add
16512         metdhos dump, debug and clear_outer_type.
16513         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16514         (ipa_polymorphic_call_context::clear_outer_type): New method.
16515         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
16516         * ipa-devirt.c (types_odr_comparable): New function.
16517         (types_must_be_same_for_odr): New function.
16518         (odr_subtypes_equivalent_p): Simplify.
16519         (possible_placement_new): Break out from ...
16520         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
16521         be more cuatious about returning false in cases the context may be
16522         valid in derived type or via placement new.
16523         (contains_type_p): Clear maybe_derived_type
16524         (ipa_polymorphic_call_context::dump): New method.
16525         (ipa_polymorphic_call_context::debug): New method.
16526         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
16527         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
16528         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16529         (possible_polymorphic_call_targets): Trust
16530         context.restrict_to_inner_class to suceed on all valid cases;
16531         remove confused sanity check.
16532         (dump_possible_polymorphic_call_targets): Simplify.
16533
16534 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
16535
16536         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
16537         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
16538         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
16539         varpool.c: Rename all instances of DECL_ABSTRACT to
16540         DECL_ABSTRACT_P.
16541
16542 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16543
16544         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16545         special handling for stores whose SET_SRC is an UNSPEC (such as
16546         UNSPEC_STVE).
16547
16548 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
16549
16550         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16551         !REG_P (src) to release more instruction sink opportunities.
16552
16553 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16554
16555         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16556         move costs for 128-bit types.
16557
16558 2014-09-24  Martin Jambor  <mjambor@suse.cz>
16559
16560         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16561         when duplicating a PASS_THROUGH jump function when creating a
16562         speculative edge.
16563
16564 2014-09-24  Marek Polacek  <polacek@redhat.com>
16565
16566         PR c/61405
16567         PR c/53874
16568         * asan.c (maybe_instrument_call): Add default case.
16569         * ipa-pure-const.c (special_builtin_state): Likewise.
16570         * predict.c (expr_expected_value_1): Likewise.
16571         * lto-streamer-out.c (write_symbol): Initialize variable.
16572
16573 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16574
16575         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16576         the lane.
16577         (vmuld_laneq_f64): Likewise.
16578         (vmuls_lane_f32): Likewise.
16579         (vmuls_laneq_f32): Likewise.
16580
16581 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
16582
16583         PR bootstrap/63235
16584         * varpool.c (varpool_node::add): Pass decl attributes
16585         to lookup_attribute.
16586
16587 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
16588
16589         PR sanitizer/63316
16590         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16591
16592 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16593
16594         PR tree-optimization/63266
16595         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16596         marker for unknown byte value.
16597         (MARKER_MASK): New macro.
16598         (MARKER_BYTE_UNKNOWN): New macro.
16599         (HEAD_MARKER): New macro.
16600         (do_shift_rotate): Mark bytes with unknown values due to sign
16601         extension when doing an arithmetic right shift. Replace hardcoded
16602         mask for marker by new MARKER_MASK macro.
16603         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16604         numbers accordingly.
16605
16606 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16607             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16608             Anna Tikhonova  <anna.tikhonova@intel.com>
16609             Ilya Tocar  <ilya.tocar@intel.com>
16610             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16611             Ilya Verbin  <ilya.verbin@intel.com>
16612             Kirill Yukhin  <kirill.yukhin@intel.com>
16613             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16614
16615         * config/i386/sse.md
16616         (define_insn
16617         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16618         Add masking.
16619         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16620         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16621
16622 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16623             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16624             Anna Tikhonova  <anna.tikhonova@intel.com>
16625             Ilya Tocar  <ilya.tocar@intel.com>
16626             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16627             Ilya Verbin  <ilya.verbin@intel.com>
16628             Kirill Yukhin  <kirill.yukhin@intel.com>
16629             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16630
16631         * config/i386/sse.md
16632         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16633         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16634         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16635         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16636         (define_expand "avx512vl_pshuflw_mask"): New.
16637         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16638         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16639         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16640         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16641         (define_expand "avx512vl_pshufhw_mask"): New.
16642         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16643
16644 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16645             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16646             Anna Tikhonova  <anna.tikhonova@intel.com>
16647             Ilya Tocar  <ilya.tocar@intel.com>
16648             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16649             Ilya Verbin  <ilya.verbin@intel.com>
16650             Kirill Yukhin  <kirill.yukhin@intel.com>
16651             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16652
16653         * config/i386/i386.c
16654         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16655         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16656         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16657         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16658         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16659         * config/i386/sse.md
16660         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16661         (define_insn
16662         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16663         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16664         (define_insn
16665         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16666         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16667         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16668         (define_expand "avx512vl_pshufd_mask"): New.
16669         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16670
16671 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16672             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16673             Anna Tikhonova  <anna.tikhonova@intel.com>
16674             Ilya Tocar  <ilya.tocar@intel.com>
16675             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16676             Ilya Verbin  <ilya.verbin@intel.com>
16677             Kirill Yukhin  <kirill.yukhin@intel.com>
16678             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16679
16680         * config/i386/i386.c
16681         (CODE_FOR_avx2_extracti128): Rename to ...
16682         (CODE_FOR_avx_vextractf128v4di): this.
16683         (CODE_FOR_avx2_inserti128): Rename to ...
16684         (CODE_FOR_avx_vinsertf128v4di): this.
16685         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16686         CODE_FOR_avx_vextractf128v4di.
16687         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16688         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16689         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16690         CODE_FOR_avx512vl_vinsertv8si.
16691         * config/i386/sse.md
16692         (define_expand
16693         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16694         AVX512_VEC mode iterator.
16695         (define_insn
16696         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16697         Ditto.
16698         (define_expand
16699         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16700         AVX512_VEC_2 mode iterator.
16701         (define_insn "vec_set_lo_<mode><mask_name>"): New.
16702         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16703         (define_expand "avx512vl_vinsert<mode>"): Ditto.
16704         (define_insn "avx2_vec_set_lo_v4di"): Delete.
16705         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16706         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16707         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16708         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16709         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16710         (define_expand "avx2_extracti128"): Delete.
16711         (define_expand "avx2_inserti128"): Ditto.
16712
16713 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16714             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16715             Anna Tikhonova  <anna.tikhonova@intel.com>
16716             Ilya Tocar  <ilya.tocar@intel.com>
16717             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16718             Ilya Verbin  <ilya.verbin@intel.com>
16719             Kirill Yukhin  <kirill.yukhin@intel.com>
16720             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16721
16722         * config/i386/sse.md
16723         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16724         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16725         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16726         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16727         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16728         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16729         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16730         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16731         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16732         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16733         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16734         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16735         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16736
16737 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16738
16739         PR rtl-optimization/63210
16740         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16741         HARD_REGNO is not available for CONFLICT_A.
16742
16743 2014-09-23  Andi Kleen  <ak@linux.intel.com>
16744
16745         * cgraph.h (symtab_node): Add no_reorder attribute.
16746         (symbol_table::output_asm_statements): Remove.
16747         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16748         (cgraph_node::create_version_clone): Dito.
16749         (symbol_table::output_asm_statements): Remove.
16750         * trans-mem.c (ipa_tm_create_version_alias): Dito.
16751         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16752         (output_in_order): Add no_reorder flag. Only handle no_reorder
16753         nodes when set.
16754         (symbol_table::compile): Add separate pass for no_reorder nodes.
16755         (process_common_attributes): Set no_reorder flag in symtab node.
16756         Add node argument.
16757         (process_function_and_variable_attributes): Pass symtab nodes to
16758         process_common_attributes.
16759         * doc/extend.texi (no_reorder): Document no_reorder attribute.
16760         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16761         (lto_output_varpool_node): Dito.
16762         (input_overwrite_node): Dito.
16763         (input_varpool_node): Dito.
16764         * varpool.c (varpool_node::add): Set no_reorder attribute.
16765         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16766         (symbol_table::output_variables): Dito.
16767         * symtab.c (symtab_node::dump_base): Print no_reorder.
16768
16769 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
16770
16771         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM
16772         not be INVALID_REGNUM.
16773
16774 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
16775
16776         * configure: Regenerate.
16777
16778 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
16779
16780         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16781         when result_mode == shift_mode.
16782
16783 2014-09-23  Kostya Serebryany  <kcc@google.com>
16784
16785         Update to match the changed asan API.
16786         * asan.c (asan_global_struct): Update the __asan_global definition
16787         to match the new API.
16788         (asan_add_global): Ditto.
16789         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16790         to __asan_init_v4.
16791
16792 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16793
16794         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16795         refine the constraints used on 32/64-bit floating point moves.
16796         (f32_av): Likewise.
16797         (f64_vsx): Likewise.
16798         (f64_dm): Likewise.
16799         (f64_av): Likewise.
16800         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16801         (BOOL_REGS_OP1): Likewise.
16802         (BOOL_REGS_OP2): Likewise.
16803         (BOOL_REGS_UNARY): Likewise.
16804         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16805         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
16806         for moves involving VSX registers.  Do not use constraints that
16807         target VSX registers for decimal types.
16808         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16809         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16810
16811 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
16812
16813         * tree.h (int_bit_position): Turn into inline function;
16814         implement using wide int.
16815         * tree.c (int_bit_position): Remove.
16816
16817 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
16818
16819         PR bootstrap/63280
16820         * target-globals.c (target_globals::~target_globals): Fix location
16821         of ira_int destruction.
16822
16823 2014-09-23  Renlin Li  <renlin.li@arm.com>
16824
16825         * config/aarch64/aarch64.md (return): New.
16826         (simple_return): Likewise.
16827         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16828         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16829
16830 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
16831
16832         * common/config/aarch64/aarch64-common.c:
16833         (default_options aarch_option_optimization_table):
16834         Default to -fsched-pressure.
16835
16836 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
16837
16838         * cfgcleanup.c (try_optimize_cfg): Do not remove label
16839         with LABEL_PRESERVE_P flag set.
16840
16841 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16842             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16843             Anna Tikhonova  <anna.tikhonova@intel.com>
16844             Ilya Tocar  <ilya.tocar@intel.com>
16845             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16846             Ilya Verbin  <ilya.verbin@intel.com>
16847             Kirill Yukhin  <kirill.yukhin@intel.com>
16848             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16849
16850         * config/i386/sse.md
16851         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16852         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16853         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16854         (define_insn "sse2_shufpd_v2df_mask"): New.
16855
16856 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16857             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16858             Anna Tikhonova  <anna.tikhonova@intel.com>
16859             Ilya Tocar  <ilya.tocar@intel.com>
16860             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16861             Ilya Verbin  <ilya.verbin@intel.com>
16862             Kirill Yukhin  <kirill.yukhin@intel.com>
16863             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16864
16865         * config/i386/sse.md
16866         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16867         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16868         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16869         (define_insn "sse_shufps_v4sf_mask"): New.
16870
16871 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16872             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16873             Anna Tikhonova  <anna.tikhonova@intel.com>
16874             Ilya Tocar  <ilya.tocar@intel.com>
16875             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16876             Ilya Verbin  <ilya.verbin@intel.com>
16877             Kirill Yukhin  <kirill.yukhin@intel.com>
16878             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16879
16880         * config/i386/sse.md
16881         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16882         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16883         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16884         (define_insn "unpcklps128_mask"): New.
16885
16886 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16887             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16888             Anna Tikhonova  <anna.tikhonova@intel.com>
16889             Ilya Tocar  <ilya.tocar@intel.com>
16890             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16891             Ilya Verbin  <ilya.verbin@intel.com>
16892             Kirill Yukhin  <kirill.yukhin@intel.com>
16893             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16894
16895         * config/i386/sse.md
16896         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16897         (define_insn "avx512vl_unpckhpd128_mask"): New.
16898         (define_expand "avx_movddup256<mask_name>"): Add masking.
16899         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16900         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16901         (define_insn "avx512vl_unpcklpd128_mask"): New.
16902
16903 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
16904
16905         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16906         * doc/tm.texi: Regenerate.
16907         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16908         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16909         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16910         Remove.
16911         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16912         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16913         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16914         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16915         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16916         Remove.
16917         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16918         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16919         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16920         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16921         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16922         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16923         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16924         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16925         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16926         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16927         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16928         Remove.
16929
16930 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
16931
16932         * tree-ssa-ccp.c (prop_value_d): Rename to ...
16933         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16934         * ipa-prop.c (struct type_change_info): Rename to ...
16935         (prop_type_change_info): ... this; update uses.
16936         * ggc-page.c (globals): Rename to ...
16937         (static struct ggc_globals): ... this; update uses.
16938         * tree-ssa-loop-im.c (mem_ref): Rename to ...
16939         (im_mem_ref): ... this; update uses.
16940         * ggc-common.c (loc_descriptor): Rename to ...
16941         (ggc_loc_descriptor): ... this; update uses.
16942         * lra-eliminations.c (elim_table): Rename to ...
16943         (lra_elim_table): ... this; update uses.
16944         * bitmap.c (output_info): Rename to ...
16945         (bitmap_output_info): ... this; update uses.
16946         * gcse.c (expr): Rename to ...
16947         (gcse_expr) ... this; update uses.
16948         (occr): Rename to ...
16949         (gcse_occr): .. this; update uses.
16950         * tree-ssa-copy.c (prop_value_d): Rename to ...
16951         (prop_value_t): ... this.
16952         * predict.c (block_info_def): Rename to ...
16953         (block_info): ... this; update uses.
16954         (edge_info_def): Rename to ...
16955         (edge_info): ... this; update uses.
16956         * profile.c (bb_info): Rename to ...
16957         (bb_profile_info): ... this; update uses.
16958         * alloc-pool.c (output_info): Rename to ...
16959         (pool_output_info): ... this; update uses.
16960         * ipa-cp.c (topo_info): Rename to ..
16961         (ipa_topo_info): ... this; update uses.
16962         * tree-nrv.c (nrv_data): Rename to ...
16963         (nrv_data_t): ... this; update uses.
16964         * ipa-split.c (bb_info): Rename to ...
16965         (split_bb_info): ... this one.
16966         * profile.h (edge_info): Rename to ...
16967         (edge_profile_info): ... this one; update uses.
16968         * dse.c (bb_info): Rename to ...
16969         (dse_bb_info): ... this one; update uses.
16970         * cprop.c (occr): Rename to ...
16971         (cprop_occr): ... this one; update uses.
16972         (expr): Rename to ...
16973         (cprop_expr): ... this one; update uses.
16974
16975 2014-09-22  Jason Merrill  <jason@redhat.com>
16976
16977         * Makefile.in (check-parallel-%): Add @.
16978
16979 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16980
16981         * config/aarch64/geniterators.sh: New.
16982         * config/aarch64/iterators.md (VDQF_DF): New.
16983         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16984         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16985
16986 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
16987
16988         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16989         -lnosys when -msim absent.
16990
16991 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
16992
16993         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16994
16995 2014-09-22  Richard Biener  <rguenther@suse.de>
16996
16997         * gimplify.c (gimplify_init_constructor): Do not leave
16998         non-GIMPLE vector constructors around.
16999         * tree-cfg.c (verify_gimple_assign_single): Verify that
17000         CONSTRUCTORs have gimple elements.
17001
17002 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
17003
17004         PR debug/63328
17005         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
17006         insert a debug source bind stmt setting DEBUG_EXPR_DECL
17007         instead of a normal gimple assignment stmt.
17008
17009 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
17010
17011         * config/bfin/bfin.md: Fix use of constraints in define_split.
17012
17013 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17014
17015         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
17016         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
17017
17018 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17019
17020         * hard-reg-set.h: Include hash-table.h.
17021         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
17022         field.
17023         * target-globals.c (target_globals::~target_globals): Call
17024         hard_regs->finalize.
17025         * rtl.h (subreg_shape): New structure.
17026         (shape_of_subreg): New function.
17027         (simplifiable_subregs): Declare.
17028         * reginfo.c (simplifiable_subreg): New structure.
17029         (simplifiable_subregs_hasher): Likewise.
17030         (simplifiable_subregs): New function.
17031         (invalid_mode_changes): Delete.
17032         (alid_mode_changes, valid_mode_changes_obstack): New variables.
17033         (record_subregs_of_mode): Remove subregs_of_mode parameter.
17034         Record valid mode changes in valid_mode_changes.
17035         (find_subregs_of_mode): Remove subregs_of_mode parameter.
17036         Update calls to record_subregs_of_mode.
17037         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
17038         handling.  Initialize new variables.  Update call to
17039         find_subregs_of_mode.
17040         (invalid_mode_change_p): Check new variables instead of
17041         invalid_mode_changes.
17042         (finish_subregs_of_mode): Finalize new variables instead of
17043         invalid_mode_changes.
17044         (target_hard_regs::finalize): New function.
17045         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
17046         even when CLASS_CANNOT_CHANGE_MODE is undefined.
17047
17048 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17049
17050         * combine.c (subst): Use simplify_subreg_regno rather than
17051         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
17052
17053 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17054
17055         * rtl.h (subreg_info): Expand commentary
17056         * rtlanal.c (subreg_get_info): Likewise.
17057
17058 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17059
17060         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
17061         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
17062         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
17063
17064 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
17065
17066         * config/arm/arm.c: #include "tm-constrs.h"
17067         (thumb1_size_rtx_costs): Adjust rtx costs.
17068
17069 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
17070
17071         * configure.ac (target_header_dir): Move block defining
17072         this to before the block setting inhibit_libc.
17073         (inhibit_libc): When considering $with_headers, just
17074         check it it's explicitly "no".  If not, also check if
17075         $target_header_dir/stdio.h is present.  If not, set
17076         inhibit_libc=true.
17077         * configure: Regenerate.
17078
17079 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
17080
17081         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
17082
17083 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17084
17085         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
17086         insn for divides by integer powers of two.
17087         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
17088         (mod<mode>3): Fix formatting.
17089         (three anonymous define_insn and two define_split): Delete.
17090
17091 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17092
17093         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
17094         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
17095         (floatdisf2_internal2): Ditto.
17096         (ashrdi3_no_power): Ditto.  Fix formatting.
17097
17098 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17099
17100         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
17101         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
17102         Tidy.
17103
17104 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17105
17106         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
17107         constant, use addsi3 directly.
17108         (three anonymous define_insn, two define_split): Delete.
17109         (sub<mode>3): Move.  Do not allow constant second operand.
17110         Generate different insn for constant first operand.
17111         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
17112         (subf<mode>3_imm): New.
17113         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
17114         (*plus_ltu<mode>): Only handle registers.
17115         (*plus_ltu<mode>_1): New.  Handle integer third operand.
17116         (*plus_gtu<mode>): Only handle registers.
17117         (*plus_gtu<mode>_1): New.  Handle integer third operand.
17118
17119 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17120
17121         * config/rs6000/rs6000.md (iorxor): New code_iterator.
17122         (iorxor): New code_attr.
17123         (IORXOR): New code_attr.
17124         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
17125         (ior<mode>3, xor<mode>3): Delete.
17126         (<iorxor><mode>3): New.
17127         (splitter for "big" integer ior, xor): New.
17128         (*bool<mode>3): Move.  Also handle AND.
17129         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
17130         (splitter for "big" integer ior, xor): Delete.
17131
17132 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17133
17134         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
17135         (two anonymous define_insn and two define_split): Delete.
17136         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
17137
17138 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17139
17140         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
17141         (two anonymous define_insn and two define_split): Delete.
17142         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
17143
17144 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17145
17146         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
17147
17148 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17149
17150         * config/rs6000/predicates.md (ca_operand): Allow subregs.
17151         (input_operand): Do not allow ca_operand.
17152         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
17153         carry bit, allow SImode and Pmode.
17154         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
17155
17156 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
17157
17158         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
17159         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
17160         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
17161         (*call_rex64_ms_sysv): Remove.
17162         (*call_value_rex64_ms_sysv): Ditto.
17163         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
17164
17165 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
17166
17167         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
17168         operand 3 to "CnL".
17169
17170 2014-09-20  Andreas Schwab  <schwab@suse.de>
17171
17172         * config/ia64/ia64.md: Remove constraints from define_split
17173         patterns.
17174
17175 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17176
17177         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class;
17178         add ctors.
17179         (possible_polymorphic_call_targets,
17180         dump_possible_polymorphic_call_targets,
17181         possible_polymorphic_call_target_p,
17182         possible_polymorphic_call_target_p): Simplify.
17183         (get_dynamic_type): Remove.
17184         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
17185         (clear_speculation): Bring to ipa-deivrt.h
17186         (get_class_context): Rename to ...
17187         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
17188         (contains_type_p): Update.
17189         (get_dynamic_type): Rename to ...
17190         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
17191         (possible_polymorphic_call_targets): UPdate.
17192         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
17193         * ipa-prop.c (ipa_analyze_call_uses): Update.
17194
17195 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17196
17197         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
17198         privatize dynamic TLS variables.
17199
17200 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17201
17202         * diagnostic.c (warning_n): New function.
17203         * diagnostic-core.h (warning_n): Declare.
17204         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
17205         output dynamic counts when available.
17206
17207 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17208
17209         PR tree-optimization/63255
17210         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
17211         issue in setting body_removed flag.
17212
17213 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17214
17215         PR c++/61825
17216         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
17217         that visibility change is possible
17218         (handle_weakref_attribute): Likewise.
17219         * cgraph.h (symtab_node): Add method get_create and
17220         field refuse_visibility_changes.
17221         (symtab_node::get_create): New method.
17222         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
17223         * varasm.c (mark_weak): Verify that visibility change is possible.
17224
17225 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
17226
17227         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
17228         for base_reg_operand to be common between LO_SUM and PLUS.
17229         (fusion_gpr_mem_combo): New predicate to match a fused address
17230         that combines the addis and memory offset address.
17231
17232         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
17233         calling signature.
17234         (emit_fusion_gpr_load): Likewise.
17235
17236         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
17237         signature to pass each argument separately, rather than
17238         using an operands array.  Rewrite the insns found by peephole2 to
17239         be a single insn, rather than hoping the insns will still be
17240         together when the peephole pass is done.  Drop being called via a
17241         normal peephole.
17242         (emit_fusion_gpr_load): Change calling signature to be called from
17243         the fusion_gpr_load_<mode> insns with a combined memory address
17244         instead of the peephole pass passing the addis and offset
17245         separately.
17246
17247         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
17248         fusion.
17249         (power8 fusion peephole): Drop support for doing power8 via a
17250         normal peephole that was created by the peephole2 pass.
17251         (power8 fusion peephole2): Create a new insn with the fused
17252         address, so that the fused operation is kept together after
17253         register allocation is done.
17254         (fusion_gpr_load_<mode>): Likewise.
17255
17256 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17257
17258         PR lto/63286
17259         * tree.c (need_assembler_name_p): Do not mangle variadic types.
17260
17261 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
17262
17263         * recog.c (scratch_operand): Do not simply allow all hard registers:
17264         only allow those that are allocatable.
17265
17266 2014-09-19  Felix Yang  <felix.yang@huawei.com>
17267
17268         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
17269         comments and fix spacing to conform to coding style.
17270
17271 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17272
17273         * genrecog.c (validate_pattern): Allow empty constraints in
17274         a match_scratch.
17275
17276 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
17277
17278         * dwarf2out.c (decl_ultimate_origin): Update comment.
17279         * tree.c (block_ultimate_origin): Same.
17280
17281 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17282
17283         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
17284         Update GCC version name to GCC 5.
17285         (rs6000_function_arg_boundary): Likewise.
17286         (rs6000_function_arg): Likewise.
17287
17288 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17289
17290         * config/sh/sh.md: Fix use of constraints in define_split.
17291
17292 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
17293
17294         PR ipa/61998
17295         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
17296
17297 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17298
17299         * doc/md.texi (Modifiers): Consistently use "read/write"
17300         nomenclature rather than "input/output".
17301         * genrecog.c (constraints_supported_in_insn_p): New.
17302         (validate_pattern): If needed, also check constraints on
17303         MATCH_SCRATCH operands.
17304         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
17305         operands with no '=' or '+' modifier.
17306
17307 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17308
17309         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
17310         scratch register as written.
17311
17312 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17313
17314         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
17315         assignment.
17316
17317 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17318
17319         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
17320         expanders.
17321
17322 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17323
17324         PR target/62662
17325         * config/s390/s390.c (s390_emit_epilogue): When doing the return
17326         address load optimization force s390_optimize_prologue to leave it
17327         that way.  Only do the optimization if we already decided to push
17328         r14 into a stack slot.
17329
17330 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
17331
17332         * asan.c (build_check_stmt): Alignment arg was added.
17333         (asan_expand_check_ifn): Optimization for alignment >= 8.
17334
17335 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17336
17337         * config/i386/vxworksae.h: Remove obsolete definitions.
17338         (STACK_CHECK_PROTECT): Define.
17339         * config/i386/vx-common.h: Remove.  Merge contents within
17340         config/i386/vxworks.h.
17341         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
17342         i386/vx-common.h.
17343
17344 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17345
17346         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
17347         * config/rs6000/t-vxworksmils: New file.
17348         * config/rs6000/vxworksmils.h: New file.
17349
17350 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17351
17352         * varasm.c (default_section_type_flags): Flag .persistent.bss
17353         sections as SECTION_BSS.
17354
17355 2014-09-19  Nick Clifton  <nickc@redhat.com>
17356
17357         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
17358         pop'ed registers so that DCE does not eliminate them.
17359
17360 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
17361
17362         PR lto/63298
17363         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
17364
17365 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
17366
17367         * system.h (LIBGCC2_TF_CEXT): Poison.
17368         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
17369         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
17370         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
17371         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
17372         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
17373         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
17374         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
17375         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
17376         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
17377
17378 2014-09-19  Kito Cheng  <kito@0xlab.org>
17379
17380         * except.h: Fix header guard.
17381         * addresses.h: Add missing header guard.
17382         * cfghooks.h: Likewise.
17383         * collect-utils.h: Likewise.
17384         * collect2-aix.h: Likewise.
17385         * conditions.h: Likewise.
17386         * cselib.h: Likewise.
17387         * dwarf2asm.h: Likewise.
17388         * graphds.h: Likewise.
17389         * graphite-scop-detection.h: Likewise.
17390         * gsyms.h: Likewise.
17391         * hw-doloop.h: Likewise.
17392         * incpath.h: Likewise.
17393         * ipa-inline.h: Likewise.
17394         * ipa-ref.h: Likewise.
17395         * ira-int.h: Likewise.
17396         * ira.h: Likewise.
17397         * lra-int.h: Likewise.
17398         * lra.h: Likewise.
17399         * lto-section-names.h: Likewise.
17400         * read-md.h: Likewise.
17401         * reload.h: Likewise.
17402         * rtl-error.h: Likewise.
17403         * sdbout.h: Likewise.
17404         * targhooks.h: Likewise.
17405         * tree-affine.h: Likewise.
17406         * xcoff.h: Likewise.
17407         * xcoffout.h: Likewise.
17408
17409 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17410
17411         PR debug/63285
17412         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
17413         if advance != 0.
17414
17415 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17416
17417         PR target/61360
17418         * lra.c (lra): Call recog_init.
17419
17420 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
17421
17422         PR c++/62017
17423         * asan.c (transform_statements): Don't instrument clobber statements.
17424
17425 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17426
17427         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
17428         to neon_load1_1reg<q>.
17429
17430 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
17431
17432         PR debug/63284
17433         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
17434         if there are only debug stmts after the noreturn call, instead
17435         remove the debug stmts.
17436
17437 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
17438
17439         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
17440         (odr_types_equivalent_p): Use pair hash.
17441         (odr_subtypes_equivalent_p): Likewise, do structural compare
17442         on ODR types that may be mismatched.
17443         (warn_odr): Support warning when only one field is given.
17444         (odr_types_equivalent_p): Strenghten comparsions made;
17445         support VOIDtype.
17446         (add_type_duplicate): Update VISITED hash set.
17447
17448 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17449
17450         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
17451         Enable selection of 'posix' or no thread model.
17452
17453 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
17454
17455         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
17456         when architecture is older than ARMv7.
17457
17458 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
17459
17460         PR target/61853
17461         * config/pa/pa.c (pa_function_value): Directly handle aggregates
17462         that fit exactly in a word or double word.
17463
17464 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
17465
17466         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
17467         zmm/k regs support.
17468
17469 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17470             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17471             Anna Tikhonova  <anna.tikhonova@intel.com>
17472             Ilya Tocar  <ilya.tocar@intel.com>
17473             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17474             Ilya Verbin  <ilya.verbin@intel.com>
17475             Kirill Yukhin  <kirill.yukhin@intel.com>
17476             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17477
17478         * config/i386/i386.c
17479         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
17480         * config/i386/sse.md
17481         (define_mode_iterator VI48F_256): New.
17482         (define_mode_attr extract_type): Ditto.
17483         (define_mode_attr extract_suf): Ditto.
17484         (define_mode_iterator AVX512_VEC): Ditto.
17485         (define_expand
17486         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
17487         AVX512_VEC.
17488         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
17489         (define_insn
17490         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
17491         Ditto.
17492         (define_mode_attr extract_type_2): Ditto.
17493         (define_mode_attr extract_suf_2): Ditto.
17494         (define_mode_iterator AVX512_VEC_2): Ditto.
17495         (define_expand
17496         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
17497         AVX512_VEC_2 mode iterator.
17498         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17499         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
17500         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17501         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17502         (define_split for V16FI mode): Ditto.
17503         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17504         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17505         (define_split for VI8F_256 mode): Ditto.
17506         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17507         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17508         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17509         (define_split for VI4F_256 mode): Ditto.
17510         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
17511         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17512         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17513         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
17514         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
17515         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
17516         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
17517         Update `type' attribute, remove explicit `memory' attribute calculation.
17518
17519 2014-09-16  Kito Cheng  <kito@0xlab.org>
17520
17521         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
17522         ira_spilled_reg_stack_slots_num if using lra.
17523         (do_reload): Remove release ira_spilled_reg_stack_slots part.
17524         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
17525         make sure not using lra.
17526         (ira_reuse_stack_slot): Likewise.
17527         (ira_mark_new_stack_slot): Likewise.
17528
17529 2014-09-15  Andi Kleen  <ak@linux.intel.com>
17530
17531         * function.c (allocate_struct_function): Force
17532         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
17533         profiling is disabled.
17534
17535 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17536
17537         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
17538         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
17539         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
17540         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
17541         macro with statically checked member functions.
17542         * rtl.h (rtx_insn::deleted): New method.
17543         (rtx_insn::set_deleted): Likewise.
17544         (rtx_insn::set_undeleted): Likewise.
17545         (INSN_DELETED_P): Remove.
17546
17547 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17548
17549         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17550         result of emit_jump_insn_before to a new variable.
17551         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17552         (mark_jump_label_1): Likewise.
17553         (mark_jump_label_asm): Likewise.
17554         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17555         * rtl.h (mark_jump_label): Adjust.
17556
17557 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
17558
17559         * Makefile.in (dg_target_exps): Remove.
17560         (check_gcc_parallelize): Change to just an upper bound number.
17561         (check-%-subtargets): Always print the non-parallelized goals.
17562         (check_p_vars, check_p_comma, check_p_subwork): Remove.
17563         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17564         check_p_numbers3, check_p_numbers4, check_p_numbers5,
17565         check_p_numbers6): New variables.
17566         (check_p_numbers): Set to sequence from 1 to 9999.
17567         (check_p_subdirs): Set to sequence from 1 to minimum of
17568         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17569         or 128.
17570         (check-%, check-parallel-%): Rewritten so that for parallelized
17571         testing each job runs all the *.exp files, with
17572         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17573
17574 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17575
17576         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17577         rtx to rtx_insn *.
17578         (arc_sets_cc_p): Likewise.
17579         * config/arc/arc.c (arc_print_operand): Use methods of
17580         "final_sequence" for clarity, and to enable strengthening of
17581         locals "jump" and "delay" from rtx to rtx_insn *.
17582         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17583         rtx_insn *; use method of rtx_sequence for typesafety.
17584         (arc_get_insn_variants): Use insn method of rtx_sequence for
17585         typesafety.
17586         (arc_pad_return): Likewise.
17587         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17588         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
17589         dyn_cast to rtx_sequence *, using insn method for typesafety.
17590         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17591         rtx_sequence * and use insn method when invoking get_attr_length.
17592         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17593         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
17594         rtx_sequence *, introducing a local "seq", using its insn method
17595         from typesafety and clarity.
17596         (add_sched_insns_for_speculation): Strengthen local "next" from
17597         rtx to rtx_insn *.
17598         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17599         (predicate_insn): Likewise.
17600         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17601         second param.
17602         * config/cris/cris.c (cris_notice_update_cc): Likewise.
17603         * config/epiphany/epiphany-protos.h
17604         (extern void epiphany_insert_mode_switch_use): Likewise for param
17605         "insn".
17606         (get_attr_sched_use_fpu): Likewise for param.
17607         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17608         Likewise for param "insn".
17609         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17610         param "insn" of "target_insert_mode_switch_use" callback.
17611         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17612         (frv_issues_to_branch_unit_p): Likewise.
17613         (frv_pack_insn_p): Likewise.
17614         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17615         const rtx * (i.e. mutable rtx_def * const *) to
17616         rtx_insn * const *.
17617         * config/i386/i386-protos.h (standard_sse_constant_opcode):
17618         Strengthen first param from rtx to rtx_insn *.
17619         (output_fix_trunc): Likewise.
17620         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17621         (output_fix_trunc): Likewise.
17622         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17623         local "insn".
17624         (min_insn_size): Likewise for param "insn".
17625         (get_mem_group): Likewise.
17626         (is_cmp): Likewise.
17627         (get_insn_path): Likewise.
17628         (get_insn_group): Likewise.
17629         (count_num_restricted): Likewise.
17630         (fits_dispatch_window): Likewise.
17631         (add_insn_window): Likewise.
17632         (add_to_dispatch_window): Likewise.
17633         (debug_insn_dispatch_info_file): Likewise.
17634         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17635         first param.
17636         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17637         "cmp" and local "prev".
17638         (m32c_output_compare): Likewise for param "insn".
17639         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17640         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17641         (define_predicate "large_insn_p"): Likewise.
17642         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17643         param from rtx to rtx_insn *.
17644         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17645         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17646         (m68k_sched_attr_size): Likewise.
17647         (sched_get_opxy_mem_type): Likewise for param "insn".
17648         (m68k_sched_attr_op_mem): Likewise.
17649         (sched_mem_operand_p): Likewise.
17650         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17651         * config/mep/mep.c (mep_multi_slot): Likewise.
17652         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17653         first param.
17654         (mips_sync_loop_insns): Likewise.
17655         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17656         method of "final_sequence" for typesafety.
17657         (mips_process_sync_loop): Strengthen param "insn" from rtx to
17658         rtx_insn *.
17659         (mips_output_sync_loop): Likewise.
17660         (mips_sync_loop_insns): Likewise.
17661         (mips_74k_agen_init): Likewise.
17662         (mips_sched_init): Use NULL rather than NULL_RTX when working with
17663         insns.
17664         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17665         Strengthen param "insn" from rtx to rtx_insn *.
17666         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17667         local "insn".
17668         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for param.
17669         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17670         "insn".  Use method of rtx_sequence for typesafety.
17671         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17672         rtx_insn *.
17673         (branch_needs_nop_p): Likewise.
17674         (use_skip_p): Likewise.
17675         (pa_insn_refs_are_delayed): Likewise.
17676         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17677         for locals "insn", "ninsn".
17678         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17679         "insn".
17680         (is_cracked_insn): Likewise.
17681         (is_branch_slot_insn): Likewise.
17682         (is_nonpipeline_insn): Likewise.
17683         (insn_terminates_group_p): Likewise.
17684         (insn_must_be_first_in_group): Likewise.
17685         (insn_must_be_last_in_group): Likewise.
17686         (force_new_group): Likewise for param "next_insn".
17687         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17688         "insn".
17689         (s390_sched_score): Likewise.
17690         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17691         (rtx sfunc_uses_reg): Likewise for sole param.
17692         * config/sh/sh.c (sh_print_operand): Use insn method of
17693         final_sequence for typesafety.
17694         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17695         Use insn method of final_sequence for typesafety.
17696         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17697         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17698         for param.
17699         (eligible_for_return_delay): Likewise.
17700         (eligible_for_sibcall_delay): Likewise.
17701         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17702         (eligible_for_return_delay): Likewise.
17703         (eligible_for_sibcall_delay): Likewise.
17704         * config/stormy16/stormy16-protos.h
17705         (xstormy16_output_cbranch_hi): Likewise for final param.
17706         (xstormy16_output_cbranch_si): Likewise.
17707         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17708         (xstormy16_output_cbranch_si): Likewise.
17709         * config/v850/v850-protos.h (notice_update_cc): Likewise.
17710         * config/v850/v850.c (notice_update_cc): Likewise.
17711
17712         * final.c (get_attr_length_1): Strengthen param "insn" and param
17713         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17714         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17715         (get_attr_min_length): Likewise.
17716         (shorten_branches): Likewise for signature of locals "length_fun"
17717         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
17718         from a checked cast and use its methods for clarity and to enable
17719         strengthening local "inner_insn" from rtx to rtx_insn *.
17720         * genattr.c (gen_attr): When writing out the prototypes of the
17721         various generated "get_attr_" functions, strengthen the params of
17722         the non-const functions from rtx to rtx_insn *.
17723         Similarly, strengthen the params of insn_default_length,
17724         insn_min_length, insn_variable_length_p, insn_current_length.
17725         (main): Similarly, strengthen the param of num_delay_slots,
17726         internal_dfa_insn_code, insn_default_latency, bypass_p,
17727         insn_latency, min_issue_delay, print_reservation,
17728         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17729         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
17730         to hook_int_rtx_insn_unreachable.
17731         * genattrtab.c (write_attr_get): When writing out the generated
17732         "get_attr_" functions, strengthen the param "insn" from rtx to
17733         rtx_insn *, eliminating a checked cast.
17734         (make_automaton_attrs): When writing out prototypes of
17735         "internal_dfa_insn_code_", "insn_default_latency_" functions
17736         and the "internal_dfa_insn_code" and "insn_default_latency"
17737         callbacks, strengthen their params from rtx to rtx_insn *
17738         * genautomata.c (output_internal_insn_code_evaluation): When
17739         writing out code, add a checked cast from rtx to rtx_insn * when
17740         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17741         (output_dfa_insn_code_func): Strengthen param of generated
17742         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17743         (output_trans_func): Likewise for generated function
17744         "state_transition".
17745         (output_internal_insn_latency_func): When writing out generated
17746         function "internal_insn_latency", rename params from "insn" and
17747         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
17748         locals "insn" and "insn2" as rtx_insn * with checked casts once
17749         we've proven that we're not dealing with const0_rtx.
17750         (output_insn_latency_func):  Strengthen param of generated
17751         function "insn_latency" from rtx to rtx_insn *.
17752         (output_print_reservation_func): Likewise for generated function
17753         "print_reservation".
17754         (output_insn_has_dfa_reservation_p): Likewise for generated
17755         function "insn_has_dfa_reservation_p".
17756         * hooks.c (hook_int_rtx_unreachable): Rename to...
17757         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17758         from rtx to rtx_insn *.
17759         * hooks.h (hook_int_rtx_unreachable): Likewise.
17760         (extern int hook_int_rtx_insn_unreachable): Likewise.
17761         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17762         (get_attr_min_length): Likewise.
17763         * recog.c (get_enabled_alternatives): Likewise.
17764         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17765         * reorg.c (find_end_label): Introduce local rtx "pat" and
17766         strengthen local "insn" from rtx to rtx_insn *.
17767         (redundant_insn): Use insn method of "seq" rather than element for
17768         typesafety; strengthen local "control" from rtx to rtx_insn *.
17769         * resource.c (mark_referenced_resources): Add checked cast to
17770         rtx_insn * within INSN/JUMP_INSN case.
17771         (mark_set_resources): Likewise.
17772         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17773         rtx to rtx_insn *.
17774
17775 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17776
17777         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17778         param "label" from rtx to rtx_insn *.
17779         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17780         and local "op".
17781         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17782         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17783         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17784         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17785         * final.c (default_label_align_after_barrier_max_skip): Strengthen
17786         param from rtx to rtx_insn *.
17787         (default_loop_align_max_skip): Likewise.
17788         (default_label_align_max_skip): Likewise.
17789         (default_jump_align_max_skip): Likewise.
17790         * target.def (label_align_after_barrier_max_skip): Likewise.
17791         (loop_align_max_skip): Likewise.
17792         (label_align_max_skip): Likewise.
17793         (jump_align_max_skip): Likewise.
17794         * targhooks.h (default_label_align_after_barrier_max_skip): Likewise.
17795         (default_loop_align_max_skip): Likewise.
17796         (default_label_align_max_skip): Likewise.
17797         (default_jump_align_max_skip): Likewise.
17798
17799 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17800
17801         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17802         from const_rtx to const rtx_insn *.  Update union members from rtx
17803         to rtx_insn *.
17804         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17805         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17806         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17807         strengthen both params from const_rtx to const rtx_insn *.
17808         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17809         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17810         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17811         rtx_insn *.
17812         * target.def (can_follow_jump): Strengthen both params from
17813         const_rtx to const rtx_insn *, and update default implementation
17814         from hook_bool_const_rtx_const_rtx_true to
17815         hook_bool_const_rtx_insn_const_rtx_insn_true.
17816
17817 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17818
17819         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17820         "insn" from rtx to rtx_insn *.
17821         * sched-int.h (deps_start_bb): Likewise for 2nd param.
17822
17823 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17824             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17825             Anna Tikhonova  <anna.tikhonova@intel.com>
17826             Ilya Tocar  <ilya.tocar@intel.com>
17827             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17828             Ilya Verbin  <ilya.verbin@intel.com>
17829             Kirill Yukhin  <kirill.yukhin@intel.com>
17830             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17831
17832         * config/i386/sse.md
17833         (define_insn "vcvtph2ps<mask_name>"): Add masking.
17834         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17835         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17836         (define_expand "vcvtps2ph_mask"): New.
17837         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17838         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17839         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17840
17841 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17842             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17843             Anna Tikhonova  <anna.tikhonova@intel.com>
17844             Ilya Tocar  <ilya.tocar@intel.com>
17845             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17846             Ilya Verbin  <ilya.verbin@intel.com>
17847             Kirill Yukhin  <kirill.yukhin@intel.com>
17848             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17849
17850         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17851         New.
17852         (define_mode_iterator VI24_AVX512BW_1): Ditto.
17853         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17854         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17855         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17856         also for TARGET_AVX512VL.
17857         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17858
17859 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
17860
17861         * doc/install.texi (Options specification): add
17862         --disable-libsanitizer item.
17863
17864 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
17865             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
17866
17867         PR target/61407
17868         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17869         and above.
17870         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17871         kernel version check to avoid incrementing it after every major OS X
17872         release.
17873         (darwin_default_min_version): Avoid static memory buffer.
17874
17875 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
17876
17877         * tree.c (need_assembler_name_p): Store C++ type mangling only
17878         for aggregates.
17879
17880 2014-09-13  Marek Polacek  <polacek@redhat.com>
17881
17882         * tree.c (protected_set_expr_location): Don't check whether T is
17883         non-null here.
17884
17885 2014-09-12  DJ Delorie  <dj@redhat.com>
17886
17887         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17888         (extend_and_shift1_hipsi2): Likewise.
17889         (extend_and_shift2_hipsi2): Likewise.
17890
17891 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
17892
17893         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17894         with NULL when dealing with an insn.
17895         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17896         from rtx to rtx_insn *.
17897         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17898         const_rtx to const rtx_insn *.
17899         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17900
17901 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
17902
17903         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17904         assert.
17905
17906 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
17907
17908         * target.def (libgcc_floating_mode_supported_p): New hook.
17909         * targhooks.c (default_libgcc_floating_mode_supported_p): New
17910         function.
17911         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17912         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17913         (LIBGCC2_HAS_TF_MODE): Remove.
17914         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17915         * doc/tm.texi: Regenerate.
17916         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17917         machine mode.
17918         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17919         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17920         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17921         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17922         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17923         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17924         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17925         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17926         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17927         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17928         function.
17929         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17930         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17931         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17932         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17933         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17934         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17935         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17936         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17937         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17938         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17939         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17940         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17941         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17942         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17943         Remove.
17944         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17945         New macro.
17946         (ia64_libgcc_floating_mode_supported_p): New function.
17947         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17948         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17949         (IA64_NO_LIBGCC_TFMODE): Define.
17950         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17951         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17952         (pdp11_scalar_mode_supported_p): New function.
17953         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17954         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17955
17956 2014-09-12  Richard Biener  <rguenther@suse.de>
17957
17958         PR middle-end/63237
17959         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17960
17961 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
17962
17963         * tree.c (integer_each_onep): New function.
17964         * tree.h (integer_each_onep): Declare it.
17965         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17966         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17967         (X & 1) == 0 for vector and complex.
17968
17969 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17970
17971         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17972         for A57.
17973         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
17974         cost to spilling from integer to FP registers.
17975
17976 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17977
17978         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17979         move handling.
17980         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17981         are now handled correctly.
17982
17983 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17984
17985         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17986         handling of CALLER_SAVE_REGS and POINTER_REGS.
17987
17988 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17989
17990         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17991         the number of hard registers.
17992
17993 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17994             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17995             Anna Tikhonova  <anna.tikhonova@intel.com>
17996             Ilya Tocar  <ilya.tocar@intel.com>
17997             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17998             Ilya Verbin  <ilya.verbin@intel.com>
17999             Kirill Yukhin  <kirill.yukhin@intel.com>
18000             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18001
18002         * config/i386/sse.md
18003         (define_mode_iterator VI48_AVX512VL): New.
18004         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
18005         "avx512f_vternlog<mode>_maskz" and update mode iterator.
18006         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
18007         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
18008         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
18009         "avx512f_vternlog<mode>_mask" and update mode iterator.
18010         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
18011         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
18012         iterator.
18013         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
18014         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
18015         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
18016         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
18017         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
18018         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
18019
18020 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18021             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18022             Anna Tikhonova  <anna.tikhonova@intel.com>
18023             Ilya Tocar  <ilya.tocar@intel.com>
18024             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18025             Ilya Verbin  <ilya.verbin@intel.com>
18026             Kirill Yukhin  <kirill.yukhin@intel.com>
18027             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18028
18029         * config/i386/sse.md (VI128_256): Delete.
18030         (define_mode_iterator VI124_256): New.
18031         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
18032         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
18033         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
18034         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
18035         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
18036         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
18037         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
18038         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
18039         iterator.
18040         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
18041         in presence of AVX-512.
18042
18043 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18044             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18045             Anna Tikhonova  <anna.tikhonova@intel.com>
18046             Ilya Tocar  <ilya.tocar@intel.com>
18047             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18048             Ilya Verbin  <ilya.verbin@intel.com>
18049             Kirill Yukhin  <kirill.yukhin@intel.com>
18050             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18051
18052         * config/i386/sse.md
18053         (define_expand "<avx512>_gathersi<mode>"): Rename from
18054         "avx512f_gathersi<mode>".
18055         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
18056         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
18057         (define_expand "<avx512>_gatherdi<mode>"): Rename from
18058         "avx512f_gatherdi<mode>".
18059         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
18060         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
18061         wide versions.
18062         (define_expand "<avx512>_scattersi<mode>"): Rename from
18063         "avx512f_scattersi<mode>".
18064         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
18065         (define_expand "<avx512>_scatterdi<mode>"): Rename from
18066         "avx512f_scatterdi<mode>".
18067         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
18068
18069 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
18070
18071         * ira.h (ira_finish_once): Delete.
18072         * ira-int.h (target_ira_int::~target_ira_int): Declare.
18073         (target_ira_int::free_ira_costs): Likewise.
18074         (target_ira_int::free_register_move_costs): Likewise.
18075         (ira_finish_costs_once): Delete.
18076         * ira.c (free_register_move_costs): Replace with...
18077         (target_ira_int::free_register_move_costs): ...this new function.
18078         (target_ira_int::~target_ira_int): Define.
18079         (ira_init): Call free_register_move_costs as a member function rather
18080         than a global function.
18081         (ira_finish_once): Delete.
18082         * ira-costs.c (free_ira_costs): Replace with...
18083         (target_ira_int::free_ira_costs): ...this new function.
18084         (ira_init_costs): Call free_ira_costs as a member function rather
18085         than a global function.
18086         (ira_finish_costs_once): Delete.
18087         * target-globals.c (target_globals::~target_globals): Call the
18088         target_ira_int destructor.
18089         * toplev.c: Include lra.h.
18090         (finalize): Call lra_finish_once rather than ira_finish_once.
18091
18092 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
18093
18094         * common.opt (flto-odr-type-merging): New flag.
18095         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
18096         (types_same_for_odr): Likewise.
18097         (odr_subtypes_equivalent_p): Likewise.
18098         (add_type_duplicate): Do not walk type variants.
18099         (register_odr_type): New function.
18100         * ipa-utils.h (register_odr_type): Declare.
18101         (odr_type_p): New function.
18102         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
18103         TYPE_DECLs
18104         * doc/invoke.texi (-flto-odr-type-merging): Document.
18105         * tree.c (need_assembler_name_p): Compute ODR names when asked
18106         for it.
18107         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
18108
18109 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
18110
18111         PR target/63228
18112         * config/i386/i386.c (ix86_option_override_internal): Also turn
18113         off OPTION_MASK_ABI_X32 for -m16.
18114
18115 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
18116
18117         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
18118         GPR instead of P.
18119
18120 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
18121
18122         PR target/58757
18123         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
18124         Directly forward to __*_DENORM_MIN__.
18125
18126 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
18127
18128         * rtl.h (LABEL_REF_LABEL): New macro.
18129
18130         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
18131         of XEXP (, 0), where we know that we have a LABEL_REF.
18132         * cfgbuild.c (make_edges): Likewise.
18133         (purge_dead_tablejump_edges): Likewise.
18134         * cfgexpand.c (convert_debug_memory_address): Likewise.
18135         * cfgrtl.c (patch_jump_insn): Likewise.
18136         * combine.c (distribute_notes): Likewise.
18137         * cse.c (hash_rtx_cb): Likewise.
18138         (exp_equiv_p): Likewise.
18139         (fold_rtx): Likewise.
18140         (check_for_label_ref): Likewise.
18141         * cselib.c (rtx_equal_for_cselib_1): Likewise.
18142         (cselib_hash_rtx): Likewise.
18143         * emit-rtl.c (mark_label_nuses): Likewise.
18144         * explow.c (convert_memory_address_addr_space): Likewise.
18145         * final.c (output_asm_label): Likewise.
18146         (output_addr_const): Likewise.
18147         * gcse.c (add_label_notes): Likewise.
18148         * genconfig.c (walk_insn_part): Likewise.
18149         * genrecog.c (validate_pattern): Likewise.
18150         * ifcvt.c (cond_exec_get_condition): Likewise.
18151         (noce_emit_store_flag): Likewise.
18152         (noce_get_alt_condition): Likewise.
18153         (noce_get_condition): Likewise.
18154         * jump.c (maybe_propagate_label_ref): Likewise.
18155         (mark_jump_label_1): Likewise.
18156         (redirect_exp_1): Likewise.
18157         (rtx_renumbered_equal_p): Likewise.
18158         * lra-constraints.c (operands_match_p): Likewise.
18159         * reload.c (operands_match_p): Likewise.
18160         (find_reloads): Likewise.
18161         * reload1.c (set_label_offsets): Likewise.
18162         * reorg.c (get_branch_condition): Likewise.
18163         * rtl.c (rtx_equal_p_cb): Likewise.
18164         (rtx_equal_p): Likewise.
18165         * rtlanal.c (reg_mentioned_p): Likewise.
18166         (rtx_referenced_p): Likewise.
18167         (get_condition): Likewise.
18168         * sched-vis.c (print_value): Likewise.
18169         * varasm.c (const_hash_1): Likewise.
18170         (compare_constant): Likewise.
18171         (const_rtx_hash_1): Likewise.
18172         (output_constant_pool_1): Likewise.
18173
18174 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
18175
18176         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
18177         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
18178         instead of minus.
18179         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
18180         cr6_test_for_lt_reverse): Ditto.
18181
18182 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
18183
18184         PR c++/61489
18185         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
18186
18187 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
18188
18189         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
18190         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
18191         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
18192         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
18193         Delete.
18194
18195         (aarch64_fold_builtin): Remove all reinterpret cases.
18196
18197         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
18198
18199         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
18200
18201         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
18202         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
18203         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
18204         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
18205         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
18206         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
18207         aarch64_reinterpretv2df<mode>): Delete.
18208
18209         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
18210
18211         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
18212         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
18213         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
18214         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
18215         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
18216         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
18217         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
18218         vreinterpret_u32_f64): Use cast.
18219
18220         * config/aarch64/iterators.md (VD_RE): Delete.
18221
18222 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
18223
18224         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
18225         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
18226         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
18227         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
18228         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
18229         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
18230         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
18231         Replace inline assembler with __aarch64_vset_lane_any.
18232
18233 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
18234
18235         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
18236         types.
18237         (vmull_high_lane_s32): Likewise.
18238         (vmull_high_lane_u16): Likewise.
18239         (vmull_high_lane_u32): Likewise.
18240
18241 2014-09-11  Jason Merrill  <jason@redhat.com>
18242
18243         PR c++/58678
18244         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
18245
18246 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
18247
18248         PR target/63223
18249         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
18250         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
18251         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
18252
18253 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18254             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18255             Anna Tikhonova  <anna.tikhonova@intel.com>
18256             Ilya Tocar  <ilya.tocar@intel.com>
18257             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18258             Ilya Verbin  <ilya.verbin@intel.com>
18259             Kirill Yukhin  <kirill.yukhin@intel.com>
18260             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18261
18262         * config/i386/sse.md
18263         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
18264         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
18265         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
18266         New.
18267         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
18268         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
18269         iterator.
18270         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
18271         New.
18272         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
18273         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
18274         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
18275         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
18276         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
18277         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
18278         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
18279         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
18280         iterator.
18281         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
18282         New.
18283         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
18284         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
18285         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
18286
18287 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18288
18289         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
18290         to access removed nodes.
18291
18292 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18293
18294         PR tree-optimization/63186
18295         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
18296         (mark_nonssa_use): Likewise.
18297         (verify_non_ssa_vars): Verify all header blocks for label
18298         definitions.
18299
18300 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18301             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18302             Anna Tikhonova  <anna.tikhonova@intel.com>
18303             Ilya Tocar  <ilya.tocar@intel.com>
18304             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18305             Ilya Verbin  <ilya.verbin@intel.com>
18306             Kirill Yukhin  <kirill.yukhin@intel.com>
18307             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18308
18309         * config/i386/sse.md
18310         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
18311         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
18312         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
18313         "<avx2_avx512f>_permvar<mode><mask_name>".
18314         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
18315         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
18316         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
18317         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
18318         Ditto.
18319         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
18320         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
18321         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
18322         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
18323
18324 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
18325
18326         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
18327         V2DF, V4SF, DF, and DI modes.
18328         (vsx_fmav2df2): Likewise.
18329         (vsx_float_fix_<mode>2): Likewise.
18330         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
18331
18332 2014-09-10  Xinliang David Li  <davidxl@google.com>
18333
18334         PR target/63209
18335         * config/arm/arm.md (movcond_addsi): Handle case where source
18336         and target operands are the same.
18337
18338 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
18339
18340         * final.c (this_is_asm_operands): Strengthen this variable from
18341         rtx to const rtx_insn *.
18342         * output.h (this_is_asm_operands): Likewise.
18343         * rtl-error.c (location_for_asm): Strengthen param "insn" from
18344         const_rtx to const rtx_insn *.
18345         (diagnostic_for_asm): Likewise.
18346         * rtl-error.h (error_for_asm): Likewise.
18347         (warning_for_asm): Likewise.
18348
18349 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
18350
18351         * genextract.c (print_header): When writing out insn_extract to
18352         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
18353         * recog.h (insn_extract): Strengthen the param from rtx to
18354         rtx_insn *.
18355
18356 2014-09-10  Mike Stump  <mikestump@comcast.net>
18357
18358         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
18359         8.6.1.
18360
18361 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18362
18363         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
18364         (analyze): Do not set analyze flag if expand_thunk returns false;.
18365         (create_wrapper): Likewise.
18366         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
18367
18368 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18369
18370         PR ipa/61654
18371         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
18372         new decl properly.  Analyze the new thunk if it is expanded.
18373
18374 2014-09-10  Andreas Schwab  <schwab@suse.de>
18375
18376         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
18377         [USED_FOR_TARGET]: Define.
18378
18379 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
18380
18381         * config/mips/mips.c (mips_secondary_reload_class): Handle
18382         regno < 0 case.
18383
18384 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
18385
18386         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
18387         assignment.
18388
18389 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
18390
18391         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
18392         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
18393         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
18394         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
18395         flag_delete_null_pointer_checks for them.
18396         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
18397         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
18398         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
18399         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
18400         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
18401         stmt's iterator.
18402         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
18403         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
18404         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
18405         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
18406         * doc/invoke.texi (-fsanitize=nonnull-attribute,
18407         -fsanitize=returns-nonnull-attribute): Document.
18408
18409         * ubsan.h (struct ubsan_mismatch_data): Removed.
18410         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18411         * ubsan.c (ubsan_source_location): For unknown locations,
18412         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
18413         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18414         Allow more than one location and arbitrary extra arguments passed
18415         in ... instead of through MISMATCH pointer.
18416         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
18417         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
18418         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
18419         callers.
18420
18421 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18422             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18423             Anna Tikhonova  <anna.tikhonova@intel.com>
18424             Ilya Tocar  <ilya.tocar@intel.com>
18425             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18426             Ilya Verbin  <ilya.verbin@intel.com>
18427             Kirill Yukhin  <kirill.yukhin@intel.com>
18428             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18429
18430         * config/i386/sse.md
18431         (define_mode_iterator VI48F): New.
18432         (define_insn "<avx512>_compress<mode>_mask"): Rename from
18433         "avx512f_compress<mode>_mask" and update mode iterator.
18434         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
18435         "avx512f_compressstore<mode>_mask" and update mode iterator.
18436         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
18437         "avx512f_expand<mode>_maskz" and update mode iterator.
18438         (define_insn "<avx512>_expand<mode>_mask"): Rename from
18439         "avx512f_expand<mode>_mask" and update mode iterator.
18440
18441 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18442             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18443             Anna Tikhonova  <anna.tikhonova@intel.com>
18444             Ilya Tocar  <ilya.tocar@intel.com>
18445             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18446             Ilya Verbin  <ilya.verbin@intel.com>
18447             Kirill Yukhin  <kirill.yukhin@intel.com>
18448             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18449
18450         * config/i386/i386.c
18451         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
18452         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
18453         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
18454         avx512dq_rangepv4sf_mask.
18455         * config/i386/sse.md
18456         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
18457         UNSPEC_RANGE.
18458         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
18459         (define_insn "reduces<mode>"): Ditto.
18460         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
18461         Ditto.
18462         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
18463         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
18464         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
18465
18466 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18467             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18468             Anna Tikhonova  <anna.tikhonova@intel.com>
18469             Ilya Tocar  <ilya.tocar@intel.com>
18470             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18471             Ilya Verbin  <ilya.verbin@intel.com>
18472             Kirill Yukhin  <kirill.yukhin@intel.com>
18473             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18474
18475         * config/i386/i386.c
18476         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
18477         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
18478         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
18479         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
18480         avx512vl_getmantv2df_mask.
18481         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
18482         avx512f_vgetmantv4sf_round.
18483         * config/i386/sse.md
18484         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
18485         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
18486         mode iterator.
18487         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
18488         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
18489         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
18490         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
18491         iterator..
18492         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
18493         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
18494         update mode iterator.
18495         (define_expand
18496         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
18497         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
18498         mode iterator.
18499         (define_insn
18500         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
18501         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
18502         update mode iterator.
18503         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
18504         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
18505         iterator..
18506         (define_insn
18507         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
18508         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
18509         mode iterator..
18510         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
18511         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
18512         update mode iterator.
18513         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
18514         "avx512f_getmant<mode><round_saeonly_name>".
18515
18516 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18517
18518         PR ipa/63166
18519         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
18520
18521 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18522             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18523             Anna Tikhonova  <anna.tikhonova@intel.com>
18524             Ilya Tocar  <ilya.tocar@intel.com>
18525             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18526             Ilya Verbin  <ilya.verbin@intel.com>
18527             Kirill Yukhin  <kirill.yukhin@intel.com>
18528             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18529
18530         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
18531         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
18532         (define_mode_iterator FMAMODE_AVX512): New.
18533         (define_mode_iterator FMAMODE): Remove conditions.
18534         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
18535         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
18536         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
18537         mode iterator.
18538         (define_mode_iterator FMAMODE_NOVF512): Remove.
18539         (define_insn "*fma_fmadd_<mode>"): Rename from
18540         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
18541         FMAMODE mode iterator.
18542         (define_mode_iterator VF_SF_AVX512VL): New.
18543         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18544         Use VF_SF_AVX512VL mode iterator.
18545         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18546         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18547         iterator.
18548         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18549         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18550         iterator.
18551         (define_insn "*fma_fmsub_<mode>"): Rename from
18552         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18553         FMAMODE mode iterator.
18554         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18555         Use VF_SF_AVX512VL mode iterator.
18556         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18557         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18558         iterator.
18559         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18560         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18561         iterator.
18562         (define_insn "*fma_fnmadd_<mode>"): Rename from
18563         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18564         use FMAMODE mode iterator.
18565         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18566         Use VF_SF_AVX512VL mode iterator.
18567         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18568         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18569         iterator.
18570         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18571         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18572         iterator.
18573         (define_insn "*fma_fnmsub_<mode>"): Rename from
18574         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18575         FMAMODE mode iterator.
18576         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18577         Use VF_SF_AVX512VL mode iterator.
18578         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18579         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18580         iterator.
18581         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18582         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18583         iterator.
18584         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18585         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18586         use VF_AVX512VL mode iterator.
18587         (define_insn "*fma_fmaddsub_<mode>"): Rename from
18588         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18589         remove subst usage.
18590         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18591         Use VF_SF_AVX512VL mode iterator.
18592         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18593         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18594         iterator.
18595         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18596         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18597         iterator.
18598         (define_insn "*fma_fmsubadd_<mode>"): Rename from
18599         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18600         remove usage of subst.
18601         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18602         Use VF_SF_AVX512VL mode iterator.
18603         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18604         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18605         iterator.
18606         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18607         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18608         iterator.
18609
18610 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
18611
18612         Revert r213751:
18613         * calls.c (precompute_arguments): Check
18614          promoted_for_signed_and_unsigned_p and set the promoted mode.
18615         (promoted_for_signed_and_unsigned_p): New function.
18616         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18617         and set the promoted mode.
18618         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18619         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18620         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18621
18622 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18623
18624         * opth-gen.awk: Generate mapping from cpp message reasons to the
18625         options that enable them.
18626         * doc/options.texi (CppReason): Document.
18627
18628 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18629
18630         * doc/invoke.texi (Wnormalized=): Update.
18631
18632 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
18633
18634         PR target/63195
18635         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18636         operands.  Split off the constant operand alternative to ...
18637         (*bool<mode>3_imm): New.
18638
18639 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18640
18641         * rtl.h (single_set_2): Strengthen first param from const_rtx to
18642         const rtx_insn *, and move prototype to above...
18643         (single_set): ...this.  Convert this from a macro to an inline
18644         function, enforcing the requirement that the param is a const
18645         rtx_insn *.
18646         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18647
18648         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18649         Strengthen both params from rtx to rtx_insn *.
18650         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18651         Likewise; introduce locals "producer_set", "consumer_set", using
18652         them in place of "producer" and "consumer" when dealing with SET
18653         rather than insn.
18654         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18655         when invoking single_set in region guarded by INSN_P.
18656         (avr_out_bitop): Likewise.
18657         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18658         region guarded by GET_CODE check, using methods to strengthen
18659         local "this_insn" from rtx to rtx_insn *, and for clarity.
18660         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18661         Strengthen local "insn" from rtx to rtx_insn *.
18662         (define_insn_and_split "xload<mode>_A"): Likewise.
18663         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18664         "insn".
18665         (find_load): Likewise for return type.
18666         (workaround_speculation): Likewise for both locals named
18667         "load_insn".
18668         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18669         local "cc0_user".
18670         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18671         for local "prev".
18672         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18673         param 2.
18674         * config/h8300/h8300.c (notice_update_cc): Likewise.
18675         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18676         "insn" and "dep_insn".
18677         (exact_store_load_dependency): Likewise for both params.
18678         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18679         since this now clashes with inline function.  Instead, delay
18680         calling single_set until the point where its needed, and then
18681         assign the result to "compare_set" and rework the conditional that
18682         follows.
18683         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18684         local "last" from rtx to rtx_insn *.
18685         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18686         second param.
18687         (mips_store_data_bypass_p): Likewise for both params.
18688         * config/mips/mips.c (mips_load_store_insns): Likewise for second
18689         param.
18690         (mips_store_data_bypass_p): Likewise for both params.
18691         (mips_orphaned_high_part_p): Likewise for param "insn".
18692         * config/mn10300/mn10300.c (extract_bundle): Likewise.
18693         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18694         Introduce local rtx "insn2_pat".
18695         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18696         "ninsn".
18697         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18698         Introduce local rtx "set", using it in place of "insn" for the
18699         result of single_set.  This appears to fix a bug, since the call
18700         to find_regno_note on a SET does nothing.
18701         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18702         params from rtx to rtx_insn *.
18703         (set_to_load_agen): Likewise.
18704         * config/s390/s390.c (s390_label_align): Likewise for local
18705         "prev_insn".  Introduce new rtx locals "set" and "src", using
18706         them in place of "prev_insn" for the results of single_set
18707         and SET_SRC respectively.
18708         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18709         Introduce new rtx local "set" using in place of "jump" for the
18710         result of single_set.  Use SET_SRC (set) rather than plain
18711         XEXP (set, 1).
18712         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18713         rtx to rtx_insn *.
18714         (noncall_uses_reg): Likewise.
18715         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18716         guarded by GET_CODE check, using its methods for clarity, and to
18717         enable strengthening local "this_insn" from rtx to rtx_insn *.
18718         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18719         "insn" from rtx to rtx_insn *.
18720         (define_expand "umulhisi3"): Likewise.
18721         (define_expand "smulsi3_highpart"): Likewise.
18722         (define_expand "umulsi3_highpart"): Likewise.
18723         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18724         local "after".  Replace GET_CODE check with a dyn_cast,
18725         introducing new local rtx_sequence * "seq", using insn method for
18726         typesafety.
18727
18728         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18729         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
18730         place of "insn" once we're dealing with patterns rather than the
18731         input insn.
18732         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18733         (scan_trace): Likewise for local "elt", updating lookups within
18734         sequence to use insn method rather than element method.
18735         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18736         to rtx_insn *.
18737         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18738         * ifcvt.c (noce_try_abs): Likewise for local "insn".
18739         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18740         invoking single_set.
18741         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18742         "insn" from rtx to rtx_insn *.
18743         (skip_usage_debug_insns): Likewise for return type, adding a
18744         checked cast.
18745         (check_secondary_memory_needed_p): Likewise for local "insn".
18746         (inherit_reload_reg): Likewise.
18747         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18748         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18749         checked casts.
18750         (store_data_bypass_p): Likewise for both params.
18751         (if_test_bypass_p): Likewise.
18752         * recog.h (store_data_bypass_p): Likewise for both params.
18753         (if_test_bypass_p): Likewise.
18754         * reload.c (find_equiv_reg): Likewise for local "where".
18755         * reorg.c (delete_jump): Likewise for param "insn".
18756         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18757         to const rtx_insn *.
18758         * store-motion.c (replace_store_insn): Likewise for param "del".
18759         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18760         and use its methods for clarity, and to strengthen local "del"
18761         from rtx to rtx_insn *.
18762         (build_store_vectors): Use insn method of "st" when calling
18763         replace_store_insn for typesafety and clarity.
18764
18765 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18766
18767         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18768         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18769         on how to make it legal in future.
18770
18771 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18772
18773         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18774         to rtx_insn *.
18775         (restinsn): Likewise.
18776         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18777         Likewise for param.
18778         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18779         Likewise.
18780         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18781         first param.
18782         (arc_hazard): Likewise for both params.
18783         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18784         checked casts to rtx_sequence * and uses of the insn method for
18785         type-safety.
18786         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18787         (arc_adjust_insn_length): Likewise for param "insn".
18788         (struct insn_length_parameters_s): Likewise for first param of
18789         "get_variants" callback field.
18790         (arc_get_insn_variants): Likewise for first param and local
18791         "inner".  Replace a check of GET_CODE with a dyn_cast to
18792         rtx_sequence *, using methods for type-safety and clarity.
18793         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18794         rtx_sequence * and uses of the insn method for type-safety when
18795         invoking arc_adjust_insn_length.
18796         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18797         for param.
18798         (arm_address_offset_is_imm): Likewise.
18799         (struct tune_params): Likewise for params 1 and 3 of the
18800         "sched_adjust_cost" callback field.
18801         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18802         params 1 and 3 ("insn" and "dep").
18803         (xscale_sched_adjust_cost): Likewise.
18804         (fa726te_sched_adjust_cost): Likewise.
18805         (cortexa7_older_only): Likewise for param "insn".
18806         (cortexa7_younger): Likewise.
18807         (arm_attr_length_move_neon): Likewise.
18808         (arm_address_offset_is_imm): Likewise.
18809         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18810         * config/avr/avr.c (avr_notice_update_cc): Likewise.
18811         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18812         (workaround_speculation): Likewise for local "last_condjump".
18813         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18814         (shadow_or_blockage_p): Likewise.
18815         (get_unit_reqs): Likewise.
18816         (get_unit_operand_masks): Likewise.
18817         (c6x_registers_update): Likewise.
18818         (returning_call_p): Likewise.
18819         (can_use_callp): Likewise.
18820         (convert_to_callp): Likewise.
18821         (find_last_same_clock): Likwise for local "t".
18822         (reorg_split_calls): Likewise for local "shadow".
18823         (hwloop_pattern_reg): Likewise for param "insn".
18824         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18825         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18826         (frv_extract_membar): Likewise.
18827         (frv_optimize_membar_local): Strengthen param "last_membar" from
18828         rtx * to rtx_insn **.
18829         (frv_optimize_membar_global): Strengthen param "membar" from rtx
18830         to rtx_insn *.
18831         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18832         to rtx_insn **.
18833         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18834         both params from rtx to rtx_insn *.
18835         (ia64_ld_address_bypass_p): Likewise.
18836         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18837         "insn".
18838         (ia64_safe_type): Likewise.
18839         (group_barrier_needed): Likewise.
18840         (safe_group_barrier_needed): Likewise.
18841         (ia64_single_set): Likewise.
18842         (is_load_p): Likewise.
18843         (record_memory_reference): Likewise.
18844         (get_mode_no_for_insn): Likewise.
18845         (important_for_bundling_p): Likewise.
18846         (unknown_for_bundling_p): Likewise.
18847         (ia64_st_address_bypass_p): Likewise for both params.
18848         (ia64_ld_address_bypass_p): Likewise.
18849         (expand_vselect): Introduce new local rtx_insn * "insn", using it
18850         in place of rtx "x" after the emit_insn call.
18851         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18852         Strengthen param from rtx to rtx_insn *.
18853         (ix86_agi_dependent): Likewise for both params.
18854         (ix86_attr_length_immediate_default): Likewise for param 1.
18855         (ix86_attr_length_address_default): Likewise for param.
18856         (ix86_attr_length_vex_default): Likewise for param 1.
18857         * config/i386/i386.c (ix86_attr_length_immediate_default):
18858         Likewise for param "insn".
18859         (ix86_attr_length_address_default): Likewise.
18860         (ix86_attr_length_vex_default): Likewise.
18861         (ix86_agi_dependent): Likewise for both params.
18862         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18863         (vselect_insn): Likewise for this variable.
18864         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18865         for param 1.
18866         (m68k_sched_attr_opy_type): Likewise.
18867         * config/m68k/m68k.c (sched_get_operand): Likewise.
18868         (sched_attr_op_type): Likewise.
18869         (m68k_sched_attr_opx_type): Likewise.
18870         (m68k_sched_attr_opy_type): Likewise.
18871         (sched_get_reg_operand): Likewise.
18872         (sched_get_mem_operand): Likewise.
18873         (m68k_sched_address_bypass_p): Likewise for both params.
18874         (sched_get_indexed_address_scale): Likewise.
18875         (m68k_sched_indexed_address_bypass_p): Likewise.
18876         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18877         (m68k_sched_indexed_address_bypass_p): Likewise.
18878         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18879         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18880         removing another.
18881         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18882         params from rtx to rtx_insn *.
18883         (mips_fmadd_bypass): Likewise.
18884         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18885         (mips_linked_madd_p): Likewise.
18886         (mips_macc_chains_last_hilo): Likewise for this variable.
18887         (mips_macc_chains_record): Likewise for param.
18888         (vr4130_last_insn): Likewise for this variable.
18889         (vr4130_swap_insns_p): Likewise for both params.
18890         (mips_ls2_variable_issue): Likewise for param.
18891         (mips_need_noat_wrapper_p): Likewise for param "insn".
18892         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18893         in place of "x" after the emit_insn.
18894         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18895         params from rtx to rtx_insn *.
18896         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18897         (pa_combine_instructions): Introduce local "par" for result of
18898         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18899         to make_insn_raw.
18900         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18901         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18902         (rl78_alloc_physical_registers_op1): Likewise.
18903         (rl78_alloc_physical_registers_op2): Likewise.
18904         (rl78_alloc_physical_registers_ro1): Likewise.
18905         (rl78_alloc_physical_registers_cmp): Likewise.
18906         (rl78_alloc_physical_registers_umul): Likewise.
18907         (rl78_alloc_address_registers_macax): Likewise.
18908         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18909         * config/s390/predicates.md (execute_operation): Likewise for
18910         local "insn".
18911         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18912         params.
18913         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18914         (addr_generation_dependency_p): Likewise for param "insn".
18915         (s390_agen_dep_p): Likewise for both params.
18916         (s390_fpload_toreg): Likewise for param "insn".
18917         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18918         * config/sh/sh.c (sh_loop_align): Likewise for param and local
18919         "next".
18920         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18921         * config/sh/sh_treg_combine.cc
18922         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18923         and local "i".
18924         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18925         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18926         "and_insn", "load", "shift".
18927         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18928         "insn".
18929         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18930         for XEXP (note, 0) of the REG_CC_SETTER note.
18931         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18932         rtx_insn *, eliminating a checked cast made redundant by this.
18933         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18934         to rtx_insn *.
18935         * genattr.c (main): When writing out the prototype to
18936         const_num_delay_slots, strengthen the param from rtx to
18937         rtx_insn *.
18938         * genattrtab.c (write_const_num_delay_slots): Likewise when
18939         writing out the implementation of const_num_delay_slots.
18940         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18941         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18942         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18943         favor of new rtx locals "src" and "set" and new local rtx_insn *
18944         "insn" and "seq".
18945         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18946         to rtx_insn *.
18947         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18948         locals "cond", "if_then_else", "set" and new rtx_insn * locals
18949         "insn" and "seq".
18950         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18951         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
18952         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
18953         the top-level scope, replacing with new more tightly-scoped rtx
18954         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18955         "new_insn", "copy_of_insn_b", and make local rtx "set" more
18956         tightly-scoped.
18957         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18958         rtx_insn *.
18959         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18960         "move_insn".
18961         (ira_setup_alts): Likewise for param "insn".
18962         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18963         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18964         and an rtx_insn *.
18965         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18966         new more-tightly scoped rtx locals "add3_insn", "insn",
18967         "add2_insn" and rtx_insn * "move_insn".
18968         * postreload-gcse.c (eliminate_partially_redundant_load): Add
18969         checked cast on result of gen_move_insn when invoking
18970         extract_insn.
18971         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18972         rtx_insn *.
18973         (verify_changes): Add a checked cast on "object" when invoking
18974         insn_invalid_p.
18975         (extract_insn_cached): Strengthen param "insn" from rtx to
18976         rtx_insn *.
18977         (extract_constrain_insn_cached): Likewise.
18978         (extract_insn): Likewise.
18979         * recog.h (insn_invalid_p): Likewise for param 1.
18980         (recog_memoized): Likewise for param.
18981         (extract_insn): Likewise.
18982         (extract_constrain_insn_cached): Likewise.
18983         (extract_insn_cached): Likewise.
18984         * reload.c (can_reload_into): Likewise for local "test_insn".
18985         * reload.h (cleanup_subreg_operands): Likewise for param.
18986         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18987         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18988         result of emit_insn.  Remove a checked cast made redundant by this
18989         change.
18990         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18991         rtx to rtx_insn *.
18992         * sel-sched.c (get_reg_class): Likewise.
18993
18994 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18995             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18996
18997         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18998         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18999         Define.
19000         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
19001
19002 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19003
19004         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
19005         const rtx_insn *, and from rtx to rtx_insn * for the other
19006         overloaded variant.
19007         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
19008         INSN_LOCATION, since we know INSN_P holds.
19009         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
19010         (insn_file): Likewise.
19011         (insn_scope): Likewise.
19012         (insn_location): Likewise.
19013
19014         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
19015         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
19016         for the result of gen_load_const_gp.
19017         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
19018         param from rtx to rtx_insn *.
19019         * config/rs6000/rs6000.c (output_call): Likewise.
19020         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
19021         introducing a checked cast to rtx_sequence * and use of the insn
19022         method.
19023         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
19024         from rtx to rtx_insn *.
19025         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
19026         (insn_line): Likewise.
19027         (insn_file): Likewise.
19028         (insn_location): Likewise.
19029         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
19030         from rtx to rtx_insn *.
19031         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
19032         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
19033         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
19034         via a checked cast.
19035         * reorg.c (relax_delay_slots): Strengthen locals named "after"
19036         from rtx to rtx_insn *; use methods of "pat" for type-safety.
19037
19038 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19039
19040         * combine.c (try_combine): Eliminate checked cast on result of
19041         gen_rtx_INSN.
19042         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
19043         autogenerated one by strengthening the return type and params 2 and 3
19044         from rtx to rtx_insn *, and by naming the params.
19045         * gengenrtl.c (special_rtx): Add INSN to those that are
19046         special-cased.
19047         * rtl.h (gen_rtx_INSN): New prototype.
19048
19049 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19050
19051         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
19052         than NULL_RTX.
19053         (no_equiv): Likewise.
19054         (update_equiv_regs): Likewise.
19055         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
19056         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
19057         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
19058         clarity.
19059         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
19060         from rtx to rtx_insn_list *.
19061         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
19062         rtx_insn_list * and use methods for clarity and typesafety.
19063         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
19064         "list".
19065         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
19066         redundant check on INSN_P (insns): this cannot hold, as "insns" is
19067         an INSN_LIST, not an insn.
19068         (reverse_equiv_p): Strengthen local "insns" from rtx to
19069         rtx_insn_list * and use methods for clarity and typesafety.
19070         (contains_reloaded_insn_p): Likewise for local "list".
19071
19072 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
19073
19074         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
19075         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
19076         (arm_builtin_vectorized_function): Likewise.
19077         * config/arm/arm_neon_builtins.def: New macro for copysignf.
19078         * config/arm/neon.md (neon_copysignf<mode>): New pattern for
19079         vector copysignf.
19080
19081 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
19082
19083         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
19084         * builtins.h (default_target_builtins): Likewise.
19085         * gcse.h (default_target_gcse): Likewise.
19086         * target-globals.h (target_globals): Add a destructor.  Convert
19087         void-pointer fields back to their real type and change from
19088         GTY((atomic)) to GTY((skip)).
19089         (restore_target_globals): Remove casts accordingly.
19090         * target-globals.c (save_target_globals): Use XCNEW rather than
19091         ggc_internal_cleared_alloc to allocate non-GC structures.
19092         Use ggc_cleared_alloc to allocate the target_globals structure
19093         itself.
19094         (target_globals::~target_globals): Define.
19095
19096 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19097
19098         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
19099         mnemonic instead of fldmfdd.
19100         * config/arm/arm.c (vfp_output_fstmd): Rename to...
19101         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
19102         Output vpush when address register is SP.
19103         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
19104         (vfp_output_vstmd): ... This.
19105         * config/arm/vfp.md (push_multi_vfp): Update call to
19106         vfp_output_vstmd.
19107
19108 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19109
19110         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
19111
19112 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19113
19114         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
19115         (*sqrtdf2_vfp): Likewise.
19116         (*cmpsf_vfp): Likewise.
19117         (*cmpsf_trap_vfp): Likewise.
19118         (*cmpdf_vfp): Likewise.
19119         (*cmpdf_trap_vfp): Likewise.
19120
19121 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19122
19123         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
19124         (*truncdfsf2_vfp): Likewise.
19125         (*truncsisf2_vfp): Likewise.
19126         (*truncsidf2_vfp): Likewise.
19127         (fixuns_truncsfsi2): Likewise.
19128         (fixuns_truncdfsi2): Likewise.
19129         (*floatsisf2_vfp): Likewise.
19130         (*floatsidf2_vfp): Likewise.
19131         (floatunssisf2): Likewise.
19132         (floatunssidf2): Likewise.
19133
19134 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19135
19136         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
19137         (*muldf3_vfp): Likewise.
19138         (*mulsf3negsf_vfp): Likewise.
19139         (*muldf3negdf_vfp): Likewise.
19140         (*mulsf3addsf_vfp): Likewise.
19141         (*muldf3adddf_vfp): Likewise.
19142         (*mulsf3subsf_vfp): Likewise.
19143         (*muldf3subdf_vfp): Likewise.
19144         (*mulsf3negsfaddsf_vfp): Likewise.
19145         (*fmuldf3negdfadddf_vfp): Likewise.
19146         (*mulsf3negsfsubsf_vfp): Likewise.
19147         (*muldf3negdfsubdf_vfp): Likewise.
19148
19149 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19150
19151         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
19152         (*absdf2_vfp): Likewise.
19153         (*negsf2_vfp): Likewise.
19154         (*negdf2_vfp): Likewise.
19155         (*addsf3_vfp): Likewise.
19156         (*adddf3_vfp): Likewise.
19157         (*subsf3_vfp): Likewise.
19158         (*subdf3_vfp): Likewise.
19159         (*divsf3_vfp): Likewise.
19160         (*divdf3_vfp): Likewise.
19161
19162 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19163
19164         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
19165         multiple.
19166         (arm_print_operand): Don't convert real values to decimal
19167         representation in default case.
19168         (fp_immediate_constant): Delete.
19169         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
19170         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
19171         syntax.
19172         (*thumb2_movsi_vfp): Likewise.
19173         (*movdi_vfp): Likewise.
19174         (*movdi_vfp_cortexa8): Likewise.
19175         (*movhf_vfp_neon): Likewise.
19176         (*movhf_vfp): Likewise.
19177         (*movsf_vfp): Likewise.
19178         (*thumb2_movsf_vfp): Likewise.
19179         (*movdf_vfp): Likewise.
19180         (*thumb2_movdf_vfp): Likewise.
19181         (*movsfcc_vfp): Likewise.
19182         (*thumb2_movsfcc_vfp): Likewise.
19183         (*movdfcc_vfp): Likewise.
19184         (*thumb2_movdfcc_vfp): Likewise.
19185
19186 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
19187
19188         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
19189         (-mtune): Likewise.
19190         (-mcpu): Likewise.
19191
19192 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19193
19194         PR target/61749
19195         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
19196         Use qualifier_immediate for last operand.  Rename to...
19197         (aarch64_types_ternop_lane_qualifiers): ... This.
19198         (TYPES_QUADOP): Rename to...
19199         (TYPES_TERNOP_LANE): ... This.
19200         (aarch64_simd_expand_args): Return const0_rtx when encountering user
19201         error.  Change return of 0 to return of NULL_RTX.
19202         (aarch64_crc32_expand_builtin): Likewise.
19203         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
19204         ICE when expanding unknown builtin.
19205         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
19206         TERNOP_LANE qualifiers.
19207         (sqdmlsl_lane): Likewise.
19208         (sqdmlal_laneq): Likewise.
19209         (sqdmlsl_laneq): Likewise.
19210         (sqdmlal2_lane): Likewise.
19211         (sqdmlsl2_lane): Likewise.
19212         (sqdmlal2_laneq): Likewise.
19213         (sqdmlsl2_laneq): Likewise.
19214
19215 2014-09-09  Nick Clifton  <nickc@redhat.com>
19216
19217         * doc/invoke.texi (Optimization Options): Add missing @gol to the
19218         end of a line.
19219         (S/390 and zSeries Options): Remove superfluous word from the
19220         description of the -mhotpatch option.
19221
19222 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
19223
19224         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
19225         * ira.c: #include "shrink-wrap.h"
19226         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
19227         * ifcvt.c: #include "shrink-wrap.h"
19228         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
19229
19230 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
19231
19232         * common/config/picochip/picochip-common.c: Remove.
19233         * config.gcc: Remove support for picochip.
19234         * config/picochip/constraints.md: Remove.
19235         * config/picochip/dfa_space.md: Remove.
19236         * config/picochip/dfa_speed.md: Remove.
19237         * config/picochip/picochip-protos.h: Remove.
19238         * config/picochip/picochip.c: Remove.
19239         * config/picochip/picochip.h: Remove.
19240         * config/picochip/picochip.md: Remove.
19241         * config/picochip/picochip.opt: Remove.
19242         * config/picochip/predicates.md: Remove.
19243         * config/picochip/t-picochip: Remove.
19244         * doc/md.texi: Don't document picochi.
19245
19246 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
19247
19248         * basic-block.h (control_flow_insn_p): Strengthen param from
19249         const_rtx to const rtx_insn *.
19250         * cfgbuild.c (control_flow_insn_p): Likewise.
19251
19252 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
19253
19254         * gcse.c (modify_mem_list): Strengthen this variable from
19255         vec<rtx> * to vec<rtx_insn *> *.
19256         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
19257         vec<rtx_insn *>.
19258         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
19259         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
19260         (record_last_mem_set_info): Strengthen param "insn" from rtx to
19261         rtx_insn *.
19262         (record_last_set_info): Likewise for local "last_set_insn".
19263
19264 2014-09-08  DJ Delorie  <dj@redhat.com>
19265
19266         * doc/invoke.texi (MSP430 Options): Add -minrt.
19267
19268 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19269
19270         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
19271         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
19272         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
19273         handling SH_SPLAT.
19274         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
19275         of extracted lane.
19276         (adjust_splat): New function.
19277         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
19278         (dump_swap_insn_table): Add case for SH_SPLAT.
19279
19280 2014-09-08  Richard Biener  <rguenther@suse.de>
19281
19282         PR ipa/63196
19283         * tree-inline.c (copy_loops): The source loop header should
19284         always be non-NULL.
19285         (tree_function_versioning): If loops need fixup after removing
19286         unreachable blocks fix them.
19287         * omp-low.c (simd_clone_adjust): Do not add incr block to
19288         loop under construction.
19289
19290 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
19291
19292         * config/aarch64/aarch64-builtins.c
19293         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
19294
19295 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
19296
19297         * config/i386/cygming.h (TF_SIZE): Remove.
19298         * config/i386/darwin.h (TF_SIZE): Remove.
19299         * config/i386/dragonfly.h (TF_SIZE): Remove.
19300         * config/i386/freebsd.h (TF_SIZE): Remove.
19301         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
19302         * config/i386/openbsdelf.h (TF_SIZE): Remove.
19303         * config/i386/sol2.h (TF_SIZE): Remove.
19304         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
19305         * config/ia64/linux.h (TF_SIZE): Remove.
19306         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
19307         * doc/tm.texi: Regenerate.
19308         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
19309
19310 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
19311
19312         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
19313         Remove.
19314         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
19315         Remove.
19316         * doc/tm.texi: Regenerate.
19317         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
19318         Poison.
19319         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
19320         * config/cris/cris.h (__make_dp): Remove.
19321
19322 2014-09-08  Richard Biener  <rguenther@suse.de>
19323
19324         PR bootstrap/63204
19325         * cfgloop.c (mark_loop_for_removal): Track former header
19326         unconditionally.
19327         * cfgloop.h (struct loop): Add former_header member unconditionally.
19328         * loop-init.c (fix_loop_structure): Enable bogus loop removal
19329         diagnostic unconditionally.
19330
19331 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
19332
19333         PR target/63190
19334         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
19335         constraint for operand0 and remove write only modifier from operand3.
19336
19337 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
19338
19339         PR rtl-optimization/62208
19340         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
19341         rather than const0_rtx in eq/ne-xor simplifications.
19342
19343 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
19344
19345         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
19346         (arc_output_mi_thunk): Likewise.
19347
19348         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
19349         arguments to silence bogus warning.
19350
19351 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
19352
19353         PR middle-end/63171
19354         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
19355
19356 2014-09-06  Tom de Vries  <tom@codesourcery.com>
19357
19358         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
19359         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
19360         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
19361
19362 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
19363
19364         PR target/63188
19365         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
19366         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
19367
19368 2014-09-05  Easwaran Raman  <eraman@google.com>
19369
19370         PR rtl-optimization/62146
19371         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
19372         hoisted instruction unconditional.
19373
19374 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
19375
19376         PR target/63187
19377         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
19378         Do not allow any_mask_operand for operands[2].
19379         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
19380
19381 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19382
19383         * config/arc/arc.c (arc_print_operand): Use insn method of
19384         final_sequence for type-safety.
19385         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
19386         "insn" from rtx to rtx_insn *.
19387         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
19388         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
19389         Likewise for locals "branch", "label".
19390         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
19391         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
19392         (same_cmp_following_p): Likewise for locals "i2", "i3".
19393         * config/sh/sh_optimize_sett_clrt.cc
19394         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
19395         param "cbranch_insn".
19396         * function.c (convert_jumps_to_returns): Likewis for local "jump".
19397         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
19398         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
19399         const rtx_insn *.
19400         (condjump_p): Likewise.
19401         (condjump_in_parallel_p): Likewise.
19402         (pc_set): Likewise.
19403         (any_uncondjump_p): Likewise.
19404         (any_condjump_p): Likewise.
19405         (condjump_label): Likewise.
19406         (returnjump_p): Strengthen param "insn" from rtx to
19407         const rtx_insn *.
19408         (onlyjump_p): Strengthen param "insn" from const_rtx to
19409         const rtx_insn *.
19410         (jump_to_label_p): Likewise.
19411         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
19412         (invert_jump): Likewise.
19413         * reorg.c (simplejump_or_return_p): Add checked cast when calling
19414         simplejump_p.
19415         (get_jump_flags): Strengthen param "insn" from rtx to
19416         const rtx_insn *.
19417         (get_branch_condition): Likewise.
19418         (condition_dominates_p): Likewise.
19419         (make_return_insns): Move declaration of local "pat" earlier, to
19420         after we've handled NONJUMP_INSN_P and non-sequences, using its
19421         methods to simplify the code and for type-safety.
19422         * rtl.h (find_constant_src): Strengthen param from const_rtx to
19423         const rtx_insn *.
19424         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
19425         (condjump_p): Strengthen param from const_rtx to
19426         const rtx_insn *.
19427         (any_condjump_p): Likewise.
19428         (any_uncondjump_p): Likewise.
19429         (pc_set): Likewise.
19430         (condjump_label): Likewise.
19431         (simplejump_p): Likewise.
19432         (returnjump_p): Likewise.
19433         (onlyjump_p): Likewise.
19434         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
19435         (invert_jump): Likewise.
19436         (condjump_in_parallel_p): Strengthen param from const_rtx to
19437         const rtx_insn *.
19438         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
19439         to const rtx_insn *.
19440         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
19441         to const rtx_insn *.
19442         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
19443
19444 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19445
19446         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
19447         above the conditional, and convert the check on GET_CODE to a
19448         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
19449         the conditional.  Simplify the conditional by using methods of
19450         "trial_seq".
19451
19452 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19453
19454         * haifa-sched.c (check_clobbered_conditions): Strengthen local
19455         "link" from rtx to rtx_insn_list *, and use its methods for
19456         clarity and type-safety.
19457         (toggle_cancelled_flags): Likewise.
19458         (restore_last_backtrack_point): Likewise.
19459         (queue_to_ready): Use insn method of "link" in one place.
19460         (schedule_block): Strengthen local "link" from rtx to
19461         rtx_insn_list *, and use its methods for clarity and type-safety.
19462
19463 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19464
19465         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
19466         param "insn" from const_rtx to const rtx_insn *.
19467         (sched_get_reverse_condition_uncached): Likewise.
19468         (sched_get_condition_with_rev): Likewise.
19469         (sched_has_condition_p): Likewise.
19470         (sched_insns_conditions_mutex_p): Likewise for both params.
19471         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
19472         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
19473         (setup_insn_reg_uses): Move local "list" to be more tightly
19474         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
19475         its methods for clarity and type-safety.
19476         (sched_analyze_1): Strengthen local "pending" from rtx to
19477         rtx_insn_list *, and local "pending_mem" from rtx to
19478         rtx_expr_list *.  Use methods of each for clarity and type-safety.
19479         (sched_analyze_2): Likewise.
19480         (sched_analyze_insn): Likewise.
19481
19482         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
19483         param from const_rtx to const rtx_insn *.
19484         (sched_insns_conditions_mutex_p): Likewise for both params.
19485         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
19486         param.
19487
19488         * system.h (CONST_CAST_RTX_INSN): New macro.
19489
19490 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19491
19492         * recog.c (peep2_attempt): Strengthen return type from rtx to
19493         rtx_insn *.
19494         (peep2_update_life): Likewise for params "last", "prev", removing
19495         a checked cast made redundant by this.
19496         (peephole2_optimize): Likewise for local "last".
19497
19498 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19499
19500         * basic-block.h (set_block_for_insn): Eliminate this macro in
19501         favor of...
19502         * rtl.h (set_block_for_insn): New inline function, imposing the
19503         requirement that the "insn" param is an rtx_insn *.
19504
19505 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19506
19507         * caller-save.c (setup_save_areas): Strengthen local "insn" from
19508         rtx to rtx_insn *.
19509         * final.c (get_call_reg_set_usage): Likewise for first param,
19510         eliminating a checked cast.
19511         * regs.h (get_call_reg_set_usage): Likewise for first param.
19512         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
19513         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
19514         cast, replacing references to "x" with "call_insn" where
19515         appropriate.
19516         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
19517         rtx_insn *, adding a checked cast.
19518
19519 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19520
19521         * output.h (final_scan_insn): Strengthen first param from rtx to
19522         rtx_insn *.
19523
19524         * final.c (final_scan_insn): Likewise, renaming it back from
19525         "uncast_insn" to "insn", eliminating the checked cast.
19526
19527         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
19528         "vec" with an rtx_sequence * "seq", taking a copy of
19529         "final_sequence", and using methods of "seq" for clarity, and for
19530         type-safety in the calls to final_scan_insn.
19531         * config/mips/mips.c (mips_output_conditional_branch): Use methods
19532         of "final_sequence" for clarity, and for type-safety in the call to
19533         final_scan_insn.
19534         * config/sh/sh.c (print_slot): Strengthen param from rtx to
19535         rtx_sequence * and rename from "insn" to "seq".
19536
19537 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19538
19539         * jump.c (delete_related_insns): Introduce a new local "table" by
19540         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
19541         get_labels method of "table" to simplify access to the labels in
19542         the jump table.
19543
19544 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19545
19546         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19547         f_minmaxs, f_minmaxd types.
19548
19549 2014-09-05  Richard Biener  <rguenther@suse.de>
19550
19551         * cfgloop.c (mark_loop_for_removal): Record former header
19552         when ENABLE_CHECKING.
19553         * cfgloop.h (strut loop): Add former_header member when
19554         ENABLE_CHECKING.
19555         * loop-init.c (fix_loop_structure): Sanity check loops
19556         marked for removal if they re-appeared.
19557
19558 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19559
19560         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19561         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19562
19563         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19564         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19565         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19566         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19567         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19568         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19569         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19570         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19571         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19572         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19573         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19574         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19575         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19576         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19577         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19578         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19579         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19580         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19581         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19582         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19583         with int{32,16,8}_t.
19584
19585 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19586
19587         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19588         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19589         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19590         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19591         Remove temporary __asm__ and reimplement.
19592
19593 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19594
19595         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19596         handling cmge, cmgt, cmeq, cmtst.
19597
19598         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19599         cmlt, cmgeu, cmgtu, cmtst): Remove.
19600
19601         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19602         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19603         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19604         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19605
19606 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19607
19608         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19609         TYPES_TST): Define.
19610         (aarch64_fold_builtin): Update pattern for cmtst.
19611
19612         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19613         Declare.
19614
19615         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19616
19617         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19618         Switch operands, separate out more cases, refactor.
19619
19620         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19621
19622         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19623         argument; rename old version to...
19624         (aarch64_const_vec_all_same_in_range_p): ...this.
19625         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19626
19627         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19628
19629 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19630
19631         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19632         Remove qualifier_const_pointer, update comment.
19633
19634 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19635
19636         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19637
19638 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19639
19640         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19641         varargs with pointer parameter.
19642         (aarch64_simd_expand_builtin): pass pointer into previous.
19643
19644 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19645
19646         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19647         alus_ext.
19648
19649 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19650
19651         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19652         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19653         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19654         Replace temporary asm with call to builtin.
19655         (vrbit_p8, vrbitq_p8): New functions.
19656
19657 2014-09-05  Richard Biener  <rguenther@suse.de>
19658
19659         * cfgloop.c (mark_loop_for_removal): New function.
19660         * cfgloop.h (mark_loop_for_removal): Declare.
19661         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19662         (merge_blocks): Likewise.
19663         (duplicate_block): Likewise.
19664         * except.c (sjlj_emit_dispatch_table): Likewise.
19665         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19666         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19667         (thread_through_loop_header): Likewise.
19668
19669 2014-09-05  Richard Biener  <rguenther@suse.de>
19670
19671         PR middle-end/63148
19672         * fold-const.c (try_move_mult_to_index): Remove.
19673         (fold_binary_loc): Do not call it.
19674         * tree-data-ref.c (dr_analyze_indices): Strip conversions
19675         from the base object again.
19676
19677 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
19678
19679         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19680         DImode.
19681
19682 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19683
19684         PR target/55701
19685         * config/arm/arm.md (setmem): New pattern.
19686         * config/arm/arm-protos.h (struct tune_params): New fields.
19687         (arm_gen_setmem): New prototype.
19688         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19689         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19690         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19691         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19692         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19693         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19694         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19695         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19696         (arm_const_inline_cost): New function.
19697         (arm_block_set_max_insns): New function.
19698         (arm_block_set_non_vect_profit_p): New function.
19699         (arm_block_set_vect_profit_p): New function.
19700         (arm_block_set_unaligned_vect): New function.
19701         (arm_block_set_aligned_vect): New function.
19702         (arm_block_set_unaligned_non_vect): New function.
19703         (arm_block_set_aligned_non_vect): New function.
19704         (arm_block_set_vect, arm_gen_setmem): New functions.
19705
19706 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19707
19708         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19709
19710 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19711
19712         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19713
19714 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19715
19716         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19717         an rtx.
19718         * valtrack.h: Adjust.
19719
19720 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19721
19722         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19723         an rtx.
19724         (emit_jump_insn_before_noloc): Likewise.
19725         (emit_call_insn_before_noloc): Likewise.
19726         (emit_label_before): Likewise.
19727         (emit_label_after): Likewise.
19728         (emit_insn_before_setloc): Likewise.
19729         (emit_jump_insn_before_setloc): Likewise.
19730         (emit_call_insn_before_setloc): Likewise.
19731         (emit_call_insn_before): Likewise.
19732         * rtl.h: Adjust.
19733
19734 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19735
19736         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19737         rtx_insn *, eliminating a checked cast.
19738
19739 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19740
19741         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19742         const_rtx to const rtx_insn *.
19743         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19744         cast.
19745
19746 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19747
19748         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19749         fixup_args_size_notes.
19750         * expr.c (fixup_args_size_notes): Strengthen first two params from
19751         rtx to rtx_insn *, eliminating a checked cast.
19752         * rtl.h (fixup_args_size_notes): Strengthen first two params from
19753         rtx to rtx_insn *.
19754
19755 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19756
19757         * haifa-sched.c (get_ready_element): Strengthen return type from
19758         rtx to rtx_insn *.
19759         * sched-int.h (get_ready_element): Likewise.
19760
19761 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
19762
19763         PR target/63165
19764         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19765         indexed_or_indirect_operand instead of memory_operand.
19766         (floatsi<mode>2_lfiwzx_mem): Ditto.
19767
19768 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19769
19770         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19771         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19772         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19773
19774 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19775
19776         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19777         rtx.
19778         (get_last_nonnote_insn): Likewise.
19779         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19780         * resource.c (find_basic_block): Likewise.
19781         * rtl.h: Adjust.
19782         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19783         const_rtx.
19784
19785 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19786
19787         * genattr.c (main): Within the prototype of insn_latency written
19788         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19789         * genautomata.c (output_internal_maximal_insn_latency_func):
19790         Within the implementation of insn_latency written out to
19791         insn-automata.c, strengthen both params from rtx to rtx_insn *,
19792         eliminating a pair of checked casts.
19793
19794 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19795
19796         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19797         rtx_insn *.
19798
19799         * rtl.h (eh_returnjump_p): Likewise.
19800
19801 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
19802
19803         * Makefile.in (TAGS): Handle constructs in timevar.def.
19804
19805 2014-09-04  Guozhi Wei  <carrot@google.com>
19806
19807         PR target/62040
19808         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19809         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19810         it into two patterns.
19811         (move_lo_quad_internal_be_<mode>): Likewise.
19812
19813 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19814
19815         * doc/options.texi: Document that Var and Init are required if CPP
19816         is given.
19817         * optc-gen.awk: Require Var and Init if CPP is given.
19818         * common.opt (Wpedantic): Use Init.
19819
19820 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19821
19822         * config/rs6000/rs6000.c (special_handling_values): Add
19823         SH_EXTRACT.
19824         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19825         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
19826         as swappable with special handling SH_EXTRACT.  Remove
19827         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19828         optimization.
19829         (adjust_extract): New function.
19830         (handle_special_swappables): Add default to case statement; add
19831         case for SH_EXTRACT that calls adjust_extract.
19832         (dump_swap_insn_table): Handle SH_EXTRACT.
19833
19834 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19835
19836         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19837         selection of 0th memory doubleword, regardless of endianness.
19838
19839 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19840
19841         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19842
19843 2014-09-04  Alan Modra  <amodra@gmail.com>
19844
19845         PR debug/60655
19846         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19847         can't be output.
19848
19849 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
19850
19851         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19852         * targhooks.c (default_dwarf_frame_reg_mode): New function.
19853         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19854         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19855         * doc/tm.texi: Regenerate.
19856         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19857         selection logic to default_dwarf_frame_reg_mode.
19858
19859 2014-09-03  Marek Polacek  <polacek@redhat.com>
19860
19861         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19862         by -Wall.
19863
19864 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19865
19866         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19867         the automodified register.
19868
19869 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19870
19871         * output.h (get_some_local_dynamic_name): Declare.
19872         * final.c (some_local_dynamic_name): New variable.
19873         (get_some_local_dynamic_name): New function.
19874         (final_end_function): Clear some_local_dynamic_name.
19875         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19876         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19877         (print_operand): Report an error if '%&' is used inappropriately.
19878         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19879         (get_some_local_dynamic_name_1): Delete.
19880         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19881         (rs6000_get_some_local_dynamic_name): Delete.
19882         (rs6000_get_some_local_dynamic_name_1): Delete.
19883         (print_operand): Report an error if '%&' is used inappropriately.
19884         * config/s390/s390.c (machine_function): Remove some_ld_name.
19885         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19886         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19887         * config/sparc/sparc.c: Include rtl-iter.h.
19888         (machine_function): Remove some_ld_name.
19889         (sparc_print_operand): Report an error if '%&' is used inappropriately.
19890         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19891
19892 2014-09-03  Richard Henderson  <rth@redhat.com>
19893
19894         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19895         (aarch64_popwb_pair_reg): Remove.
19896         (aarch64_set_frame_expr): Remove.
19897         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19898         the restore ops performed by the insns generated.
19899         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19900         insn.  Perform the calls_eh_return addition later; do not attempt to
19901         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
19902         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19903         special markup at all.  Load cfun->machine->frame.hard_fp_offset
19904         into a local variable.
19905         (aarch64_frame_pointer_required): Don't check calls_alloca.
19906
19907 2014-09-03  Richard Biener  <rguenther@suse.de>
19908
19909         * opts.c (default_options_optimization): Adjust
19910         max-combine-insns to 2 for -Og.
19911
19912 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19913
19914         PR ipa/62015
19915         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19916         pass-trough jump functions correctly.
19917
19918 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19919
19920         PR ipa/61986
19921         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19922         created replacements in ascending order of offsets.
19923         (known_aggs_to_agg_replacement_list): Likewise.
19924
19925 2014-09-03  Martin Liska  <mliska@suse.cz>
19926
19927         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19928         is set to set uninitialized value for vnresult.
19929
19930 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19931
19932         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19933         for TARGET_MUST_PASS_IN_STACK.
19934
19935 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19936
19937         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19938         for TARGET_ARG_PARTIAL_BYTES.
19939
19940 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19941
19942         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19943         instructions for varargs implementation.
19944         (nds32_expand_epilogue): Emit stack adjustment instructions for
19945         varargs implementation.
19946
19947 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19948
19949         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19950         optimization detection.
19951
19952 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19953
19954         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19955         arguments.
19956         (nds32_function_arg_advance): Deal with nameless arguments.
19957         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19958         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19959         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19960
19961 2014-09-03  Richard Biener  <rguenther@suse.de>
19962
19963         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19964         (struct bb_bitmap_sets): Remove deferred member.
19965         (BB_DEFERRED): Remove.
19966         (defer_or_phi_translate_block): Remove.
19967         (compute_antic_aux): Remove deferring of blocks, assert
19968         proper iteration order.
19969         (compute_antic): Do not set BB_DEFERRED.
19970         (eliminate): Allocate el_avail of proper size initially.
19971
19972 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19973
19974         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19975         according to the value of crtl->args.pretend_args_size.
19976
19977 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19978
19979         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19980         varargs information.
19981
19982 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19983
19984         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19985         implementation for TARGET_SETUP_INCOMING_VARARGS.
19986         (nds32_strict_argument_naming): Refine comment.
19987         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19988         Define for future implementation.
19989
19990 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
19991
19992         * config/i386/adxintrin.h (_subborrow_u32): New.
19993         (_addcarry_u32): Ditto.
19994         (_subborrow_u64): Ditto.
19995         (_addcarry_u64): Ditto.
19996         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19997         IX86_BUILTIN_SBB64.
19998         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19999         __builtin_ia32_sbb_u64
20000
20001 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20002
20003         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
20004         GPR-specific stuff.
20005         (nds32_function_arg_advance): Likewise.
20006         (nds32_init_cumulative_args): Likewise.
20007         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
20008         (NDS32_FIRST_GPR_REGNUM): Define.
20009         (NDS32_LAST_GPR_REGNUM): Define.
20010         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
20011         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
20012         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
20013         (machine_function): Use GRP-specific stuff.
20014
20015 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20016
20017         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
20018         (nds32_expand_epilogue): Likewise.
20019         (nds32_expand_prologue_v3push): Likewise.
20020         (nds32_expand_epilogue_v3pop): Likewise.
20021
20022 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20023
20024         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
20025         v3push/v3pop for variadic function.
20026         * config/nds32/nds32.md (prologue, epilogue): Likewise.
20027
20028 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20029
20030         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
20031         Check rtx for varargs implementation.
20032         (nds32_output_stack_pop): Likewise.
20033         * config/nds32/nds32-protos.h: Have a rtx argument for
20034         nds32_output_stack_push and nds32_output_stack_pop.
20035         * config/nds32/nds32.md: Likewise.
20036
20037 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20038
20039         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
20040         to check if FUNC is an interrupt service routine.
20041         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
20042
20043 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20044
20045         * config/nds32/nds32.h (machine_function): Add some fields for variadic
20046         arguments implementation.
20047
20048 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20049
20050         * config/nds32/nds32-predicates.c
20051         (nds32_valid_stack_push_pop): Rename to ...
20052         (nds32_valid_stack_push_pop_p): ... this.
20053         * config/nds32/nds32-protos.h: Likewise.
20054         * config/nds32/predicates.md: Likewise.
20055
20056 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20057
20058         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
20059         (nds32_emit_stack_v3push): ... this.
20060         (nds32_gen_stack_v3pop): Rename to ...
20061         (nds32_emit_stack_v3pop): ... this and consider CFA restore
20062         information.
20063
20064 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20065
20066         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
20067         (nds32_emit_stack_push_multiple): ... this.
20068         (nds32_gen_stack_pop_multiple): Rename to ...
20069         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
20070         information.
20071
20072 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20073
20074         PR target/61078
20075         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
20076         and add a second splitter to handle the remaining cases.
20077
20078 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20079
20080         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
20081
20082 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
20083
20084         * cfgexpand.c (label_rtx_for_bb): Change type to
20085         hash_map<basic_block, rtx_code_label *> *.
20086         (expand_gimple_basic_block): Adjust.
20087         (pass_expand::execute): Likewise.
20088
20089 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
20090
20091         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
20092         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
20093         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
20094         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
20095         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
20096         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
20097         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
20098         of rtx.
20099
20100 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
20101
20102         * alloc-pool.c: Include coretypes.h.
20103         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
20104         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
20105         hash_set instead of htab.
20106         * ggc-page.c (in_gc): New variable.
20107         (ggc_free): Do nothing if a collection is taking place.
20108         (ggc_collect): Set in_gc appropriately.
20109         * ggc.h (gt_ggc_mx(const char *)): New function.
20110         (gt_pch_nx(const char *)): Likewise.
20111         (gt_ggc_mx(int)): Likewise.
20112         (gt_pch_nx(int)): Likewise.
20113         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
20114         (hash_map::hash_entry::pch_nx): Likewise.
20115         (hash_map::hash_entry::pch_nx_helper): Likewise.
20116         (hash_map::hash_map): Adjust.
20117         (hash_map::create_ggc): New function.
20118         (gt_ggc_mx): Likewise.
20119         (gt_pch_nx): Likewise.
20120         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
20121         (default_hashset_traits::pch_nx): Likewise.
20122         (hash_set::hash_entry::ggc_mx): Likewise.
20123         (hash_set::hash_entry::pch_nx): Likewise.
20124         (hash_set::hash_entry::pch_nx_helper): Likewise.
20125         (hash_set::hash_set): Adjust.
20126         (hash_set::create_ggc): New function.
20127         (hash_set::elements): Likewise.
20128         (gt_ggc_mx): Likewise.
20129         (gt_pch_nx): Likewise.
20130         * hash-table.h (hash_table::hash_table): Adjust.
20131         (hash_table::m_ggc): New member.
20132         (hash_table::~hash_table): Adjust.
20133         (hash_table::expand): Likewise.
20134         (hash_table::empty): Likewise.
20135         (gt_ggc_mx): New function.
20136         (hashtab_entry_note_pointers): Likewise.
20137         (gt_pch_nx): Likewise.
20138
20139 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20140
20141         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
20142         built-in definition.
20143         (XVCVUXDDP_SCALE): Likewise.
20144         (XVCVDPSXDS_SCALE): Likewise.
20145         (XVCVDPUXDS_SCALE): Likewise.
20146         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
20147         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
20148         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
20149         VSX_BUILTIN_XVCVDPUXDS_SCALE.
20150         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
20151         prototype.
20152         * config/rs6000/rs6000.c (real.h): New include.
20153         (rs6000_scale_v2df): New function.
20154         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
20155         (UNSPEC_VSX_XVCVUXDDP): Likewise.
20156         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
20157         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
20158         (vsx_xvcvsxddp_scale): New define_expand.
20159         (vsx_xvcvsxddp): New define_insn.
20160         (vsx_xvcvuxddp_scale): New define_expand.
20161         (vsx_xvcvuxddp): New define_insn.
20162         (vsx_xvcvdpsxds_scale): New define_expand.
20163         (vsx_xvcvdpsxds): New define_insn.
20164         (vsx_xvcvdpuxds_scale): New define_expand.
20165         (vsx_xvcvdpuxds): New define_insn.
20166         * doc/extend.texi (vec_ctf): Add new prototypes.
20167         (vec_cts): Likewise.
20168         (vec_ctu): Likewise.
20169         (vec_splat): Likewise.
20170         (vec_div): Likewise.
20171         (vec_mul): Likewise.
20172
20173 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20174
20175         PR target/62275
20176         * config/arm/neon.md
20177         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
20178         <v_cmp_result>): New pattern.
20179         * config/arm/iterators.md (NEON_VCVT): New int iterator.
20180         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
20181         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
20182         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
20183         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
20184         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
20185
20186 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20187
20188         PR target/62275
20189         * config/arm/iterators.md (FIXUORS): New code iterator.
20190         (VCVT): New int iterator.
20191         (su_optab): New code attribute.
20192         (su): Likewise.
20193         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
20194
20195 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20196
20197         * config/aarch64/predicates.md (aarch64_comparison_operation):
20198         New special predicate.
20199         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
20200         aarch64_comparison_operation instead of matching an operator.
20201         Update operand numbers.
20202         (csinc3<mode>_insn): Likewise.
20203         (*csinv3<mode>_insn): Likewise.
20204         (*csneg3<mode>_insn): Likewise.
20205         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
20206         * config/aarch64/aarch64.c (aarch64_get_condition_code):
20207         Return -1 instead of aborting on invalid condition codes.
20208         (aarch64_print_operand): Update aarch64_get_condition_code callsites
20209         to assert that the returned condition code is valid.
20210         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
20211
20212 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
20213
20214         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
20215         tree.def, and gimple.def
20216
20217 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
20218             Balaji V. Iyer  <balaji.v.iyer@intel.com>
20219             Igor Zamyatin  <igor.zamyatin@intel.com>
20220
20221         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
20222         (__cilkrts_cilk_for_64): Likewise.
20223         * cilk-common.c (declare_cilk_for_builtin): New function.
20224         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
20225         __cilkrts_cilk_for_64 bultins.
20226         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
20227         CILK_TI_F_LOOP_64.
20228         (cilk_for_32_fndecl): New define.
20229         (cilk_for_64_fndecl): Likewise.
20230         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
20231         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
20232         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
20233         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
20234         GF_OMP_FOR_COMBINED_INTO.
20235         * gimplify.c (gimplify_scan_omp_clauses): Added
20236         OMP_CLAUSE__CILK_FOR_COUNT_ case.
20237         (gimplify_adjust_omp_clauses): Ditto.
20238         (gimplify_omp_for): Added CILK_FOR case.
20239         (gimplify_expr): Ditto.
20240         * omp-low.c: Include cilk.h.
20241         (extract_omp_for_data): Set appropriate kind for
20242         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
20243         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
20244         (create_omp_child_function_name): Added second argument to handle
20245         cilk_for case.
20246         (cilk_for_check_loop_diff_type): New function.
20247         (expand_cilk_for_call): Likewise.
20248         (expand_cilk_for): Likewise.
20249         (create_omp_child_function): Set cilk_for_count; handle the cases when
20250         it is true; call create_omp_child_function_name with second argument.
20251         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
20252         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
20253         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
20254         * tree-nested.c (convert_nonlocal_omp_clauses): Added
20255         OMP_CLAUSE__CILK_FOR_COUNT_ case.
20256         (convert_local_omp_clauses): Ditto.
20257         * tree-pretty-print.c (dump_omp_clause): Added
20258         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
20259         (dump_generic_node): Added CILK_FOR case.
20260         * tree.c (omp_clause_num_ops): New element
20261         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
20262         (omp_clause_code_name): New element _Cilk_for_count_.
20263         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
20264         * tree.def: Add tree code for CILK_FOR.
20265
20266 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20267
20268         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
20269         (ppc403-compare): Add "exts with dot" case.
20270         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
20271         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
20272         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
20273         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
20274         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
20275         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
20276         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
20277         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20278         cell-cmp-microcoded): Similarly.
20279         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
20280         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
20281         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
20282         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
20283         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
20284         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
20285         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
20286         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
20287         (power6-compare): Add "exts with dot" case.
20288         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
20289         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
20290         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
20291
20292         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
20293         if avoiding Cell microcode.
20294         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
20295         (is_cracked_insn): Ditto.
20296         (insn_must_be_first_in_group): Ditto.
20297         * config/rs6000/rs6000.md (dot): Adjust comment.
20298         (cell_micro): Handle exts+dot.
20299         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
20300         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
20301         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
20302         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
20303         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
20304         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
20305         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
20306
20307 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20308
20309         * config/rs6000/rs6000.md (QHSI): Delete.
20310         (EXTQI, EXTHI, EXTSI): New mode iterators.
20311         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
20312         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
20313         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
20314         9 anonymous instructions, and 8 splitters): Delete.
20315         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
20316         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
20317         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
20318         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
20319         *zero_extendsi<mode>2_dot2): New.
20320
20321 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20322
20323         * config/rs6000/rs6000.md (any_extend): New code iterator.
20324         (u, su): New code attributes.
20325         (dmode, DMODE): New mode attributes.
20326         (<su>mul<mode>3_highpart): New.
20327         (*<su>mul<mode>3_highpart): New.
20328         (<su>mulsi3_highpart_le): New.
20329         (<su>muldi3_highpart_le): New.
20330         (<su>mulsi3_highpart_64): New.
20331         (<u>mul<mode><dmode>3): New.
20332         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
20333         splitters): Delete.
20334         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
20335         splitters): Delete.
20336
20337 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20338
20339         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
20340         *mulsi3_internal2, and two splitters): Delete.
20341         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
20342         Delete.
20343         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
20344
20345 2014-09-02  Richard Biener  <rguenther@suse.de>
20346
20347         PR tree-optimization/62695
20348         * tree-ssa-structalias.c (find_func_clobbers): Add missing
20349         vector truncate.
20350
20351 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
20352
20353         PR target/62312
20354         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
20355
20356 2014-09-01  Andi Kleen  <ak@linux.intel.com>
20357
20358         * file-find.c (add_prefix_begin): Add.
20359         (do_add_prefix): Rename from add_prefix with first argument.
20360         (add_prefix): Add new wrapper.
20361         * file-find.h (add_prefix_begin): Add.
20362         * gcc-ar.c (main): Support -B option.
20363
20364 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
20365
20366         * genemit.c: Include dumpfile.h.
20367         (gen_split): Print name of splitter function to dump file.
20368
20369 2014-09-01  Richard Biener  <rguenther@suse.de>
20370
20371         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
20372         Use stack auto_vecs for constraint expressions.
20373         (find_func_aliases_for_call): Likewise.
20374         (find_func_aliases): Likewise.
20375         (find_func_clobbers): Likewise.
20376
20377 2014-09-01  Richard Biener  <rguenther@suse.de>
20378
20379         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
20380         operands vector in most cases.  Remove redundant code.
20381
20382 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20383
20384         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
20385         $WIND_BASE instead of designating a harcoded arbitrary home dir.
20386         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
20387
20388 2014-09-01  Richard Biener  <rguenther@suse.de>
20389
20390         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
20391         copy_reference_ops_from_call, vn_nary_op_compute_hash,
20392         vn_reference_compute_hash, vn_reference_insert): Remove.
20393         (vn_reference_lookup_call): New function.
20394         * tree-ssa-sccvn.c (vn_reference_compute_hash,
20395         copy_reference_ops_from_ref, copy_reference_ops_from_call,
20396         vn_reference_insert, vn_nary_op_compute_hash): Make static.
20397         (create_reference_ops_from_call): Remove.
20398         (vn_reference_lookup_3): Properly update shared_lookup_references.
20399         (vn_reference_lookup_pieces): Assert that we updated
20400         shared_lookup_references properly.
20401         (vn_reference_lookup): Likewise.
20402         (vn_reference_lookup_call): New function.
20403         (visit_reference_op_call): Use it.  Avoid re-building the
20404         reference ops.
20405         (visit_reference_op_load): Remove redundant lookup.
20406         (visit_reference_op_store): Perform special tail-merging work
20407         only when possibly doing tail-merging.
20408         (visit_use): Likewise.
20409         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
20410
20411 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20412
20413         PR target/62025
20414         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
20415         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
20416         (find_inc): Revert 2014-08-13 change.
20417
20418 2014-09-01  Marek Polacek  <polacek@redhat.com>
20419
20420         PR middle-end/61903
20421         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
20422         Change the type of V to unsigned HOST_WIDE_INT.
20423
20424 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20425
20426         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
20427         the size of byte markers.
20428         (do_shift_rotate): Fix confusion between host, target and marker byte
20429         size.
20430         (verify_symbolic_number_p): Likewise.
20431         (find_bswap_or_nop_1): Likewise.
20432         (find_bswap_or_nop): Likewise.
20433
20434 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20435
20436         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
20437         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
20438
20439 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20440
20441         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
20442         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
20443         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
20444
20445 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
20446
20447         PR sanitizer/61897
20448         PR sanitizer/62140
20449         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
20450         (build_check_stmt): Likewise.
20451         (instrument_strlen_call): Likewise.
20452         (asan_expand_check_ifn): Likewise and fix types.
20453         (maybe_cast_to_ptrmode): New function.
20454
20455 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20456
20457         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
20458
20459 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
20460
20461         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
20462
20463 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
20464
20465         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
20466         prefix to function labels when generating fast indirect calls.
20467
20468 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
20469
20470         PR bootstrap/62304
20471
20472         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
20473         param back from rtx_insn * to rtx.  Rename param from "label" to
20474         "label_or_return", reintroducing "label" as an rtx_insn * after
20475         we've ensured it's not a RETURN.
20476         (first_active_target_insn): Likewise for return type and param;
20477         add a checked cast to rtx_insn * once we've ensured "insn" is not
20478         a RETURN.
20479         (steal_delay_list_from_target): Convert param "pnew_thread" back
20480         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
20481         with JUMP_LABEL.
20482         (own_thread_p): Convert param "thread" back from an rtx_insn * to
20483         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
20484         cast once we've established we're not dealing with a RETURN,
20485         renaming subsequent uses of "thread" to "thread_insn".
20486         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
20487         to JUMP_LABEL.
20488         (follow_jumps): Convert return type and param "label" from
20489         rtx_insn * back to rtx.  Move initialization of "value" to after
20490         the handling for ANY_RETURN_P, adding a checked cast there to
20491         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
20492         rename to "this_label_or_return", reintroducing "this_label" as
20493         an rtx_insn * once we've handled the case where it could be an
20494         ANY_RETURN_P.
20495         (fill_slots_from_thread): Rename param "thread" to
20496         "thread_or_return", converting from an rtx_insn * back to an rtx.
20497         Reintroduce name "thread" as an rtx_insn * local with a checked
20498         cast once we've handled the case of it being an ANY_RETURN_P.
20499         Convert local "new_thread" from an rtx_insn * back to an rtx.
20500         Add a checked cast when assigning to "trial" from "new_thread".
20501         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
20502         checked cast to rtx_insn * from "new_thread" when invoking
20503         get_label_before.
20504         (fill_eager_delay_slots): Convert locals "target_label",
20505         "insn_at_target" from rtx_insn * back to rtx.
20506         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
20507         (relax_delay_slots): Convert locals "trial", "target_label" from
20508         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
20509         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
20510         invoking update_block.
20511         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
20512         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
20513
20514         * resource.h (mark_target_live_regs): Undo erroneous conversion
20515         of second param of r214693, converting it back from rtx_insn * to
20516         rtx, since it could be a RETURN.
20517
20518         * resource.c (find_dead_or_set_registers): Similarly, convert
20519         param "jump_target" back from an rtx_insn ** to an rtx *, as we
20520         could be writing back a RETURN.  Rename local rtx_insn * "next" to
20521         "next_insn", and introduce "lab_or_return" as a local rtx,
20522         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
20523         (mark_target_live_regs): Undo erroneous conversion
20524         of second param of r214693, converting it back from rtx_insn * to
20525         rtx, since it could be a RETURN.  Rename it from "target" to
20526         "target_maybe_return", reintroducing the name "target" as a local
20527         rtx_insn * with a checked cast, after we've handled the case of
20528         ANY_RETURN_P.
20529
20530 2014-08-29  DJ Delorie  <dj@redhat.com>
20531
20532         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
20533         pointer size up to a power of two.
20534         * defaults.h (DWARF2_ADDR_SIZE): Round up.
20535         (POINTER_SIZE_UNITS): New, rounded up value.
20536         * dwarf2asm.c (size_of_encoded_value): Use it.
20537         (dw2_output_indirect_constant_1): Likewise.
20538         * expmed.c (init_expmed_one_conv): We now know the sizes of
20539         partial int modes.
20540         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
20541         * optabs.c (expand_float): Use precision, not size.
20542         (expand_fix): Likewise.
20543         * simplify-rtx (simplify_unary_operation_1): Likewise.
20544         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20545         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20546         (default_assemble_integer) Likewise.
20547         (dump_tm_clone_pairs): Likewise.
20548         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20549         * var-tracking.c (adjust_mems): Allow partial-int modes also.
20550         (prepare_call_arguments): Likewise.
20551         * stor-layout.c (finalize_type_size): Preserve precision.
20552         (layout_type): Use precision, not size.
20553
20554         * expr.c (convert_move): If the target has an explicit converter,
20555         use it.
20556
20557 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20558
20559         * gdbinit.in: Skip various inline functions in rtl.h when
20560         stepping.
20561
20562 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
20563
20564         PR bootstrap/62301
20565         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20566
20567 2014-08-29  Richard Biener  <rguenther@suse.de>
20568
20569         PR tree-optimization/62291
20570         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20571         exactly the vector size needed and use quick_push.
20572         (phi_translate_1): Adjust comment.
20573         (valid_in_sets): Remove block argument and remove pointless
20574         checking of NAMEs.
20575         (dependent_clean): Adjust for removal of block argument.
20576         (clean): Likewise.
20577         (compute_antic_aux): Likewise.
20578         (compute_partial_antic_aux): Likewise.
20579
20580 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20581             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20582             Anna Tikhonova  <anna.tikhonova@intel.com>
20583             Ilya Tocar  <ilya.tocar@intel.com>
20584             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20585             Ilya Verbin  <ilya.verbin@intel.com>
20586             Kirill Yukhin  <kirill.yukhin@intel.com>
20587             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20588
20589         * config/i386/sse.md
20590         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20591         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20592         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20593         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20594
20595 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20596             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20597             Anna Tikhonova  <anna.tikhonova@intel.com>
20598             Ilya Tocar  <ilya.tocar@intel.com>
20599             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20600             Ilya Verbin  <ilya.verbin@intel.com>
20601             Kirill Yukhin  <kirill.yukhin@intel.com>
20602             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20603
20604         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20605         * config/i386/sse.md
20606         (define_mode_iterator VI4_128_8_256): New.
20607         (define_mode_iterator VI2_128_4_256): Ditto.
20608         (define_mode_iterator PMOV_DST_MODE): Rename into
20609         (define_mode_iterator PMOV_DST_MODE_1): this.
20610         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20611         Use PMOV_DST_MODE_1 mode iterator.
20612         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20613         Ditto.
20614         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20615         Ditto.
20616         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20617         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20618         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20619         (define_mode_iterator PMOV_DST_MODE_2): New.
20620         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20621         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20622         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20623         Ditto.
20624         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20625         (define_mode_attr pmov_dst_3): Ditto.
20626         (define_mode_attr pmov_dst_zeroed_3): Ditto.
20627         (define_mode_attr pmov_suff_3): Ditto.
20628         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20629         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20630         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20631         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20632         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20633         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20634         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20635         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20636         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20637         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20638         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20639         (define_mode_attr pmov_dst_4): Ditto.
20640         (define_mode_attr pmov_dst_zeroed_4): Ditto.
20641         (define_mode_attr pmov_suff_4): Ditto.
20642         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20643         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20644         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20645         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20646         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20647         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20648         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20649         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20650         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20651         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20652         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20653
20654 2014-08-29  Richard Biener  <rguenther@suse.de>
20655
20656         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20657         NON_LVALUE_EXPR in gimple.
20658
20659 2014-08-29  Richard Biener  <rguenther@suse.de>
20660
20661         PR middle-end/62292
20662         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20663         from previous refactoring.
20664         (gimple_fold_builtin_strncpy): Likewise.
20665
20666 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20667
20668         PR bootstrap/62300
20669         * function.c (assign_parm_setup_reg): Remove erroneous checked
20670         cast to rtx_insn * on result of gen_extend_insn in favor of
20671         introducing a new local rtx "pat".
20672
20673 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20674
20675         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20676         to silence warning.
20677         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20678
20679 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20680
20681         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20682         (next_insn): Likewise.
20683         * emit-rtl.c (next_insn): Likewise.
20684         (previous_insn): Likewise.
20685         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20686         "insn" and "next" from rtx to rtx_insn *.
20687         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20688         "insn", "insn1", "vliw_start",  "prologue_end_note",
20689         "last_insn_in_packet".
20690
20691 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20692
20693         * shrink-wrap.h (active_insn_between): Strengthen both params from
20694         rtx to rtx_insn *.
20695         * function.c (active_insn_between): Likewise.
20696
20697 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20698
20699         * genattr.c (main): When writing out insn-attr.h, strengthen param
20700         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20701         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20702         writing out the definition of dfa_clear_single_insn_cache to the
20703         generated insn-automata.c
20704
20705 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20706
20707         * resource.h (clear_hashed_info_for_insn): Strengthen param from
20708         rtx to rtx_insn *.
20709         (incr_ticks_for_insn): Likewise.
20710         (init_resource_info): Likewise.
20711
20712         * resource.c (init_resource_info): Likewise.
20713         (clear_hashed_info_for_insn): Likewise.
20714         (incr_ticks_for_insn): Likewise.
20715
20716         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20717         rtx to rtx_insn *.
20718         (steal_delay_list_from_target): Use methods of "seq".
20719         (try_merge_delay_insns): Use methods of "merged_insns".
20720         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20721         (reorg_redirect_jump): Likewise for param "jump".
20722
20723 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20724
20725         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20726         rtx to rtx_insn *.
20727         * config/s390/s390.c (s390_split_branches): Eliminate top-level
20728         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20729         "set_insn".
20730         (s390_mainpool_finish): In three places, split out a local rtx
20731         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20732         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
20733         and split another local rtx "insn" out into rtx "pat" and
20734         rtx_insn * "insn".
20735         * config/sh/sh.c (output_branchy_insn): Rather than working
20736         directly on operands[9], introduce local rtx_code_label *
20737         variables named "lab" in two places, working on them, and then
20738         assigning them to operands[9], so that the intervening operations
20739         are known by the type system to be on insns.
20740
20741 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20742
20743         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20744         const rtx_insn *.
20745
20746         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20747         in invocation of INSN_HAS_LOCATION.
20748
20749 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20750
20751         * config/rs6000/altivec.h (vec_xl): New #define.
20752         (vec_xst): Likewise.
20753         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20754         (XXSPLTD_V2DI): Likewise.
20755         (DIV_V2DI): Likewise.
20756         (UDIV_V2DI): Likewise.
20757         (MUL_V2DI): Likewise.
20758         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20759         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20760         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20761         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20762         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20763         (UNSPEC_VSX_DIVSD): Likewise.
20764         (UNSPEC_VSX_DIVUD): Likewise.
20765         (UNSPEC_VSX_MULSD): Likewise.
20766         (vsx_mul_v2di): New insn-and-split.
20767         (vsx_div_v2di): Likewise.
20768         (vsx_udiv_v2di): Likewise.
20769         (vsx_xxspltd_<mode>): New insn.
20770
20771 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20772
20773         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20774         NEXT_INSN.
20775         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20776         (NEXT_INSN): Likewise.
20777         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20778         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20779         const rtx_insn *.
20780         (no_labels_between_p): Likewise for both params.
20781
20782         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20783         cast when using NEXT_INSN on operands[2].
20784         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20785         "insn" from rtx to rtx_insn *, adding a checked cast.
20786         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20787         rtx_insn *.
20788         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20789         for third param.
20790         (arc_text_label): Likewise for param "insn".
20791         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20792         "insn".
20793         (arc_ccfsm_record_condition): Likewise for param "jump".
20794         (arc_text_label): Likewise for local "label".
20795         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20796         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20797         a method for typesafety.  Add a checked cast.
20798         * config/arc/constraints.md (Clb): Add a checked cast when getting
20799         the CODE_LABEL from a LABEL_REF.
20800         * config/arm/arm.c (require_pic_register): Strengthen locals
20801         "seq", "insn" from rtx to rtx_insn *.
20802         (create_fix_barrier): Likewise for locals "selected", "next".
20803         (thumb1_reorg): Likewise for locals "prev", "insn".
20804         (arm_expand_prologue): Likewise for local "last".
20805         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20806         operands[0].
20807         (thumb2_output_casesi): Likewise for operands[2].
20808         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20809         strengthen local "insn" from rtx to rtx_insn *.
20810         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20811         type and param "insn".
20812         (find_prev_insn_start): Likewise.
20813         (hwloop_optimize): Likewise for locals "insn", "last_insn",
20814         "prev".
20815         (gen_one_bundle): Likewise for loal "t".
20816         (find_load): Likewise for param "insn".
20817         (workaround_speculation): Likewise for locals "insn", "next",
20818         "target", "next_tgt".
20819         * config/c6x/c6x.c (assign_reservations): Likewise for both params
20820         and for locals "insn", "within", "last".
20821         (count_unit_reqs): Likewise for params "head", "tail" and local
20822         "insn".
20823         (try_rename_operands): Likewise for params "head", "tail".
20824         (reshuffle_units): Likewise for locals "head", "tail", "insn".
20825         (struct c6x_sched_context): Likewise for fields
20826         "last_scheduled_insn", "last_scheduled_iter0".
20827         (init_sched_state): Replace NULL_RTX with NULL.
20828         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20829         to rtx_insn *.
20830         (undo_split_delayed_nonbranch): Likewise for param and for local
20831         "prev".
20832         (conditionalize_after_sched): Likewise for local "insn".
20833         (bb_earliest_end_cycle): Likewise.
20834         (filter_insns_above): Likewise for locals "insn", "next".
20835         (hwloop_optimize): Remove redundant checked cast.
20836         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20837         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20838         NULL_RTX with NULL.
20839         (cris_simple_epilogue): Likewise.
20840         (cris_expand_prologue): Likewise.
20841         (cris_expand_epilogue): Likewise.
20842         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20843         local "insn" from rtx to rtx_insn *.
20844         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20845         (struct frv_packet_group): Likewise for the elements within array
20846         fields "insns", "sorted", and for field "nop".
20847         (frv_packet): Likewise for the elements within array field
20848         "insns".
20849         (frv_add_insn_to_packet): Likewise for param "insn".
20850         (frv_insert_nop_in_packet): Likewise for param "insn" and local
20851         "last".
20852         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20853         (frv_sort_insn_group_1): Likewise for local "insn".
20854         (frv_optimize_membar_local): Likewise.
20855         (frv_align_label): Likewise for locals "x", "last", "barrier",
20856         "label".
20857         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20858         local.
20859         (ia64_sched_init): Likewise for local "insn".
20860         (scheduled_good_insn): Likewise for param "last".
20861         (struct _ia64_sched_context): Likewise for field
20862         "last_scheduled_insn".
20863         (ia64_init_sched_context): Replace NULL_RTX with NULL.
20864         (struct bundle_state): Likewise for field "insn".
20865         (issue_nops_and_insn): Likewise for param "insn".
20866         (get_next_important_insn): Likewise for return type and both
20867         params.
20868         (ia64_add_bundle_selector_before): Likewise for param "insn".
20869         (bundling): Likewise for params "prev_head_insn", "tail" and
20870         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
20871         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20872         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20873         Strengthen final param from rtx to rtx_insn *.
20874         (iq2000_move_1word): Likewise for second param.
20875         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20876         param "cur_insn" and local "next_insn".
20877         (iq2000_move_1word): Likewise for param "insn".
20878         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20879         casts when using NEXT_INSN on operands[1].
20880         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20881         "insn" from rtx to rtx_insn *.
20882         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20883         "x", introducing local rtx_insn * "insn" for when working with the
20884         CODE_LABEL of the LABEL_REF.
20885         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20886         rtx_insn *.
20887         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20888         param.
20889         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20890         type.
20891         (conditionalize_block): Likewise for return type and param.
20892         (mcore_is_dead): Likewise for param "first" and local "insn".
20893         (emit_new_cond_insn): Likewise for return type.
20894         (conditionalize_block): Likewise for return type, param, and
20895         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20896         "newinsn".
20897         (conditionalize_optimization): Likewise for local "insn".
20898         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20899         using NEXT_INSN.
20900         * config/microblaze/microblaze.md: Add checked casts when using
20901         NEXT_INSN.
20902         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20903         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20904         and rtx_insn * "insn".
20905         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20906         checked cast when using NEXT_INSN on operands[2].
20907         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20908         local "insn" from rtx to rtx_insn *.
20909         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20910         Likewise.
20911         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20912         Add a checked cast when using NEXT_INSN on operands[1].
20913         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20914         rtx to rtx_insn *.
20915         (pa_output_cbranch): Likewise for final param.
20916         (pa_output_lbranch): Likewise for second param.
20917         (pa_output_bb): Likewise for third param.
20918         (pa_output_bvb): Likewise.
20919         (pa_output_dbra): Likewise for second param.
20920         (pa_output_movb): Likewise.
20921         (pa_output_parallel_movb): Likewise.
20922         (pa_output_parallel_addb): Likewise.
20923         (pa_output_millicode_call): Likewise for first param.
20924         (pa_output_mul_insn): Likewise for second param.
20925         (pa_output_div_insn): Likewise for third param.
20926         (pa_output_mod_insn): Likewise for second param.
20927         (pa_jump_in_call_delay): Likewise for param.
20928         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20929         (pa_output_div_insn): Likewise.
20930         (pa_output_mod_insn): Likewise.
20931         (pa_output_cbranch): Likewise.
20932         (pa_output_lbranch): Likewise.
20933         (pa_output_bb): Likewise.
20934         (pa_output_bvb): Likewise.
20935         (pa_output_dbra): Likewise.
20936         (pa_output_movb): Likewise.
20937         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20938         to simplify and for typesafety.
20939         (pa_output_call): Use method of rtx_sequence *.
20940         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20941         (pa_jump_in_call_delay): Likewise.
20942         (pa_output_parallel_movb): Likewise.
20943         (pa_output_parallel_addb): Likewise.
20944         (pa_following_call): Likewise.
20945         (pa_combine_instructions): Likewise for locals "anchor",
20946         "floater".
20947         (pa_can_combine_p): Likewise for params "anchor", "floater" and
20948         locals "start", "end".
20949         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20950         param "insn" and local "local_insn".
20951         (picochip_final_prescan_insn): Likewise for local "local_insn".
20952         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20953         local "insn".
20954         (uses_TOC): Likewise.
20955         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20956         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20957         splitting out to more tightly-scoped locals, 3 as rtx and one as
20958         rtx_insn *.
20959         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20960         to rtx_insn *.
20961         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20962         where needed.
20963         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20964         to rtx_insn *.
20965         (fixup_addr_diff_vecs): Likewise.
20966         (reg_unused_after): Likewise for param 2.
20967         (sh_can_redirect_branch): Likewise for both params.
20968         (check_use_sfunc_addr): Likewise for param 1.
20969         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20970         (find_barrier): Likewise for local "last_got".
20971         (gen_block_redirect): Likewise for return type, param "jump" and
20972         locals "prev", "scan", "next", "insn".
20973         (struct far_branch): Likewise for fields "near_label",
20974         "insert_place", "far_label".
20975         (gen_far_branch): Likewise for local "jump".
20976         (fixup_addr_diff_vecs): Likewise for param "first" and locals
20977         "insn", "prev".
20978         (barrier_align): Likewise for param and for locals "prev", "x".
20979         Introduce local rtx_sequence * "prev_seq" and use insn method for
20980         typesafety and clarity.
20981         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20982         (get_dest_uid): Likewise for local "dest".
20983         (split_branches): Likewise for locals "next", "beyond", "label",
20984         "block", "far_label".  Add checked casts when assigning to
20985         bp->far_label and "far_label".
20986         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20987         (sequence_insn_p): Likewise.
20988         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
20989         more loop-scoped rtx "insn" when walking LABEL_REFS.
20990         (sh_can_redirect_branch): Strengthen both params from rtx to
20991         rtx_insn *.
20992         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
20993         new local rtx_sequence * "seq" via a dyn_cast, and use a method
20994         for clarity and typesafety.
20995         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20996         "insn" from rtx to rtx_insn *.
20997         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20998         when using NEXT_INSN on the CODE_LABEL in operands[2].
20999         (define_insn "casesi_worker_2"): Likewise.
21000         (define_insn "casesi_shift_media"): Likewise.
21001         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
21002         operands[3].
21003         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
21004         Strengthen field "insn" from rtx to rtx_insn *.
21005         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
21006         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
21007         param "start_insn" and local "start_insn".
21008         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
21009         field "insn".
21010         (find_set_of_reg_bb): Likewise for param "insn".
21011         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
21012         (trace_reg_uses): Likewise for param "start_insn".
21013         (sh_treg_combine::cbranch_trace): Likewise for field
21014         "cbranch_insn".
21015         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
21016         param "insn".
21017         (sh_treg_combine::record_set_of_reg): Likewise for param
21018         "start_insn" and local "i".
21019         (sh_treg_combine::can_remove_cstore): Likewise for local
21020         "prev_insn".
21021         (sh_treg_combine::try_optimize_cbranch): Likewise for param
21022         "insn".
21023         (sh_treg_combine::execute): Likewise for local "i".
21024         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
21025         param.
21026         (sparc_check_64): Likewise for second param.
21027         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
21028         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
21029         dyn_cast, using its insn method for typesafety and clarity.
21030         (empty_delay_slot): Strengthen param "insn" from rtx to
21031         rtx_insn *.
21032         (set_extends): Likewise.
21033         (sparc_check_64): Likewise.
21034         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
21035         for locals "seq", "last_insn".
21036         (combine_bnp): Likewise for param "insn".
21037         (xstormy16_reorg): Likewise for local "insn".
21038         * config/v850/v850.c (substitute_ep_register): Likewise for params
21039         "first_insn", "last_insn" and local "insn".
21040         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
21041         elements of "regs" array, and local "insn".
21042         * except.c (emit_note_eh_region_end): Likewise for param "insn".
21043         * final.c (final_sequence): Strengthen this global from rtx to
21044         rtx_sequence *.
21045         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
21046         rtx_insn *.
21047         (final_scan_insn): Update assignment to "final_sequence" to be
21048         from "seq", the cast version of "body", for type-safety.
21049         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
21050         "insns" from rtx to rtx_insn *.
21051         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
21052         * genattr.c (main): When writing out generated insn-attr.h,
21053         strengthen params 1 and 3 of eligible_for_delay,
21054         eligible_for_annul_true, eligible_for_annul_false from rtx to
21055         rtx_insn *.
21056         * genattrtab.c (write_eligible_delay): Likewise when writing out
21057         generated insn-attrtab.c; also local "insn" the generated
21058         functions.
21059         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
21060         to rtx_insn *.
21061         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
21062         "start_label" from rtx to rtx_insn *.
21063         * ira.c (decrease_live_ranges_number): Likewise for local "p".
21064         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
21065         "insns" and local "insn".
21066         (validate_equiv_mem): Likewise for param "start" and local "insn".
21067         (memref_used_between_p): Likewise for params "start", "end" and
21068         local "insn".
21069         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
21070         final param.
21071         * loop-doloop.c (doloop_optimize): Within region guarded by
21072         INSN_P (doloop_pat), introduce a new local rtx_insn *
21073         "doloop_insn" via a checked cast, and use it for typesafety,
21074         eventually writing the value back into doloop_pat.
21075         * output.h (final_sequence): Strengthen this global from rtx to
21076         rtx_sequence *.
21077         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
21078         reintroducing "insn" as an rtx_insn * via a checked cast.
21079         Strengthen param "attempt" and local "new_insn"from rtx to
21080         rtx_insn *.
21081         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
21082         to rtx_insn *.
21083         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
21084         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
21085         "p" in favor of more tightly-scoped replacements, sometimes rtx
21086         and sometimes rtx_insn *, as appropriate.
21087         (delete_output_reload): Eliminate top-level rtx "i1", splitting
21088         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
21089         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
21090         local "trial" from rtx to rtx_insn *.
21091         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
21092         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
21093         rtx_sequence * and use methods for clarity and typesafety.
21094         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
21095         rtx to rtx_insn *.  Strenghten local "li" from rtx to
21096         rtx_insn_list * and use its methods for clarity and typesafety.
21097         (steal_delay_list_from_target): Strengthen param "insn" from rtx
21098         to rtx_insn *.
21099         (steal_delay_list_from_fallthrough): Likewise.
21100         (try_merge_delay_insns): Likewise for param "thread" and locals
21101         "trial", "next_trial", "delay_insn".
21102         (redundant_insn): Likewise for param "target" and local "trial".
21103         (own_thread_p): Likewise for param "thread" and locals
21104         "active_insn", "insn".
21105         (get_label_before): Likewise for param "insn".
21106         (fill_simple_delay_slots): Likewise for local "new_label"; use
21107         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
21108         (label_before_next_insn): Strengthen return type and local "insn"
21109         from rtx to rtx_insn *.
21110         (relax_delay_slots): Likewise for locals "other", "tmp".
21111         (make_return_insns): Likewise for param "first" and locals "insn",
21112         "jump_insn", "prev".  Move declaration of "pat" to its assignment
21113         and strengthen from rtx to rtx_sequence *.  Use its methods for
21114         clarity and typesafety.
21115         * rtlanal.c (no_labels_between_p): Strengthen params from
21116         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
21117         rtx_insn *.
21118         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
21119         from const_rtx to const rtx_insn *.
21120         (reg_set_between_p): Rename param "from_insn" to
21121         "uncast_from_insn", and reintroduce "from_insn" as a
21122         const rtx_insn * via a checked cast.
21123         (modified_between_p): Likewise for param "start" as "uncast_start".
21124         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
21125         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
21126         "tmp", head" from rtx to rtx_insn *.
21127         (recompute_rev_top_order): Likewise for local "insn".
21128         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
21129         * store-motion.c (build_store_vectors): Likewise for local "insn".
21130         Strengthen local "st" from rtx to rtx_insn_list * and use methods
21131         for clarity and typesafety.
21132         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
21133         rtx to rtx_insn *.
21134         (computation_cost): Likewise for local "seq".
21135         (get_address_cost): Likewise.
21136
21137 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21138
21139         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
21140         const rtx_insn *.
21141         (label_is_jump_target_p): Likewise for second param.
21142
21143         * rtlanal.c (tablejump_p): Likewise for param "insn".
21144         (label_is_jump_target_p): Likewise for param "jump_insn".
21145
21146 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21147
21148         * rtl.h (find_first_parameter_load): Strengthen return type and
21149         both params from rtx to rtx_insn *.
21150         * rtlanal.c (find_first_parameter_load): Strengthen return type,
21151         both params and locals "before", "first_set" from rtx to
21152         rtx_insn *.  Remove now-redundant cast.
21153         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
21154
21155 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21156
21157         * rtl.h (find_last_value): Delete.
21158         * rtlanal.c (find_last_value): Delete.
21159
21160 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21161
21162         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
21163         from rtx to rtx_insn *.
21164         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
21165         rtx "note" with new local rtx_insn * "new_head" when calculating
21166         head insn of new basic block.
21167         * combine.c (combine_split_insns): Strengthen return type and local
21168         "ret" from rtx to rtx_insn *.
21169         (likely_spilled_retval_p): Likewise for locals "use" and "p".
21170         (try_combine): Eliminate local "m_split", splitting into new
21171         locals "m_split_insn" and "m_split_pat".
21172         (find_split_point): Strengthen local "seq" from rtx into
21173         rtx_insn *.
21174         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
21175         locals "label", "branch".
21176         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
21177         for local "insn".
21178         (define_expand "umulsi3_highpart"): Likewise for local "insn".
21179         * dse.c (note_add_store_info): Likewise for fields "first",
21180         "current".
21181         (note_add_store): Likewise for local "insn".
21182         (emit_inc_dec_insn_before): Likewise for locals "insn",
21183         "new_insn", "cur".
21184         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
21185         (replace_read): Likewise for locals "insns", "this_insn".
21186         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
21187         (notice_eh_throw): Likewise for param "insn".
21188         (before_next_cfi_note): Likewise for return type, param, and local
21189         "prev".
21190         (connect_traces): Likewise for local "note".
21191         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
21192         (verify_rtl_sharing): Likewise.
21193         (unshare_all_rtl_in_chain): Likewise for param "insn".
21194         (get_first_nonnote_insn): Likewise for local "insn".
21195         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
21196         "seq" and use its methods to clarify things.
21197         (next_insn): Strengthen return type from rtx to rtx_insn *.
21198         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
21199         local rtx_insn * using a checked cast, dropping a checked cast
21200         made redundant by this change.  Use a cast to and method of
21201         rtx_sequence to clarify the code.
21202         (previous_insn): Rename param "insn" to "uncast_insn" and
21203         reintroduce "insn" as a local rtx_insn * using a checked cast,
21204         dropping a checked cast made redundant by this change.  Use a cast
21205         to and method of rtx_sequence to clarify the code.
21206         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
21207         reintroduce "insn" as a local rtx_insn * using a checked cast,
21208         dropping a checked cast made redundant by this change.
21209         (next_nonnote_insn_bb): Likewise.
21210         (prev_nonnote_insn): Likewise.
21211         (prev_nonnote_insn_bb): Likewise.
21212         (next_nondebug_insn): Likewise.
21213         (prev_nondebug_insn): Likewise.
21214         (next_nonnote_nondebug_insn): Likewise.
21215         (prev_nonnote_nondebug_insn): Likewise.
21216         (next_real_insn): Likewise.
21217         (prev_real_insn): Likewise.
21218         (next_active_insn): Likewise.
21219         (prev_active_insn): Likewise.
21220         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
21221         clarity.
21222         (prev_cc0_setter): Likewise.
21223         (try_split): Rename param "trial" to "uncast_trial" and
21224         reintroduce "insn" as a local rtx_insn * using a checked cast,
21225         dropping checked casts made redundant by this change.
21226         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
21227         rtx to rtx_insn *.
21228         (remove_insn): Rename param "insn" to "uncast_insn" and
21229         reintroduce "insn" as a local rtx_insn * using a checked cast.
21230         (emit_pattern_after_setloc): Likewise for param "after", as
21231         "uncast_after".
21232         (emit_pattern_after): Likewise.  Strengthen local "prev" from
21233         rtx to rtx_insn *.
21234         (emit_pattern_before_setloc): Rename param "before" to
21235         "uncast_before" and reintroduce "before" as a local rtx_insn *
21236         using a checked cast.  Strengthen locals "first", "last" from
21237         rtx to rtx_insn *.
21238         (emit_pattern_before): Likewise rename/cast param "before" to
21239         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
21240         * except.c (copy_reg_eh_region_note_forward): Strengthen param
21241         "first" and local "insn" from rtx to rtx_insn *.
21242         (copy_reg_eh_region_note_backward): Likewise for param "last"
21243         and local "insn".
21244         * expr.c (fixup_args_size_notes): Rename param "last" to
21245         "uncast_last" and reintroduce "last" as a local rtx_insn *
21246         using a checked cast.  Strengthen local "insn" from rtx to
21247         rtx_insn *.
21248         * function.c (set_insn_locations): Strengthen param "insn" from
21249         rtx to rtx_insn *.
21250         (record_insns): Likewise for param "insns" and local "tmp".
21251         (active_insn_between): Rename param "tail" to
21252         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
21253         using a checked cast.
21254         (thread_prologue_and_epilogue_insns): Split out top-level local
21255         rtx "seq" into three different rtx_insn * locals.  Strengthen
21256         local "prologue_seq" from rtx to rtx_insn *.
21257         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
21258         from rtx to rtx_insn *.
21259         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
21260         (priority): Likewise for locals "prev_first", "twin".
21261         (setup_insn_max_reg_pressure): Likewise for param "after".
21262         (sched_setup_bb_reg_pressure_info): Likewise.
21263         (no_real_insns_p): Strengthen params from const_rtx to
21264         const rtx_insn *.
21265         (schedule_block): Strengthen local "next_tail" from rtx to
21266         rtx_insn *.
21267         * ifcvt.c (find_active_insn_before): Strengthen return type and
21268         param "insn" from rtx to rtx_insn *.
21269         (find_active_insn_after): Likewise.
21270         (cond_exec_process_insns): Likewise for param "start" and local "insn".
21271         (cond_exec_process_if_block): Likewise for locals "then_start",
21272         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
21273         (noce_process_if_block): Likewise for local "jump".
21274         (merge_if_block): Likewise for two locals named "end".
21275         (cond_exec_find_if_block): Likewise for local "last_insn".
21276         * jump.c (delete_related_insns): Rename param "insn" to
21277         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
21278         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
21279         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
21280         NULL.
21281         (split_reg): Likewise.
21282         * lra.c (lra_process_new_insns): Likewise.
21283         * modulo-sched.c (permute_partial_schedule): Strengthen param
21284         "last" from rtx to rtx_insn *.
21285         * optabs.c (add_equal_note): Likewise for param "insns" and local
21286         "last_insn".
21287         (expand_binop_directly): Add checked casts to rtx_insn * within
21288         NEXT_INSN (pat) uses.
21289         (expand_unop_direct): Likewise.
21290         (maybe_emit_unop_insn): Likewise.
21291         * recog.c (peep2_attempt): Strengthen locals "last",
21292         "before_try", "x" from rtx to rtx_insn *.
21293         * reorg.c (optimize_skip): Strengthen return type and local
21294         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
21295         and locals "trial", "next_trial" from rtx to rtx_insn *.
21296         * resource.c (next_insn_no_annul): Strengthen return type and
21297         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
21298         rtx_sequence to clarify the code.
21299         (mark_referenced_resources): Add a checked cast to rtx_insn *
21300         within PREV_INSN (x).
21301         (find_dead_or_set_registers): Strengthen return type, param
21302         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
21303         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
21304         to rtx_insn **.
21305         (mark_target_live_regs): Strengthen params "insns" and "target",
21306         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
21307         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
21308         the code.
21309         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
21310         from rtx to rtx_insn *.
21311         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
21312         from rtx to rtx_insn *.
21313         (copy_reg_eh_region_note_backward): Likewise.
21314         (unshare_all_rtl_in_chain): Likewise for sole param.
21315         (dump_rtl_slim): Strengthen second and third params from const_rtx
21316         to const rtx_insn *.
21317         * sched-deps.c (sched_free_deps): Strengthen params "head" and
21318         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
21319         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
21320         "next_tail" from rtx to rtx_insn *.
21321         (begin_move_insn): Likewise for local "next".
21322         * sched-int.h (sched_free_deps): Likewise for first and second
21323         params.
21324         (no_real_insns_p): Strengthen both params from const_rtx to
21325         const rtx_insn *.
21326         (sched_setup_bb_reg_pressure_info): Strengthen second params from
21327         rtx to rtx_insn *.
21328         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
21329         "next_tail".
21330         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
21331         and locals "insn", "tail" from const_rtx to const rtx_insn *.
21332         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
21333         rtx_insn *.
21334         (debug_rtl_slim): Strengthen params "first" and "last" from
21335         const_rtx to const rtx_insn *.
21336         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
21337         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
21338         (convert_to_simple_return): Likewise for param "returnjump".
21339         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
21340         "prologue_seq".
21341         (convert_to_simple_return): Likewise for param "returnjump".
21342         * valtrack.c (propagate_for_debug): Likewise for params
21343         "insn", "last".
21344         * valtrack.h (propagate_for_debug): Likewise for second param.
21345
21346 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21347
21348         * output.h (insn_current_reference_address): Strengthen param
21349         from rtx to rtx_insn *.
21350         * final.c (insn_current_reference_address): Likewise.
21351
21352 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21353
21354         * basic-block.h (inside_basic_block_p): Strengthen param from
21355         const_rtx to const rtx_insn *.
21356         * cfgbuild.c (inside_basic_block_p): Likewise.
21357
21358 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21359
21360         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
21361         rtx_insn *.
21362         (get_trace_info): Likewise for param "insn".
21363         (save_point_p): Likewise.
21364         (maybe_record_trace_start): Likewise for both params.
21365         (maybe_record_trace_start_abnormal): Likewise.
21366         (create_trace_edges): Likewise for sole param and for three of the
21367         locals named "lab".
21368         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
21369         to rtx_insn *, and update a call to pat->element to pat->insn.
21370
21371 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21372
21373         * function.h (struct expr_status): Convert field "x_forced_labels"
21374         from rtx_expr_list * to rtx_insn_list *.
21375
21376         * cfgbuild.c (make_edges): Convert local "x" from an
21377         rtx_expr_list * to an rtx_insn_list *, replacing use of
21378         "element" method with "insn" method.
21379         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21380         * except.c (sjlj_emit_dispatch_table): Replace use of
21381         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
21382         forced_labels.
21383         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
21384         rtx_expr_list * to an rtx_insn_list *, replacing use of
21385         "element" method with "insn" method.
21386         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21387         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
21388         rtx_insn *, adding a checked cast.  Replace use of
21389         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
21390         forced_labels.
21391         (expand_label): Likewise for local "label_r".
21392
21393 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21394
21395         * function.h (struct rtl_data): Convert field
21396         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
21397         rtx_insn_list *.
21398         * rtl.h (remove_node_from_insn_list): New prototype.
21399
21400         * builtins.c (expand_builtin): When prepending to
21401         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21402         gen_rtx_EXPR_LIST.
21403         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
21404         to rtx_insn_list *, and use its "insn" method rather than
21405         "element" method.
21406         * cfgrtl.c (delete_insn): Use new function
21407         remove_node_from_insn_list rather than
21408         remove_node_from_expr_list.
21409         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
21410         to rtx_insn_list *, and use its "insn" method rather than
21411         "element" method.
21412         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21413         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21414         * rtlanal.c (remove_node_from_insn_list): New function, adapted
21415         from remove_node_from_expr_list.
21416         * stmt.c (expand_label): When prepending to
21417         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21418         gen_rtx_EXPR_LIST.
21419
21420 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21421
21422         * function.h (struct rtl_data): Strengthen fields "x_return_label"
21423         and "x_naked_return_label" from rtx to rtx_code_label *.
21424
21425 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21426
21427         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
21428         (SET_NEXT_INSN): Likewise.
21429         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
21430
21431         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
21432         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
21433         to split out the SEQUENCE from local "bundle", strengthening the
21434         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
21435         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
21436         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
21437         and the type of the elements of the "slot" array from rtx to
21438         rtx_insn *.
21439         (reorg_split_calls): Likewise for locals "insn" and "next", and
21440         the type of the elements of the "slot" array.
21441
21442         * config/frv/frv.c (frv_nops): Likewise for the elements of this
21443         array.
21444         (frv_function_prologue): Likewise for locals "insn", "next",
21445         "last_call".
21446         (frv_register_nop): Introduce a local "nop_insn" to be the
21447         rtx_insn * containing rtx "nop".
21448
21449         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
21450         used as an insn and sometimes as a pattern, so rename it to
21451         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
21452         using it where dealing with the core insn.
21453
21454         * config/picochip/picochip.c (reorder_var_tracking_notes):
21455         Strengthen locals "insn", "next", "last_insn", "queue",
21456         "next_queue", "prev" from rtx to rtx_insn *.
21457
21458         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
21459         the second param is an rtx_insn ** rather than an rtx **.
21460         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
21461         from rtx to rtx_sequence *, and introduce local named "sequence",
21462         using methods of rtx_sequence to clarify the code.
21463         (remove_insn): Introduce local rtx_sequence * named "sequence" and
21464         use its methods.
21465         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
21466         Rename param "after" to "uncast_after", reintroducing "after" as a
21467         local rtx_insn * with a checked cast.
21468         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
21469         reintroducing "after" as a local rtx_insn * with a checked cast.
21470         Strengthen local "last" from rtx to rtx_insn * and remove the
21471         now-redundant checked casts.
21472         (copy_delay_slot_insn): Strengthen return type and param from rtx
21473         to rtx_insn *.
21474
21475         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
21476         "last" from rtx to rtx_insn *.
21477
21478 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21479
21480         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
21481         param from rtx to rtx_insn *.
21482
21483         * emit-rtl.c (copy_delay_slot_insn): Likewise.
21484
21485         * reorg.c (skip_consecutive_labels): Strengthen return type, param
21486         and local "insn" from rtx to rtx_insn *.
21487         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
21488         (unfilled_slots_next): Likewise.
21489         (function_return_label): Strengthen from rtx to rtx_code_label *.
21490         (function_simple_return_label): Likewise.
21491         (first_active_target_insn): Strengthen return type and param from
21492         rtx to rtx_insn *.
21493         (find_end_label): Strengthen return type from rtx to
21494         rtx_code_label *; strengthen locals as appropriate.
21495         (emit_delay_sequence): Strengthen return type, param "insn" and
21496         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
21497         and local "li" from rtx to rtx_insn_list *, using methods of
21498         rtx_insn_list for clarity and typesafety.
21499         (add_to_delay_list): Strengthen return type and param "insn" from
21500         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
21501         rtx_insn_list * and use methods of rtx_insn_list.
21502         (delete_from_delay_slot): Strengthen return type, param "insn",
21503         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
21504         Strengthen local "seq" from rtx to rtx_sequence *, and local
21505         "delay_list" from rtx to rtx_insn_list *, using methods of
21506         rtx_sequence for clarity and type-safety.
21507         (delete_scheduled_jump): Add checked cast when invoking
21508         delete_from_delay_slot.  Strengthen local "trial" from rtx to
21509         rtx_insn *.
21510         (optimize_skip): Strengthen return type and local "delay_list"
21511         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
21512         rtx_insn *.
21513         (steal_delay_list_from_target): Strengthen return type, param
21514         "delay_list" and local "new_delay_list" from rtx to
21515         rtx_insn_list *.  Strengthen param "seq" from rtx to
21516         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
21517         rtx_insn **.
21518         Split out local "temp" into multiple more-tightly scoped locals:
21519         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
21520         of rtx_insn_list and rtx_sequence for clarity and typesafety.
21521         Strengthen locals named "trial" from rtx to rtx_insn *.
21522         (steal_delay_list_from_fallthrough): Strengthen return type and
21523         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
21524         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
21525         Strengthen local "trial" from rtx to rtx_insn *.
21526         (try_merge_delay_insns): Strength local "merged_insns" from rtx
21527         to rtx_insn_list * and use its methods.  Strengthen local "pat"
21528         from rtx to rtx_sequence * and use its methods.  Strengthen locals
21529         "dtrial" and "new_rtx" from rtx to rtx_insn *.
21530         (get_label_before): Strengthen return type and local "label" from
21531         rtx to rtx_insn *.
21532         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
21533         "next_trial", "next", prev".  Strengthen local "delay_list" from
21534         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
21535         rtx_insn **.
21536         (follow_jumps): Strengthen return type, param "label" and locals
21537         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
21538         (fill_slots_from_thread): Strengthen return type, param
21539         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
21540         "insn", "thread", "opposite_thread" and locals "new_thread",
21541         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
21542         "sequence" from a checked cast to rtx_sequence so that we can call
21543         steal_delay_list_from_target and steal_delay_list_from_fallthrough
21544         with an rtx_sequence *.
21545         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21546         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21547         Strengthen local "delay_list" from rtx to rtx_insn_list *.
21548         (relax_delay_slots): Strengthen param "first" and locals "insn",
21549         "next", "trial", "delay_insn", "target_label" from rtx to
21550         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
21551         Introduce a local "trial_seq" for PATTERN (trial) of type
21552         rtx_sequence *, in both cases using methods of rtx_sequence.
21553         (dbr_schedule): Strengthen param "first" and locals "insn",
21554         "next", "epilogue_insn" from rtx to rtx_insn *.
21555
21556 2014-08-28  Richard Biener  <rguenther@suse.de>
21557
21558         PR tree-optimization/62283
21559         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21560         Do not peel loops for alignment where the vector loop likely
21561         doesn't run at least VF times.
21562
21563 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
21564
21565         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21566         important_candidates.  Consider all important candidates if
21567         IVS doesn't give any result.  Remove check on ivs->upto.
21568         (try_add_cand_for): Call iv_ca_add_use only once.
21569
21570 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21571             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21572             Anna Tikhonova  <anna.tikhonova@intel.com>
21573             Ilya Tocar  <ilya.tocar@intel.com>
21574             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21575             Ilya Verbin  <ilya.verbin@intel.com>
21576             Kirill Yukhin  <kirill.yukhin@intel.com>
21577             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21578
21579         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21580         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21581         masking.
21582         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21583         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21584         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21585         (define_insn "*mul<mode>3"): Add EVEX version.
21586
21587 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21588             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21589             Anna Tikhonova  <anna.tikhonova@intel.com>
21590             Ilya Tocar  <ilya.tocar@intel.com>
21591             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21592             Ilya Verbin  <ilya.verbin@intel.com>
21593             Kirill Yukhin  <kirill.yukhin@intel.com>
21594             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21595
21596         * config/i386/sse.md
21597         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21598         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21599         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21600         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21601         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21602         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21603         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21604         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21605         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21606         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21607         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21608         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21609         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21610         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21611         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21612         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"):
21613         Ditto.
21614
21615 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21616             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21617             Anna Tikhonova  <anna.tikhonova@intel.com>
21618             Ilya Tocar  <ilya.tocar@intel.com>
21619             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21620             Ilya Verbin  <ilya.verbin@intel.com>
21621             Kirill Yukhin  <kirill.yukhin@intel.com>
21622             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21623
21624         * config/i386/sse.md
21625         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21626         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21627         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21628
21629 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21630             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21631             Anna Tikhonova  <anna.tikhonova@intel.com>
21632             Ilya Tocar  <ilya.tocar@intel.com>
21633             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21634             Ilya Verbin  <ilya.verbin@intel.com>
21635             Kirill Yukhin  <kirill.yukhin@intel.com>
21636             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21637
21638         * config/i386/sse.md
21639         (define_mode_iterator VI128_256): New.
21640         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21641
21642 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21643             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21644             Anna Tikhonova  <anna.tikhonova@intel.com>
21645             Ilya Tocar  <ilya.tocar@intel.com>
21646             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21647             Ilya Verbin  <ilya.verbin@intel.com>
21648             Kirill Yukhin  <kirill.yukhin@intel.com>
21649             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21650
21651         * config/i386/sse.md
21652         (define_mode_iterator VI8_256_512): New.
21653         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21654         Ditto.
21655         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21656         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21657         Ditto.
21658         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21659
21660 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21661
21662         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
21663         pointer to the cumulative reloc value and return the value for
21664         this reloc instead.
21665         (compute_reloc_for_rtx): Take a const_rtx.  Call
21666         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21667         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
21668         for_each_rtx for the CONST case.
21669
21670 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21671
21672         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21673         (mark_constants_in_pattern): ...this new function to iterate over
21674         all the subrtxes.
21675         (mark_constants): Update accordingly.
21676
21677 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21678
21679         * varasm.c: Include rtl-iter.h.
21680         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21681         Remove the pointer to the cumulative hashval_t and just return
21682         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
21683         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21684         Accumulate the hashval_ts here instead of const_rtx_hash_1.
21685
21686 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21687
21688         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21689         Give real type of data parameter.  Remove return value.
21690         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21691         to iterate over subrtxes.
21692
21693 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21694
21695         * var-tracking.c (use_narrower_mode_test): Turn from being a
21696         for_each_rtx callback to being a function that examines each
21697         subrtx itself.
21698         (adjust_mems): Update accordingly.
21699
21700 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21701
21702         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21703         callback to being a function that examines each subrtx itself.
21704         Remove handling of null rtxes.
21705         (add_uses): Update accordingly.
21706
21707 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21708
21709         * var-tracking.c: Include rtl-iter.h.
21710         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21711         to being a function that examines each subrtx itself.
21712         (use_type): Update accordingly.
21713
21714 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21715
21716         * store-motion.c: Include rtl-iter.h.
21717         (extract_mentioned_regs_1): Delete.
21718         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21719         for_each_rtx to iterate over subrtxes.
21720
21721 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21722
21723         * sel-sched.c: Include rtl-iter.h
21724         (count_occurrences_1): Delete.
21725         (count_occurrences_equiv): Turn rtxes into const_rtxes.
21726         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21727
21728 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21729
21730         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21731         * rtlanal.c (tls_referenced_p_1): Delete.
21732         (tls_referenced_p): Take a const_rtx rather than an rtx.
21733         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21734
21735 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21736
21737         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21738         (for_each_inc_dec): Take an rtx rather than an rtx *.
21739         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21740         (cselib_record_sets): Likewise.
21741         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21742         (check_for_inc_dec): Likewise.
21743         * rtlanal.c (for_each_inc_dec_ops): Delete.
21744         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21745         rather than a pointer to the memory address.  Replace
21746         for_each_inc_dec_ops argument with separate function and data
21747         arguments.  Abort on non-autoinc addresses.
21748         (for_each_inc_dec_find_mem): Delete.
21749         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
21750         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21751
21752 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21753
21754         * rtl.h (find_all_hard_regs): Declare.
21755         * rtlanal.c (find_all_hard_regs): New function.
21756         (record_hard_reg_uses_1): Delete.
21757         (record_hard_reg_uses): Use find_all_hard_regs.
21758
21759 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21760
21761         * rtl.h (replace_label_data): Delete.
21762         (replace_label): Take the old label, new label and update-nuses flag
21763         as direct arguments.  Return void.
21764         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21765         * rtlanal.c (replace_label): Update interface as above.  Handle
21766         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
21767         iterator.  Use FOR_EACH_SUBRTX_PTR.
21768
21769 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21770
21771         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21772         with const_rtx parameters.
21773         * varasm.c (get_pool_constant): Likewise.
21774         * rtlanal.c (rtx_referenced_p_1): Delete.
21775         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21776         Assert that the rtx we're looking for is nonnull.  Allow searches
21777         for constant pool SYMBOL_REFs.
21778
21779 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21780
21781         * reload1.c: Include rtl-iter.h.
21782         (note_reg_elim_costly): Turn from being a for_each_rtx callback
21783         to being a function that examines each subrtx itself.
21784         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21785
21786 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21787
21788         * regcprop.c (cprop_find_used_regs_1): Delete.
21789         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21790
21791 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21792
21793         * regcprop.c: Include rtl-iter.h.
21794         (kill_value): Take a const_rtx.
21795         (kill_autoinc_value): Turn from being a for_each_rtx callback
21796         to being a function that examines each subrtx itself.
21797         (copyprop_hardreg_forward_1): Update accordingly.
21798
21799 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21800
21801         * reg-stack.c: Include rtl-iter.h.
21802         (subst_stack_regs_in_debug_insn): Delete.
21803         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21804         instead of for_each_rtx.
21805
21806 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21807
21808         * lower-subreg.c (find_decomposable_subregs): Turn from being
21809         a for_each_rtx callback to being a function that examines each
21810         subrtx itself.  Remove handling of null rtxes.
21811         (decompose_multiword_subregs): Update accordingly.
21812
21813 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21814
21815         * lower-subreg.c (adjust_decomposed_uses): Delete.
21816         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21817         Remove handling of null rtxes.
21818
21819 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21820
21821         * lower-subreg.c: Include rtl-iter.h.
21822         (resolve_subreg_use): Turn from being a for_each_rtx callback
21823         to being a function that examines each subrtx itself.  Remove
21824         handling of null rtxes.
21825         (resolve_reg_notes, resolve_simple_move): Update accordingly.
21826         (decompose_multiword_subregs): Likewise.
21827
21828 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21829
21830         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21831         to being a function that examines each subrtx itself.
21832         (simplify_using_condition, simplify_using_initial_values): Update
21833         accordingly.
21834
21835 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21836
21837         * loop-iv.c: Include rtl-iter.h.
21838         (find_single_def_src): New function.
21839         (replace_single_def_regs): Turn from being a for_each_rtx callback
21840         to being a function that examines each subrtx itself.
21841         (replace_in_expr, simplify_using_initial_values): Update accordingly.
21842
21843 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21844
21845         * jump.c (eh_returnjump_p_1): Delete.
21846         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21847         Remove handling of null rtxes.
21848
21849 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21850
21851         * jump.c: Include rtl-iter.h.
21852         (returnjump_p_1): Delete.
21853         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21854         Remove handling of null rtxes.
21855
21856 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21857
21858         * ira.c: Include rtl-iter.h.
21859         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21860         to being a function that examines each subrtx itself.  Remove
21861         handling of null rtxes.
21862         (update_equiv_regs): Update call accordingly.
21863
21864 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21865
21866         * fwprop.c: Include rtl-iter.h.
21867         (varying_mem_p): Turn from being a for_each_rtx callback to being
21868         a function that examines each subrtx itself.
21869         (propagate_rtx): Update accordingly.
21870
21871 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21872
21873         * function.c: Include rtl-iter.h
21874         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21875         callback to being a function that examines each subrtx itself.
21876         Return the changed flag.
21877         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21878         (instantiate_virtual_regs): Update calls accordingly.
21879
21880 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21881
21882         * final.c: Include rtl-iter.h.
21883         (mark_symbol_ref_as_used): Delete.
21884         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21885         for_each_rtx.
21886
21887 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21888
21889         * emit-rtl.c: Include rtl-iter.h.
21890         (find_auto_inc): Turn from being a for_each_rtx callback to being
21891         a function that examines each subrtx itself.  Assume the first operand
21892         to an RTX_AUTOINC is the automodified register.
21893         (try_split): Update call accordingly.
21894
21895 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21896
21897         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21898         Return a bool, inverting the result so that 0/false means "not ok".
21899         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21900         subrtxes of a CONST.
21901         (mem_loc_descriptor, add_const_value_attribute)
21902         (resolve_addr_in_expr): Update calls accordingly.
21903
21904 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21905
21906         * dwarf2out.c: Include rtl-iter.h.
21907         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21908         Remove unused data parameter.  Return a bool, inverting the result
21909         so that 0/false means "not ok".
21910         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
21911         instead of for_each_rtx.
21912
21913 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21914
21915         * dse.c: Include rtl-iter.h.
21916         (check_mem_read_rtx): Change void * parameter to real type.
21917         Remove return value.
21918         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
21919         for_each_rtx.  Don't handle null rtxes.
21920
21921 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21922
21923         * df-problems.c: Include rtl-iter.h.
21924         (find_memory): Turn from being a for_each_rtx callback to being
21925         a function that examines each subrtx itself.  Continue to look for
21926         volatile references even after a nonvolatile one has been found.
21927         (can_move_insns_across): Update calls accordingly.
21928
21929 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21930
21931         * ddg.c (walk_mems_2, walk_mems_1): Delete.
21932         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21933         to iterate over subrtxes.  Return a bool rather than an int.
21934
21935 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21936
21937         * ddg.c: Include rtl-iter.h.
21938         (mark_mem_use_1): Rename to...
21939         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
21940         instead of for_each_rtx.
21941         (mem_read_insn_p): Update accordingly.
21942
21943 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21944
21945         * cse.c (change_cc_mode_args): Delete.
21946         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21947         a function that examines each subrtx itself.  Take the fields of
21948         change_cc_mode_args as argument and return void.
21949         (cse_change_cc_mode_insn): Update calls accordingly.
21950
21951 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21952
21953         * cse.c (is_dead_reg): Change argument to const_rtx.
21954         (dead_debug_insn_data): Delete.
21955         (is_dead_debug_insn): Expand commentary.  Turn from being a
21956         for_each_rtx callback to being a function that examines
21957         each subrtx itself.  Take the fields of dead_debug_insn_data
21958         as argument.
21959         (delete_trivially_dead_insns): Update call accordingly.
21960
21961 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21962
21963         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
21964         being a for_each_rtx callback to being a function that examines
21965         each subrtx itself.
21966         (cse_extended_basic_block): Update call accordingly.
21967
21968 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21969
21970         * cse.c (check_dependence_data): Delete.
21971         (check_dependence): Change from being a for_each_rtx callback to being
21972         a function that examines all subrtxes itself.  Don't handle null rtxes.
21973         (invalidate): Update call accordingly.
21974
21975 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21976
21977         * cse.c: Include rtl-iter.h.
21978         (approx_reg_cost_1): Delete.
21979         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21980         Don't handle null rtxes.
21981
21982 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21983
21984         * cfgcleanup.c: Include rtl-iter.h.
21985         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21986         to being a function that examines each subrtx itself.
21987         (thread_jump): Update accordingly.
21988
21989 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21990
21991         * combine-stack-adj.c: Include rtl-iter.h.
21992         (record_stack_refs_data): Delete.
21993         (record_stack_refs): Turn from being a for_each_rtx callback
21994         to being a function that examines each subrtx itself.
21995         Take a pointer to the reflist.  Invert sense of return value
21996         so that true means success and false means failure.  Don't
21997         handle null rtxes.
21998         (combine_stack_adjustments_for_block): Update accordingly.
21999
22000 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22001
22002         * combine.c (record_truncated_value): Turn from being a for_each_rtx
22003         callback to a function that takes an rtx and returns a bool
22004         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
22005         for_each_rtx.
22006
22007 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22008
22009         * combine.c: Include rtl-iter.h.
22010         (unmentioned_reg_p_1): Delete.
22011         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
22012         Don't handle null rtxes.
22013
22014 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22015
22016         * calls.c: Include rtl-iter.h.
22017         (internal_arg_pointer_based_exp_1): Delete.
22018         (internal_arg_pointer_based_exp): Take a const_rtx.
22019         Use FOR_EACH_SUBRTX to iterate over subrtxes.
22020
22021 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22022
22023         * caller-save.c: Include rtl-iter.h.
22024         (add_used_regs_1): Delete.
22025         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
22026         to iterate over subrtxes.  Assert that any remaining pseudos
22027         have been spilled.
22028
22029 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22030
22031         * bt-load.c: Include rtl-iter.h.
22032         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
22033         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
22034         to iterate over subrtxes.
22035         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
22036         find_btr_use rather than btr_referenced_p.
22037
22038 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22039
22040         * alias.c: Include rtl-iter.h.
22041         (refs_newer_value_cb): Delete.
22042         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
22043
22044 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22045
22046         * rtl-iter.h: New file.
22047         * rtlanal.c: Include it.
22048         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
22049         (generic_subrtx_iterator <T>::add_single_to_queue)
22050         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
22051         (generic_subrtx_iterator <T>::free_array): New functions.
22052         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
22053         (generic_subrtx_iterator <const_rtx_accessor>)
22054         (generic_subrtx_iterator <rtx_var_accessor>
22055         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
22056         (setup_reg_subrtx_bounds): New function.
22057         (init_rtlanal): Call it.
22058
22059 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
22060
22061         PR target/62261
22062         * config/sh/sh.md (ashlsi3): Handle negative shift count for
22063         TARGET_SHMEDIA.
22064         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
22065
22066 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
22067
22068         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
22069
22070 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22071
22072         * rtl.h (JUMP_LABEL_AS_INSN): New.
22073
22074 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22075
22076         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
22077         rtx_expr_list **.
22078         (alloc_EXPR_LIST): Strengthen return type from rtx to
22079         rtx_expr_list *.
22080         (remove_free_EXPR_LIST_node): Likewise for param.
22081         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
22082         from rtx to rtx_expr_list *.
22083         * sched-int.h (struct deps_desc): Strengthen fields
22084         "pending_read_mems" and "pending_write_mems" from rtx to
22085         rtx_expr_list *.
22086
22087         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
22088         rtx to rtx_expr_list *.
22089         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
22090         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
22091         rtx_expr_list **.
22092         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
22093         from rtx to rtx_expr_list *.
22094         * loop-iv.c (simplify_using_initial_values): Strengthen local
22095         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
22096         "pnote_next" from rtx * to rtx_expr_list **.
22097         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
22098         param "exprp" from rtx * to rtx_expr_list **.
22099         (add_insn_mem_dependence): Strengthen local "mem_list" from
22100         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
22101         to rtx_expr_list *.
22102         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
22103         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
22104         param "old_mems_p" from rtx * to rtx_expr_list **.
22105         * var-tracking.c (struct adjust_mem_data): Strengthen field
22106         "side_effects" from rtx to rtx_expr_list *.
22107         (adjust_insn): Replace NULL_RTX with NULL when assigning to
22108         rtx_expr_list *.
22109         (prepare_call_arguments): Likewise.
22110
22111 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22112
22113         * function.h (struct rtl_data): Strengthen field
22114         "x_stack_slot_list" from rtx to rtx_expr_list *.
22115
22116         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
22117         when assigning to stack_slot_list.
22118
22119 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22120
22121         * function.h (struct rtl_data): Strengthen field
22122         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
22123         * rtl.h (remove_node_from_expr_list): Strengthen second param from
22124         rtx * to rtx_expr_list **.
22125
22126         * cfgbuild.c (make_edges): In loop over
22127         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
22128         rtx_expr_list *, and use methods of the latter class to clarify
22129         the code.
22130         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
22131         rtx_expr_list *, and use methods of the latter class to clarify
22132         the code.
22133         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
22134         * reload1.c (set_initial_label_offsets): Likewise for local "x".
22135         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
22136         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
22137         to rtx_expr_list *.  Use methods of the latter class to clarify
22138         the code.
22139
22140 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22141
22142         * function.h (struct expr_status): Strengthen field
22143         "x_forced_labels" from rtx to rtx_expr_list *.
22144
22145         * cfgbuild.c (make_edges): Split local "x" into two locals,
22146         strengthening one from rtx to rtx_expr_list *, and using methods
22147         of said class.
22148         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
22149         loop over forced_labels, introduce strengthen it from rtx to
22150         rtx_expr_list *, using methods to clarify the code.
22151         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
22152         to rtx_expr_list *, using methods of said class to clarify the
22153         code.
22154         * reload1.c (set_initial_label_offsets): Split local "x" into two
22155         per-loop variables, strengthening the first from rtx to
22156         rtx_expr_list * and using methods.
22157
22158 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22159
22160         * coretypes.h (class rtx_expr_list): Add forward declaration.
22161         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
22162         * gengenrtl.c (special_rtx): Add EXPR_LIST.
22163         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
22164         invariant: GET_CODE (X) == EXPR_LIST.
22165         (is_a_helper <rtx_expr_list *>::test): New.
22166         (rtx_expr_list::next): New.
22167         (rtx_expr_list::element): New.
22168         (gen_rtx_EXPR_LIST): New.
22169
22170 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22171
22172         * varasm.c (mark_constants): Convert a GET_CODE check into a
22173         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
22174         Use methods of rtx_sequence to clarify the code.
22175
22176 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22177
22178         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
22179         local "seq" via a checked cast, and use methods of rtx_sequence
22180         to simplify the code.
22181
22182 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22183
22184         * resource.c (mark_referenced_resources): Strengthen local
22185         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
22186         using methods of rtx_sequence to clarify the code.
22187         (find_dead_or_set_registers): Within the switch statement, convert
22188         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
22189         the JUMP_P handling, introduce another local "seq", adding a
22190         checked cast to rtx_sequence *.  In both cases, use methods of
22191         rtx_sequence to clarify the code.
22192         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
22193         via a checked cast, and use methods of rtx_sequence to simplify
22194         the code.
22195
22196 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22197
22198         * reorg.c (redundant_insn): In two places in the function, replace
22199         a check of GET_CODE with a dyn_cast, introducing local "seq", and
22200         usings methods of rtx_sequence to clarify the code.
22201
22202 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22203
22204         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
22205         local "seq" with a checked cast, and use methods of rtx_sequence
22206         to clarify the code.
22207
22208 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22209
22210         * function.c (contains): Introduce local "seq" for PATTERN (insn),
22211         with a checked cast, in the region for where we know it's a
22212         SEQUENCE.  Use methods of rtx_sequence.
22213
22214 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22215
22216         * final.c (get_attr_length_1): Replace GET_CODE check with a
22217         dyn_cast, introducing local "seq" and the use of methods of
22218         rtx_sequence.
22219         (shorten_branches): Likewise, introducing local "body_seq".
22220         Strengthen local "inner_insn" from rtx to rtx_insn *.
22221         (reemit_insn_block_notes): Replace GET_CODE check with a
22222         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
22223         Use methods of rtx_sequence.
22224         (final_scan_insn): Likewise, introducing local "seq" for when
22225         "body" is known to be a SEQUENCE, using its methods.
22226
22227 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22228
22229         * except.c (can_throw_external): Strengthen local "seq" from rtx
22230         to rtx_sequence *.  Use methods of rtx_sequence.
22231         (insn_nothrow_p): Likewise.
22232
22233 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22234
22235         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
22236         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
22237         Use methods of rtx_sequence.
22238         (scan_trace): Likewise for local "pat".
22239
22240 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22241
22242         * coretypes.h (class rtx_sequence): Add forward declaration.
22243         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
22244         invariant: GET_CODE (X) == SEQUENCE.
22245         (is_a_helper <rtx_sequence *>::test): New.
22246         (is_a_helper <const rtx_sequence *>::test): New.
22247         (rtx_sequence::len): New.
22248         (rtx_sequence::element): New.
22249         (rtx_sequence::insn): New.
22250
22251 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22252
22253         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
22254         rtx_insn_list **.
22255         (alloc_INSN_LIST): Strengthen return type from rtx to
22256         rtx_insn_list *.
22257         (copy_INSN_LIST): Likewise for return type and param.
22258         (concat_INSN_LIST): Likewise for both params and return type.
22259         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
22260         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
22261         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
22262         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
22263
22264         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
22265         "implicit_sets", "control_uses", "clobbers" from rtx to
22266         rtx_insn_list *.
22267         (struct deps_desc): Likewise for fields "pending_read_insns",
22268         "pending_write_insns", "pending_jump_insns",
22269         "last_pending_memory_flush", "last_function_call",
22270         "last_function_call_may_noreturn", "sched_before_next_call",
22271         "sched_before_next_jump".
22272         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
22273         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
22274
22275         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
22276         from rtx to rtx_insn_list *.
22277         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
22278         rtx_insn_list *.
22279
22280         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
22281         to rtx_insn_list **.
22282         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
22283         rtx_insn_list *.
22284         (queue_insn): Likewise for local "link".
22285         (struct haifa_saved_data): Strengthen field "insn_queue" from
22286         rtx * to rtx_insn_list **.
22287         (save_backtrack_point): Update allocation of save->insn_queue to
22288         reflect the strengthening of elements from rtx to rtx_insn_list *.
22289         (queue_to_ready): Strengthen local "link" from rtx to
22290         rtx_insn_list *; use methods "next" and "insn" when traversing the
22291         list.
22292         (early_queue_to_ready): Likewise for locals "link", "next_link",
22293         "prev_link".
22294         (schedule_block): Update allocation of insn_queue to reflect the
22295         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
22296         local "link" from rtx to rtx_insn_list *, and use methods when
22297         working it.
22298         (add_to_speculative_block): Strengthen locals "twins" and
22299         "next_node" from rtx to rtx_insn_list *, and use methods when
22300         working with them.  Strengthen local "twin" from rtx to
22301         rtx_insn *, eliminating a checked cast.
22302         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
22303         from rtx to rtx_insn_list *, and use methods when working with
22304         them.
22305
22306         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
22307         from rtx to rtx_insn_list *, adding a checked cast.
22308         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
22309         rtx_insn_list **.
22310         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
22311         "newlink" from rtx to rtx_insn_list *.  Strengthen local
22312         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
22313         from rtx to rtx_insn *.
22314         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
22315         from rtx to rtx_insn_list *.  Use methods of the latter class.
22316         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
22317         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
22318         (remove_free_INSN_LIST_node): Strengthen return type and local
22319         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
22320         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
22321         rtx_insn_list *, using "insn" method.
22322
22323         * sched-deps.c (add_dependence_list):  Strengthen param "list"
22324         from rtx to rtx_insn_list *, and use methods when working with it.
22325         (add_dependence_list_and_free):  Strengthen param "listp" from
22326         rtx * to rtx_insn_list **.
22327         (remove_from_dependence_list): Strenghten param "listp" from rtx *
22328         to rtx_insn_list **, and use methods when working with *listp.
22329         (remove_from_both_dependence_lists): Strengthen param "listp" from
22330         rtx * to rtx_insn_list **
22331         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
22332         to rtx_insn_list **.  Eliminate local "link", in favor of two new
22333         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
22334         respectively.
22335         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
22336         by introducing local "cond_deps".
22337         (remove_from_deps): Strengthen param "insn" from rtx to
22338         rtx_insn *.
22339
22340         * sched-rgn.c (concat_insn_mem_list): Strengthen param
22341         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
22342         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
22343         Use methods of rtx_insn_list.
22344
22345         * store-motion.c (struct st_expr): Strengthen fields
22346         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
22347         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
22348         rtx_insn_list *.
22349         (find_moveable_store): Split out "tmp" into multiple more-tightly
22350         scoped locals.  Use methods of rtx_insn_list *.
22351         (compute_store_table): Strengthen local "tmp" from rtx to
22352         rtx_insn *.  Use methods of rtx_insn_list *.
22353
22354 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22355
22356         * coretypes.h (class rtx_insn_list): Add forward declaration.
22357         * rtl.h (class rtx_insn_list): New subclass of rtx_def
22358         (is_a_helper <rtx_insn_list *>::test): New.
22359         (rtx_insn_list::next): New.
22360         (rtx_insn_list::insn): New.
22361         (gen_rtx_INSN_LIST): Add prototype.
22362         * emit-rtl.c (gen_rtx_INSN_LIST): New.
22363         * gengenrtl.c (special_rtx): Add INSN_LIST.
22364
22365 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22366
22367         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
22368         "prev" from rtx to rtx_insn *.
22369
22370 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22371
22372         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
22373         functions.  Require merely an rtx for now, not an rtx_insn *.
22374         (BLOCK_FOR_INSN): Likewise.
22375         (INSN_LOCATION): Likewise.
22376         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
22377
22378 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22379
22380         * rtl.h (PATTERN): Convert this macro into a pair of inline
22381         functions, for now, requiring const_rtx and rtx.
22382
22383 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22384
22385         * target.def (unwind_emit): Strengthen param "insn" from rtx to
22386         rtx_insn *.
22387         (final_postscan_insn): Likewise.
22388         (adjust_cost): Likewise.
22389         (adjust_priority): Likewise.
22390         (variable_issue): Likewise.
22391         (macro_fusion_pair_p): Likewise.
22392         (dfa_post_cycle_insn): Likewise.
22393         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
22394         (first_cycle_multipass_issue): Likewise.
22395         (dfa_new_cycle): Likewise.
22396         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
22397         (speculate_insn): Likewise for param "insn".
22398         (gen_spec_check): Likewise for params "insn" and "label".
22399         (get_insn_spec_ds): Likewise for param "insn".
22400         (get_insn_checked_ds): Likewise.
22401         (dispatch_do): Likewise.
22402         (dispatch): Likewise.
22403         (cannot_copy_insn_p): Likewise.
22404         (invalid_within_doloop): Likewise.
22405         (legitimate_combined_insn): Likewise.
22406         (needed): Likewise.
22407         (after): Likewise.
22408
22409         * doc/tm.texi: Automatically updated to reflect changes to
22410         target.def.
22411
22412         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
22413         working with insn.
22414         (schedule_block): Likewise.
22415         (sched_init): Likewise.
22416         (sched_speculate_insn): Strengthen param "insn" from rtx to
22417         rtx_insn *.
22418         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
22419         working with insn.
22420         * hooks.c (hook_bool_rtx_true): Rename to...
22421         hook_bool_rtx_insn_true): ...this, and strengthen first param from
22422         rtx to rtx_insn *.
22423         (hook_constcharptr_const_rtx_null): Rename to...
22424         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22425         first param from const_rtx to const rtx_insn *.
22426         (hook_bool_rtx_int_false): Rename to...
22427         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22428         param from rtx to rtx_insn *.
22429         (hook_void_rtx_int): Rename to...
22430         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22431         rtx to rtx_insn *.
22432
22433         * hooks.h (hook_bool_rtx_true): Rename to...
22434         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
22435         rtx to rtx_insn *.
22436         (hook_bool_rtx_int_false): Rename to...
22437         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22438         param from rtx to rtx_insn *.
22439         (hook_void_rtx_int): Rename to...
22440         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22441         rtx to rtx_insn *.
22442         (hook_constcharptr_const_rtx_null): Rename to...
22443         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22444         first param from const_rtx to const rtx_insn *.
22445
22446         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
22447         and local "prev" from rtx to rtx_insn *.
22448
22449         * sched-int.h (sched_speculate_insn): Strengthen first param from
22450         rtx to rtx_insn *.
22451
22452         * sel-sched.c (create_speculation_check): Likewise for local "label".
22453         * targhooks.c (default_invalid_within_doloop): Strengthen param
22454         "insn" from const_rtx to const rtx_insn *.
22455         * targhooks.h (default_invalid_within_doloop): Strengthen param
22456         from const_rtx to const rtx_insn *.
22457
22458         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
22459         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
22460
22461         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
22462         "insn".
22463         (arc_invalid_within_doloop): Likewise, with const.
22464
22465         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
22466         (arm_cannot_copy_insn_p): Likewise for param "insn".
22467         (arm_unwind_emit): Likewise.
22468
22469         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
22470         "dep_insn".
22471
22472         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
22473         (c6x_variable_issue): Likewise.  Removed now-redundant checked
22474         cast.
22475         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
22476
22477         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
22478         Likewise for param "insn".
22479         (epiphany_mode_after): Likewise.
22480         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
22481         params "insn", "dep_insn".
22482         (epiphany_mode_needed): Likewise for param "insn".
22483         (epiphany_mode_after): Likewise.
22484
22485         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
22486         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22487         (ix86_avx_u128_mode_needed): Likewise.
22488         (ix86_i387_mode_needed): Likewise.
22489         (ix86_mode_needed): Likewise.
22490         (ix86_avx_u128_mode_after): Likewise.
22491         (ix86_mode_after): Likewise.
22492         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
22493         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
22494         (ix86_adjust_priority): Likewise for param "insn".
22495         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
22496         (do_dispatch): Likewise.
22497         (has_dispatch): Likewise.
22498         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
22499
22500         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
22501         reflect renaming of default hook implementation from
22502         hook_constcharptr_const_rtx_null to
22503         hook_constcharptr_const_rtx_insn_null.
22504         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
22505         rtx to rtx_insn *.
22506         (ia64_variable_issue): Likewise for param "insn".
22507         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
22508         (ia64_dfa_new_cycle): Likewise.
22509         (ia64_get_insn_spec_ds): Likewise.
22510         (ia64_get_insn_checked_ds): Likewise.
22511         (ia64_speculate_insn): Likewise.
22512         (ia64_gen_spec_check): Likewise for params "insn", "label".
22513         (ia64_asm_unwind_emit): Likewise for param "insn".
22514
22515         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
22516
22517         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
22518         "insn", "def_insn".
22519         (m68k_sched_variable_issue): Likewise for param "insn".
22520
22521         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
22522         "def_insn".
22523
22524         * config/microblaze/microblaze.c (microblaze_adjust_cost):
22525         Likewise for params "insn", "dep".
22526
22527         * config/mips/mips.c (mips_adjust_cost): Likewise.
22528         (mips_variable_issue): Likewise for param "insn".
22529         (mips_final_postscan_insn): Likewise.
22530
22531         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
22532         for params "insn", "dep".
22533
22534         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
22535         "dep_insn".
22536         (pa_adjust_priority): Likewise for param "insn".
22537
22538         * config/picochip/picochip.c (picochip_sched_adjust_cost):
22539         Likewise for params "insn", "dep_insn".
22540
22541         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
22542         param "insn".
22543         (rs6000_variable_issue): Likewise.
22544         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
22545         (rs6000_debug_adjust_cost): Likewise.
22546         (rs6000_adjust_priority): Likewise for param "insn".
22547         (rs6000_use_sched_lookahead_guard): Likewise.
22548         (get_next_active_insn): Likewise for return type and both params.
22549         (redefine_groups): Likewise for params "prev_head_insn", "tail"
22550         and locals "insn", "next_insn".
22551         (pad_groups): Likewise.
22552
22553         * config/s390/s390.c (s390_adjust_priority): Likewise for param
22554         "insn".
22555         (s390_cannot_copy_insn_p): Likewise.
22556         (s390_sched_variable_issue): Likewise for third param, eliminating
22557         checked cast.
22558         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22559         default hook implementation from hook_constcharptr_const_rtx_null
22560         to hook_constcharptr_const_rtx_insn_null.
22561
22562         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22563         from rtx to rtx_insn *.
22564         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22565         (sh_variable_issue): Likewise for param "insn".
22566         (sh_dfa_new_cycle): Likewise.
22567         (sh_mode_needed): Likewise.
22568         (sh_mode_after): Likewise.
22569
22570         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22571         params "insn", "dep_insn".
22572         (hypersparc_adjust_cost): Likewise.
22573         (sparc_adjust_cost): Likewise.
22574
22575         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22576         param, eliminated checked cast.
22577         (spu_sched_adjust_cost): Likewise for first and third params.
22578
22579         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22580         params "insn" and "dep_insn" from rtx to rtx_insn *.
22581
22582         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22583
22584 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22585
22586         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22587         (set_is_load_p): ...this, updating to work on a SET pattern rather
22588         than an insn.
22589         (is_store_insn): Rename to...
22590         (set_is_store_p): ...this, updating to work on a SET pattern
22591         rather than an insn.
22592         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22593         top of function to where it is needed.  Rewrite the bogus
22594         condition that checks for "insn" and "dep" being PARALLEL to
22595         instead use single_set, introducing locals "insn_set" and
22596         "dep_set".  Given that we only ever returned "cost" for a non-pair
22597         of SETs, bail out early if we don't have a pair of SET.
22598         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22599         use the new locals "insn_set" and "dep_set", and update calls to
22600         is_load_insn and is_store_insn to be calls to set_is_load_p and
22601         set_is_store_p.
22602
22603 2014-08-27  Guozhi Wei  <carrot@google.com>
22604
22605         PR target/62262
22606         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22607         amount before using it.
22608
22609 2014-08-27  Richard Biener  <rguenther@suse.de>
22610
22611         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22612         get_maxval_strlen inside a more useful API.
22613         (gimple_fold_builtin_with_strlen): Remove and fold into ...
22614         (gimple_fold_builtin): ... caller.
22615         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22616         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22617         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22618         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22619         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22620         gimple_fold_builtin_sprintf): Adjust to compute maxval
22621         themselves.
22622
22623 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
22624
22625         PR other/62248
22626         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22627
22628 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22629             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22630             Anna Tikhonova  <anna.tikhonova@intel.com>
22631             Ilya Tocar  <ilya.tocar@intel.com>
22632             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22633             Ilya Verbin  <ilya.verbin@intel.com>
22634             Kirill Yukhin  <kirill.yukhin@intel.com>
22635             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22636
22637         * config/i386/sse.md
22638         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22639         Use `concat_tg_mode' attribute to determine asm register size.
22640
22641 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22642             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22643             Anna Tikhonova  <anna.tikhonova@intel.com>
22644             Ilya Tocar  <ilya.tocar@intel.com>
22645             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22646             Ilya Verbin  <ilya.verbin@intel.com>
22647             Kirill Yukhin  <kirill.yukhin@intel.com>
22648             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22649
22650         * config/i386/sse.md
22651         (define_mode_iterator VI48_AVX512VL): New.
22652         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22653         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22654         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22655         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22656         with VI1): Change mode iterator.
22657         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22658         with VI_ULOADSTORE_BW_AVX512VL): New.
22659         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22660         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22661         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22662         with VI1): Change mode iterator.
22663         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22664         with VI_ULOADSTORE_BW_AVX512VL): New.
22665         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22666         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22667         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22668         with VI1): Change mode iterator.
22669         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22670         with VI_ULOADSTORE_BW_AVX512VL): New.
22671         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22672         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22673         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22674         (define_insn "<avx512>_storedqu<mode>_mask" with
22675         VI48_AVX512VL): New.
22676         (define_insn "<avx512>_storedqu<mode>_mask" with
22677         VI12_AVX512VL): Ditto.
22678
22679 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22680             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22681             Anna Tikhonova  <anna.tikhonova@intel.com>
22682             Ilya Tocar  <ilya.tocar@intel.com>
22683             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22684             Ilya Verbin  <ilya.verbin@intel.com>
22685             Kirill Yukhin  <kirill.yukhin@intel.com>
22686             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22687
22688         * config/i386/sse.md
22689         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22690         (define_mode_iterator VI48_AVX512BW): New.
22691         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22692         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22693         with VI48_AVX2_48_AVX512F): New.
22694         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22695         with VI2_AVX512VL): Ditto.
22696
22697 2014-08-27  Richard Biener  <rguenther@suse.de>
22698
22699         PR middle-end/62239
22700         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22701         (fold_builtin_3): Do not fold strcat_chk here.
22702         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22703         from builtins.c.
22704         (gimple_fold_builtin): Fold strcat_chk here.
22705
22706 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
22707
22708         * dwarf2out.h (dwarf2out_decl): Remove prototype.
22709         * dwarf2out.c (dwarf2out_decl): Make static.
22710
22711 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
22712
22713         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22714
22715 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22716
22717         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22718         from rtx to rtx_insn *.
22719         (cselib_lookup_from_insn): Likewise for final param.
22720         (cselib_subst_to_values_from_insn): Likewise.
22721         (cselib_add_permanent_equiv): Likewise.
22722
22723         * cselib.c (cselib_current_insn): Likewise for this variable.
22724         (cselib_subst_to_values_from_insn): Likewise for param "insn".
22725         (cselib_lookup_from_insn): Likewise.
22726         (cselib_add_permanent_equiv): Likewise for param "insn" and local
22727         "save_cselib_current_insn".
22728         (cselib_process_insn): Replace use of NULL_RTX with NULL.
22729
22730         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22731         from rtx to rtx_insn *.
22732
22733 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22734
22735         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22736         rtx_insn *.
22737
22738 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22739
22740         * df.h (df_dump_insn_problem_function): Strengthen first param of
22741         this callback from const_rtx to const rtx_insn *.
22742         (struct df_insn_info): Strengthen field "insn" from rtx to
22743         rtx_insn *.
22744         (DF_REF_INSN): Eliminate this function, reinstating the older
22745         macro definition.
22746         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22747         (df_reg_defined): Likewise.
22748         (df_find_use): Likewise.
22749         (df_reg_used): Likewise.
22750         (df_dump_insn_top): Strengthen param 1 from const_rtx to
22751         const rtx_insn *.
22752         (df_dump_insn_bottom): Likewise.
22753         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22754         (df_insn_debug_regno): Likewise.
22755         (debug_df_insn): Likewise.
22756         (df_rd_simulate_one_insn): Likewise for param 2.
22757         (df_word_lr_simulate_defs): Likewise for param 1.
22758         (df_word_lr_simulate_uses): Likewise.
22759         (df_md_simulate_one_insn): Likewise for param 2.
22760         (df_simulate_find_noclobber_defs): Likewise for param 1.
22761         (df_simulate_find_defs): Likewise.
22762         (df_simulate_defs): Likewise.
22763         (df_simulate_uses): Likewise.
22764         (df_simulate_one_insn_backwards): Likewise for param 2.
22765         (df_simulate_one_insn_forwards): Likewise.
22766         (df_uses_create): Likewise for param 2.
22767         (df_insn_create_insn_record): Likewise for param 1.
22768         (df_insn_delete): Likewise.
22769         (df_insn_rescan): Likewise.
22770         (df_insn_rescan_debug_internal): Likewise.
22771         (df_insn_change_bb): Likewise.
22772         (df_notes_rescan): Likewise.
22773         * rtl.h (remove_death): Likewise for param 2.
22774         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22775         const rtx_insn *.
22776         * sched-int.h (reemit_notes): Strengthen param from rtx to
22777         rtx_insn *.
22778         * valtrack.h (propagate_for_debug): Likewise for param 1.
22779
22780         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22781         local "tmp_rtx" from const_rtx to const rtx_insn *.
22782         * combine.c (remove_death): Strengthen param "insn" from rtx to
22783         rtx_insn *.
22784         (move_deaths): Likewise for local "where_dead".
22785         * cse.c (delete_trivially_dead_insns): Introduce local
22786         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22787         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22788         rtx_insn *.
22789         (df_reg_defined): Likewise.
22790         (df_find_use): Likewise.
22791         (df_reg_used): Likewise.
22792         (df_dump_insn_problem_data): Strengthen param "insn" from
22793         const_rtx to const rtx_insn *.
22794         (df_dump_insn_top): Likewise.
22795         (df_dump_insn_bottom): Likewise.
22796         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22797         (df_insn_debug_regno): Likewise.
22798         (debug_df_insn): Likewise.
22799         (DF_REF_INSN): Delete.
22800         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22801         from rtx to rtx_insn *.
22802         (df_chain_insn_top_dump): Strengthen param "insn" from
22803         const_rtx to const rtx_insn *.
22804         (df_chain_insn_bottom_dump): Likewise.
22805         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22806         rtx_insn *.
22807         (df_word_lr_simulate_uses): Likewise.
22808         (df_print_note): Likewise.
22809         (df_remove_dead_and_unused_notes): Likewise.
22810         (df_set_unused_notes_for_mw): Likewise.
22811         (df_set_dead_notes_for_mw): Likewise.
22812         (df_create_unused_note): Likewise.
22813         (df_simulate_find_defs): Likewise.
22814         (df_simulate_find_uses): Likewise.
22815         (df_simulate_find_noclobber_defs): Likewise.
22816         (df_simulate_defs): Likewise.
22817         (df_simulate_uses): Likewise.
22818         (df_simulate_one_insn_backwards): Likewise.
22819         (df_simulate_one_insn_forwards): Likewise.
22820         (df_md_simulate_one_insn): Likewise.
22821         * df-scan.c (df_uses_create): Likewise.
22822         (df_insn_create_insn_record): Likewise.
22823         (df_insn_delete): Likewise.
22824         (df_insn_rescan): Likewise.
22825         (df_insn_rescan_debug_internal): Likewise.
22826         (df_insn_change_bb): Likewise.
22827         (df_notes_rescan): Likewise.
22828         (df_refs_add_to_chains): Likewise.
22829         (df_insn_refs_verify): Likewise.
22830         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22831         when invoking df_insn_delete.
22832         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22833         (set_unique_reg_note): Add checked cast.
22834         * final.c (cleanup_subreg_operands): Likewise.
22835         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22836         "insn" from rtx to rtx_insn *.
22837         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22838         "last" from rtx to rtx_insn *.
22839         * ira-emit.c (change_regs_in_insn): New function.
22840         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22841         Invoke change_regs_in_insn rather than change_regs.
22842         * ira.c (update_equiv_regs): Strengthen locals "insn",
22843         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
22844         for_each_rtx_in_insn rather than for_each_rtx.
22845         * recog.c (confirm_change_group): Add checked casts.
22846         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22847         Add checked cast.
22848         (peep2_fill_buffer): Add checked cast.
22849         * rtlanal.c (remove_note): Likewise.
22850         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22851         locals "next" "end" from rtx to rtx_insn *.
22852
22853 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22854
22855         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22856         to rtx_insn *.
22857         (struct reg_use_data): Likewise for field "insn".
22858         (insn_cost): Likewise for param.
22859         (real_insn_for_shadow): Likewise for return type and param.
22860         (increase_insn_priority): Likewise for param 1.
22861         (debug_dependencies): Likewise for both params.
22862
22863         * haifa-sched.c (insn_delay): Likewise for param "insn".
22864         (real_insn_for_shadow): Likewise for return type and param "insn".
22865         (update_insn_after_change): Likewise for param "insn".
22866         (recompute_todo_spec): Likewise for param "next" and locals "pro",
22867         "other".
22868         (insn_cost): Likewise for param "insn".
22869         (increase_insn_priority): Likewise.
22870         (calculate_reg_deaths): Likewise.
22871         (setup_insn_reg_pressure_info): Likewise.
22872         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22873         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22874         (model_recompute): Likewise.
22875         (must_restore_pattern_p): Likewise for param "next".
22876         (model_excess_cost): Likewise for param "insn".
22877         (queue_remove): Likewise.
22878         (adjust_priority): Likewise for param "prev".
22879         (update_register_pressure): Likewise for param "insn".
22880         (setup_insn_max_reg_pressure): Likewise for local "insn".
22881         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22882         (model_add_to_schedule): Likewise.
22883         (model_reset_queue_indices): Likewise for local "insn".
22884         (unschedule_insns_until): Strengthen local "recompute_vec" from
22885         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
22886         "con" from rtx to rtx_insn *.
22887         (restore_last_backtrack_point): Likewise for both locals "x". Add
22888         checked casts.
22889         (estimate_insn_tick): Likewise for param "insn".
22890         (commit_schedule): Likewise for params "prev_head", "tail" and
22891         local "x".
22892         (verify_shadows): Likewise for locals "i1", "i2".
22893         (dump_insn_stream): Likewise for params "head", "tail" and locals
22894         "next_tail", "insn".
22895         (schedule_block): Likewise for locals "insn", "x".  Add a checked
22896         cast.
22897         (fix_inter_tick): Likewise for params "head", "tail".
22898         (create_check_block_twin): Likewise for local "jump".
22899         (haifa_change_pattern): Likewise for param "insn".
22900         (haifa_speculate_insn): Likewise.
22901         (dump_new_block_header): Likewise for params "head", "tail".
22902         (fix_jump_move): Likewise for param "jump".
22903         (move_block_after_check): Likewise.
22904         (sched_init_insn_luid): Likewise for param "insn".
22905         (sched_init_luids): Likewise for local "insn".
22906         (insn_luid): Likewise for param "insn".
22907         (init_h_i_d): Likewise.
22908         (haifa_init_h_i_d): Likewise for local "insn".
22909         (haifa_init_insn): Likewise for param "insn".
22910         * sched-deps.c (add_dependence): Likewise for local "real_pro",
22911         "other".
22912         (create_insn_reg_use): Likewise for param "insn".
22913         (setup_insn_reg_uses): Likewise.  Add a checked cast.
22914         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22915         "tail" from rtx to rtx_insn *.
22916         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22917         "insn", "next_tail".
22918
22919 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22920
22921         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22922         from rtx to rtx_insn *.
22923         (model_add_to_schedule): Likewise for locals "start", "end",
22924         "iter".
22925
22926 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22927
22928         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22929         rtx_insn *.
22930         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
22931         "to" and locals "insn", "next", "copy".  Remove now-redundant
22932         checked cast.
22933
22934 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22935
22936         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22937         rtx_insn * and param 4 from rtx * to rtx_insn **.
22938         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22939         param 2 from rtx * to rtx_insn **.
22940
22941         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22942         rtx_insn * and final param from rtx * to rtx_insn **.
22943
22944         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22945         from rtx to rtx_insn *.
22946         (try_head_merge_bb): Likewise for both locals named "move_upto".
22947         * df-problems.c (can_move_insns_across): Likewise for params
22948         "from", "to", "across_from", "across_to" and locals "insn",
22949         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
22950         rtx_insn **.
22951         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22952         from rtx to rtx_insn *.
22953         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22954         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22955         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22956         rtx_insn *.
22957         (noce_try_abs): Likewise.
22958         (noce_get_condition): Likewise for param "jump".  Strengthen param
22959         "earliest" from rtx * to rtx_insn **.
22960         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22961         rtx_insn *.
22962         (find_cond_trap): Likewise.
22963         (dead_or_predicable): Likewise for local "earliest".
22964         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
22965         checked cast.
22966         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22967         and local "prev".  Strengthen param "earliest" from rtx * to
22968         rtx_insn **.
22969         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22970         Strengthen param "earliest" from rtx * to rtx_insn **.
22971
22972 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22973
22974         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22975         "to" and local "insn" from rtx to rtx_insn *.
22976
22977 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22978
22979         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22980         from rtx to rtx_insn *.
22981         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22982         (code_motion_path_driver): Likewise for local "last_insn".
22983         (simplify_changed_insns): Likewise for local "insn".
22984
22985 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22986
22987         * rtl.h (push_to_sequence): Strengthen param from rtx to
22988         rtx_insn *.
22989         (push_to_sequence2): Likewise for both params.
22990         (delete_insns_since): Likewise for param.
22991         (reorder_insns_nobb): Likewise for all three params.
22992         (set_new_first_and_last_insn): Likewise for both params.
22993
22994         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22995         rtx_insn *.  Remove now-redundant cast.
22996         (set_last_insn): Likewise.
22997
22998         * builtins.c (expand_builtin_return): Strengthen local
22999         "call_fusage" from rtx to rtx_insn *.
23000         * cfgrtl.c (create_basic_block_structure): Likewise for local
23001         "after".
23002         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
23003         "first", "last" and local "insn".
23004         (delete_insns_since): Likewise for param "from".
23005         (reorder_insns_nobb): Likewise for params "from", "to", "after"
23006         and local "x".
23007         (push_to_sequence): Likewise for param "first" and local "last".
23008         (push_to_sequence2): Likewise for params "first" and "last".
23009         * lra.c (emit_add3_insn): Likewise for local "last".
23010         (lra_emit_add): Likewise.
23011         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
23012         "last_insn".
23013         (process_address_1): Likewise for locals "insn", last".
23014         * modulo-sched.c (ps_first_note): Likewise for return type.
23015         * optabs.c (expand_binop_directly): Likewise for param "last".
23016
23017 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23018
23019         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
23020         to rtx_insn*.
23021         * emit-rtl.c (get_last_insn_anywhere): Likewise.
23022
23023 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23024
23025         * function.h (struct sequence_stack): Strengthen fields "first"
23026         and "last" from rtx to rtx_insn *.
23027         (struct emit_status): Likewise for fields "x_first_insn" and
23028         "x_last_insn".
23029
23030         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
23031         (set_first_insn): Add checked cast.
23032         (get_last_insn): Remove now-redundant checked cast.
23033         (set_last_insn): Add checked cast.
23034
23035         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
23036         "saved_first" and "saved_last" from rtx to rtx_insn *.
23037
23038 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23039
23040         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
23041         (unlink_insn_chain): Strengthen both params from rtx to
23042         rtx_insn *.
23043
23044         * cfgrtl.c (cfg_layout_function_header): Likewise for this
23045         variable.
23046         (unlink_insn_chain): Likewise for params "first" and "last".
23047         Remove now-redundant checked cast.
23048         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
23049         (fixup_reorder_chain): Strengthen local "insn" from rtx to
23050         rtx_insn *.
23051         * emit-rtl.c (link_insn_into_chain): Likewise for all three
23052         params.
23053         (add_insn): Likewise for param "insn" and local "prev".
23054         (add_insn_after_nobb): Likewise for both params and local "next".
23055         (add_insn_before_nobb): Likewise for both params and local "prev".
23056         (add_insn_after): Rename param "after" to "uncast_after",
23057         introducing local "after" with another checked cast.
23058         (add_insn_before): Rename params "insn" and "before", giving them
23059         "uncast_" prefixes, adding the old names back using checked casts.
23060         (emit_note_after): Likewise for param "after".
23061         (emit_note_before): Likewise for param "before".
23062         (emit_label): Add a checked cast.
23063
23064 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23065
23066         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
23067         "insn" from rtx to rtx_insn *.
23068
23069         * cselib.c (cselib_record_sets_hook): Likewise.
23070
23071         * var-tracking.c (add_with_sets): Likewise, renaming back from
23072         "uncast_insn" to "insn" and eliminating the checked cast from rtx
23073         to rtx_insn *.
23074
23075 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23076
23077         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
23078         and "header_" from rtx to rtx_insn *.
23079         (struct basic_block_d): Likewise for field "head_" within "x"
23080         field of union basic_block_il_dependent.
23081         (BB_HEAD): Drop function...
23082         (SET_BB_HEAD): ...and this function in favor of...
23083         (BB_HEAD): ...reinstate macro.
23084         (BB_END): Drop function...
23085         (SET_BB_END): ...and this function in favor of...
23086         (BB_END): ...reinstate macro.
23087         (BB_HEADER): Drop function...
23088         (SET_BB_HEADER): ...and this function in favor of...
23089         (BB_HEADER): ...reinstate macro.
23090
23091         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
23092         (fix_crossing_unconditional_branches): Likewise.
23093         * caller-save.c (save_call_clobbered_regs): Likewise.
23094         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
23095         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
23096         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
23097         (merge_blocks_move_successor_nojumps): Likewise.
23098         (outgoing_edges_match): Update use of for_each_rtx to
23099         for_each_rtx_in_insn.
23100         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
23101         (expand_gimple_cond): Likewise.
23102         (expand_gimple_tailcall): Likewise.
23103         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
23104         SET_BB_END.
23105         (construct_exit_block): Drop use of SET_BB_END.
23106         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
23107         rtx_insn *.
23108         (delete_insn): Rename param "insn" to "uncast_insn", introducing
23109         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
23110         SET_BB_HEAD and SET_BB_END.
23111         (create_basic_block_structure): Drop use of SET_BB_HEAD and
23112         SET_BB_END.
23113         (rtl_delete_block): Drop use of SET_BB_HEAD.
23114         (rtl_split_block): Drop use of SET_BB_END.
23115         (emit_nop_for_unique_locus_between): Likewise.
23116         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
23117         (block_label): Drop use of SET_BB_HEAD.
23118         (fixup_abnormal_edges): Drop use of SET_BB_END.
23119         (record_effective_endpoints): Drop use of SET_BB_HEADER.
23120         (relink_block_chain): Likewise.
23121         (fixup_reorder_chain): Drop use of SET_BB_END.
23122         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
23123         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
23124         rtx_insn **.  Drop use of SET_BB_HEADER.
23125         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
23126         SET_BB_HEAD.
23127         (BB_HEAD): Delete this function.
23128         (SET_BB_HEAD): Likewise.
23129         (BB_END): Likewise.
23130         (SET_BB_END): Likewise.
23131         (BB_HEADER): Likewise.
23132         (SET_BB_HEADER): Likewise.
23133         * emit-rtl.c (add_insn_after):  Rename param "insn" to
23134         "uncast_insn", adding a new local "insn" and a checked cast to
23135         rtx_insn *.  Drop use of SET_BB_END.
23136         (remove_insn): Strengthen locals "next" and "prev" from rtx to
23137         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
23138         (reorder_insns): Drop use of SET_BB_END.
23139         (emit_insn_after_1): Strengthen param "first" and locals "last",
23140         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
23141         (emit_pattern_after_noloc): Add checked cast.
23142         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
23143         (restore_other_notes): Likewise.
23144         (move_insn): Likewise.
23145         (sched_extend_bb): Likewise.
23146         (fix_jump_move): Likewise.
23147         * ifcvt.c (noce_process_if_block): Likewise.
23148         (dead_or_predicable): Likewise.
23149         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
23150         * reg-stack.c (change_stack): Drop use of SET_BB_END.
23151         * sel-sched-ir.c (sel_move_insn): Likewise.
23152         * sel-sched.c (move_nop_to_previous_block): Likewise.
23153
23154         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
23155         SET_BB_END.
23156         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
23157
23158 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23159
23160         * basic-block.h (create_basic_block_structure): Strengthen params
23161         1 "head" and 2 "end" from rtx to rtx_insn *.
23162         * cfgrtl.c (create_basic_block_structure): Likewise.
23163         (rtl_create_basic_block): Update casts from void * to rtx to
23164         rtx_insn *, so that we can pass them as rtx_insn * to
23165         create_basic_block_structure.
23166         * sel-sched-ir.c (sel_create_basic_block): Likewise.
23167
23168 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23169
23170         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
23171         rtx_insn **.
23172         (check_for_inc_dec): Strengthen param "insn" from rtx to
23173         rtx_insn *.
23174
23175         * cselib.h (cselib_process_insn): Likewise.
23176
23177         * cselib.c (cselib_record_sets): Likewise.
23178         (cselib_process_insn): Likewise.
23179
23180         * dse.c (struct insn_info): Likewise for field "insn".
23181         (check_for_inc_dec_1): Likewise for local "insn".
23182         (check_for_inc_dec): Likewise for param "insn".
23183         (scan_insn): Likewise.
23184         (dse_step1): Likewise for local "insn".
23185
23186         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
23187         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
23188
23189 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23190
23191         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
23192         from rtx to rtx_insn *.
23193         (DEP_PRO): Delete this function and...
23194         (SET_DEP_PRO): ...this function in favor of...
23195         (DEP_PRO): ...reinstate this macro.
23196         (DEP_CON): Delete this function and...
23197         (SET_DEP_CON): ...this function in favor of...
23198         (DEP_CON): ...reinstate this old macro.
23199         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
23200         (init_dep): Likewise.
23201         (set_priorities): Likewise for both params.
23202         (sd_copy_back_deps): Likewise for params 1 and 2.
23203
23204         * haifa-sched.c (priority): Likewise for param "insn" and local
23205         "next".
23206         (set_priorities): Likewise for params "head" and "tail" and local
23207         "insn".
23208         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
23209         local "consumer".
23210         (add_to_speculative_block): Add a checked cast.
23211         (create_check_block_twin): Drop use of SET_DEP_CON.
23212         (add_jump_dependencies): Strengthen params "insn" and "jump" from
23213         rtx to rtx_insn *.
23214
23215         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
23216         Drop use of SET_DEP_PRO
23217         (init_dep): Strengthen params "pro" and "con" from rtx to
23218         rtx_insn *.
23219         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
23220         use of SET_DEP_CON.
23221         (DEP_PRO): Delete.
23222         (DEP_CON): Delete.
23223         (SET_DEP_PRO): Delete.
23224         (SET_DEP_CON): Delete.
23225
23226 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23227
23228         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
23229         from rtx to rtx_insn *.
23230         (VINSN_INSN_RTX): Eliminate rvalue function and...
23231         (SET_VINSN_INSN): ...lvalue function in favor of...
23232         (VINSN_INSN_RTX): reinstate this old macro.
23233
23234         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
23235         in favor of VINSN_INSN_RTX.
23236         (VINSN_INSN_RTX): Delete this function.
23237         (SET_VINSN_INSN_RTX): Likewise.
23238
23239 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23240
23241         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
23242         (BND_TO): Delete this function and...
23243         (SET_BND_TO): ...this functions in favor of...
23244         (BND_TO): ...reinstating this macro.
23245         (struct _fence): Strengthen field "executing_insns" from
23246         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
23247         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
23248         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
23249         and param "insn" from rtx to insn_t.
23250         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
23251         rtx_insn *.
23252
23253         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
23254         vec<rtx_insn *> .
23255         (rtx_vec_t): Likewise.
23256         (struct sched_deps_info_def): Strengthen param of "start_insn"
23257         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
23258         "note_mem_dep" callback and first param of "note_dep" callback.
23259
23260         * haifa-sched.c (add_to_speculative_block): Strengthen param
23261         "insn" from rtx to rtx_insn *.
23262         (clear_priorities): Likewise.
23263         (calc_priorities): Likewise for local "insn".
23264
23265         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
23266         Remove redundant checked cast.
23267         (haifa_note_mem_dep): Likewise for param "pending_insn".
23268         (haifa_note_dep): Likewise for param "elem".
23269         (note_mem_dep): Likewise for param "e".
23270         (sched_analyze_1): Add checked casts.
23271         (sched_analyze_2): Likewise.
23272
23273         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
23274         from rtx to rtx_insn *.
23275         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
23276         from vec<rtx> * to vec<rtx_insn *> *.
23277
23278         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
23279         scaffolding.
23280         (flist_add): Strengthen param "executing_insns" from
23281         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
23282         (advance_deps_context): Remove now-redundant checked cast.
23283         (init_fences): Replace uses of NULL_RTX with NULL.
23284         (merge_fences): Strengthen params "last_scheduled_insn" and
23285         "sched_next" from rtx to rtx_insn * and "executing_insns" from
23286         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
23287         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
23288         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
23289         an instruction, rather than doing double-duty as a pattern.
23290         (return_nop_to_pool): Update for change of insn_t.
23291         (deps_init_id): Remove now-redundant checked cast.
23292         (struct sched_scan_info_def): Strengthen param of "init_insn"
23293         callback from rtx to insn_t.
23294         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
23295         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
23296         NULL.
23297         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
23298         "end" from rtx to rtx_insn *.
23299         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
23300         (rtx insn_rtx, bool force_unique_p)
23301         (BND_TO): Delete function.
23302         (SET_BND_TO): Delete function.
23303
23304         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
23305         rtx to rtx_insn *.
23306         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
23307         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
23308         rtx to rtx_insn *.
23309         (undo_transformations): Likewise for param "insn".
23310         (update_liveness_on_insn): Likewise.
23311         (compute_live_below_insn): Likewise for param "insn" and local
23312         "succ".
23313         (update_data_sets): Likewise for param "insn".
23314         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
23315         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
23316         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
23317         rtx_insn *.
23318         (move_cond_jump): Likewise for param "insn".
23319         (move_cond_jump): Drop use of SET_BND_TO.
23320         (compute_av_set_on_boundaries): Likewise.
23321         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
23322         (update_and_record_unavailable_insns): Strengthen local "bb_end"
23323         from rtx to rtx_insn *.
23324         (maybe_emit_renaming_copy): Likewise for param "insn".
23325         (maybe_emit_speculative_check): Likewise.
23326         (handle_emitting_transformations): Likewise.
23327         (remove_insn_from_stream): Likewise.
23328         (code_motion_process_successors): Strengthen local "succ" from rtx
23329         to insn_t.
23330
23331 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23332
23333         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
23334         ilist_t, not _xlist_t;
23335         (ILIST_INSN): Define in terms of new union field "insn".
23336         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
23337         _XLIST_NEXT.
23338         (struct _list_node): Add new field "insn" to the union, of type
23339         insn_t.
23340         (ilist_add): Replace macro with an inline function, requiring an
23341         insn_t.
23342         (ilist_remove): Define this macro directly in terms of
23343         _list_remove, rather than indirectly via _xlist_remove.
23344         (ilist_clear): Likewise, in terms of _list_clear rather than
23345         _xlist_clear.
23346         (ilist_is_in_p): Replace macro with an inline function, requiring
23347         an insn_t.
23348         (_list_iter_cond_insn): New function.
23349         (ilist_iter_remove): Define this macro directly in terms of
23350         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
23351         (ilist_iterator): Define directly in terms of _list_iterator
23352         rather than indirectly through _xlist_iterator.
23353         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
23354         than in terms of _FOR_EACH_X.
23355         (FOR_EACH_INSN_1): Likewise.
23356
23357 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
23358
23359         PR target/60606
23360         PR target/61330
23361         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
23362         DECL_HARD_REGISTER and return for invalid register specifications.
23363         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
23364         DECL_HARD_REGISTER, call expand_one_error_var.
23365         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
23366         CC_REGNUM with non-MODE_CC modes.
23367         (arm_regno_class): Return NO_REGS for PC_REGNUM.
23368
23369 2014-08-26  Marek Polacek  <polacek@redhat.com>
23370
23371         PR c/61271
23372         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
23373
23374 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
23375
23376         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
23377         qi cost; add di cost.
23378         (cortexa57_addrcost_table): Likewise.
23379
23380 2014-08-26  Marek Polacek  <polacek@redhat.com>
23381
23382         PR c/61271
23383         * expr.c (is_aligning_offset): Remove logical not.
23384
23385 2014-08-26  Marek Polacek  <polacek@redhat.com>
23386
23387         PR c/61271
23388         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
23389         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
23390
23391 2014-08-26  Richard Biener  <rguenther@suse.de>
23392
23393         PR tree-optimization/62175
23394         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
23395         expand possibly trapping operations.
23396
23397 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23398
23399         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
23400         "insn" from rtx to rtx_insn *.
23401         (permute_load): Likewise for param "insn".
23402         (permute_store): Likewise.
23403         (handle_special_swappables): Likewise for local "insn".
23404         (replace_swap_with_copy): Likewise for locals "insn" and
23405         "new_insn".
23406         (rs6000_analyze_swaps): Likewise for local "insn".
23407
23408 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23409
23410         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
23411         to rtx_insn *.
23412
23413 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23414
23415         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
23416         "note_list" from rtx to rtx_insn *.
23417         (BB_NOTE_LIST): Replace this function and...
23418         (SET_BB_NOTE_LIST): ...this function with...
23419         (BB_NOTE_LIST): ...the former macro implementation.
23420
23421         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
23422         local "from_start" from rtx to rtx_insn *.  Strengthen param
23423         "to_endp" from rtx * to rtx_insn **.
23424
23425         * haifa-sched.c (concat_note_lists): Likewise.
23426         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
23427         BB_NOTE_LIST.
23428         (sel_restore_notes): Likewise.
23429         (move_bb_info): Likewise.
23430         (BB_NOTE_LIST): Delete this function.
23431         (SET_BB_NOTE_LIST): Delete this function.
23432         * sel-sched.c (create_block_for_bookkeeping): Eliminate
23433         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
23434
23435 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23436
23437         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
23438         from rtx * to rtx_insn **.
23439         (reorder2): Likewise.
23440         (dependencies_evaluation_hook): Strengthen params "head", "tail"
23441         from rtx to rtx_insn *.
23442
23443         * doc/tm.texi: Update mechanically for above change to target.def.
23444
23445         * sched-int.h (note_list): Strengthen this variable from rtx to
23446         rtx_insn *.
23447         (remove_notes): Likewise for both params.
23448         (restore_other_notes): Likewise for return type and first param.
23449         (struct ready_list): Strengthen field "vec" from rtx * to
23450         rtx_insn **.
23451         (struct dep_replacement): Strenghten field "insn" from rtx to
23452         rtx_insn *.
23453         (struct deps_desc): Likewise for fields "last_debug_insn",
23454         "last_args_size".
23455         (struct haifa_sched_info): Likewise for callback field
23456         "can_schedule_ready_p"'s param, for first param of "new_ready"
23457         callback field, for both params of "rank" callback field, for
23458         first field of "print_insn" callback field (with a const), for
23459         both params of "contributes_to_priority" callback, for param
23460         of "insn_finishes_block_p" callback, for fields "prev_head",
23461         "next_tail", "head", "tail", for first param of "add_remove_insn"
23462         callback, for first param of "begin_schedule_ready" callback, for
23463         both params of "begin_move_insn" callback, and for second param
23464         of "advance_target_bb" callback.
23465         (add_dependence): Likewise for params 1 and 2.
23466         (sched_analyze): Likewise for params 2 and 3.
23467         (deps_analyze_insn): Likewise for param 2.
23468         (ready_element): Likewise for return type.
23469         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23470         (try_ready): Strenghten param from rtx to rtx_insn *.
23471         (sched_emit_insn): Likewise for return type.
23472         (record_delay_slot_pair): Likewise for params 1 and 2.
23473         (add_delay_dependencies): Likewise for param.
23474         (contributes_to_priority): Likewise for both params.
23475         (find_modifiable_mems): Likewise.
23476
23477         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
23478         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
23479         "first_older_only_insn" from rtx to rtx_insn *.
23480         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
23481         rtx_insn **.
23482
23483         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
23484         "last_scheduled_iter0" from rtx to rtx_insn *.
23485         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
23486         (c6x_sched_reorder_1): Strengthen param "ready" and locals
23487         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
23488         "insn" from rtx to rtx_insn *.
23489         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
23490         rtx_insn **.
23491         (c6x_sched_reorder2): Strengthen param "ready" and locals
23492         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
23493         "insn" from rtx to rtx_insn *.
23494         (c6x_variable_issue):  Add a checked cast when assigning from insn
23495         to ss.last_scheduled_iter0.
23496         (split_delayed_branch): Strengthen param "insn" and local "i1"
23497         from rtx to rtx_insn *.
23498         (split_delayed_nonbranch): Likewise.
23499         (undo_split_delayed_nonbranch): Likewise for local "insn".
23500         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
23501         "entry_after", "end_packet", "head_insn", "tail_insn",
23502         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
23503         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
23504         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
23505         but add a checked cast on loop->start_label.  Consolidate calls to
23506         avoid assigning result of gen_spkernel to "insn", now an
23507         rtx_insn *.
23508
23509         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
23510         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
23511         rtx to rtx_insn *.
23512         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
23513         rtx_insn **.  Strengthen locals "top", "next" from rtx to
23514         rtx_insn *.
23515         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
23516         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
23517         (add_parameter_dependencies): Strengthen params "call", "head" and
23518         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
23519         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
23520         (add_dependee_for_func_arg): Likewise for param "arg" and local
23521         "insn".
23522         (ix86_dependencies_evaluation_hook): Likewise for params "head",
23523         "tail" and locals "insn", "first_arg".
23524
23525         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
23526         for params "head", "tail" and locals "insn", "next", "next_tail".
23527         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
23528         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
23529         "insn", "lowest", "highest" from rtx to rtx_insn *.
23530         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
23531         rtx_insn **.
23532         (ia64_sched_reorder2): Likewise.
23533
23534         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
23535         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
23536         from rtx * to rtx_insn **.
23537         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
23538         rtx_insn **.
23539         (mep_print_sched_insn): Strengthen param "insn" from rtx to
23540         rtx_insn *.
23541         (mep_sched_reorder): Strengthen param "ready" from rtx * to
23542         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
23543         to rtx_insn *.
23544
23545         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23546         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
23547         to rtx_insn *.
23548         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23549         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
23550         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23551         rtx_insn **.
23552         (vr4130_reorder): Likewise.
23553         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
23554         rtx to rtx_insn *.
23555         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23556         rtx_insn **.
23557         (mips_sched_reorder): Likewise.
23558         (mips_sched_reorder2): Likewise.
23559
23560         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23561
23562         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23563         Strengthen local "tmp" from rtx to rtx_insn *.
23564         (rs6000_sched_reorder2): Likewise.
23565
23566         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23567         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23568         (s390_sched_reorder): Strengthen param "ready" from rtx * to
23569         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
23570
23571         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23572         "tmp2" from rtx to rtx_insn *.
23573         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23574         Strengthen local "insn" from rtx to rtx_insn *.
23575         (ready_reorder): Strengthen param "ready" from rtx * to
23576         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23577         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
23578         (sh_reorder2): Likewise.
23579
23580         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
23581         local "insn" from rtx to rtx_insn *.
23582
23583         * haifa-sched.c (note_list): Strengthen this variable from rtx to
23584         rtx_insn *.
23585         (scheduled_insns): Strengthen this variable from vec<rtx> to
23586         vec<rtx_insn *>.
23587         (set_modulo_params): Likewise for locals "i1", "i2".
23588         (record_delay_slot_pair): Likewise for params "i1", "i2".
23589         (add_delay_dependencies): Likewise for param "insn".
23590         (cond_clobbered_p): Likewise.
23591         (recompute_todo_spec): Likewise for local "prev".
23592         (last_scheduled_insn): Likewise for this variable.
23593         (nonscheduled_insns_begin): Likewise.
23594         (model_set_excess_costs): Strengthen param "insns" from rtx * to
23595         rtx_insn **.
23596         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23597         rtx_insn *.
23598         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23599         Strengthen local "insn" from rtx to rtx_insn *.
23600         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23601         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23602         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23603         (ready_remove_first): Likewise for return type and local "t".
23604         (ready_element): Likewise for return type.
23605         (ready_remove): Likewise for return type and local "t".
23606         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23607         (check_clobbered_conditions): Strengthen local "x" from rtx to
23608         rtx_insn *, adding a checked cast.
23609         (schedule_insn): Likewise for param "insn".
23610         (remove_notes): Likewise for params "head", "tail" and locals
23611         "next_tail", "insn", "next".
23612         (struct haifa_saved_data): Likewise for fields
23613         "last_scheduled_insn", "nonscheduled_insns_begin".
23614         (save_backtrack_point): Update for change to field "vec" of
23615         struct ready_list.
23616         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23617         rtx_insn **.
23618         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
23619         from rtx to rtx_insn *
23620         (resolve_dependencies): Strengthen param "insn" from rtx to
23621         rtx_insn *
23622         (restore_other_notes): Likewise for return type, for param "head"
23623         and local "note_head".
23624         (undo_all_replacements): Likewise for local "insn".
23625         (first_nonscheduled_insn): Likewise for return type and local "insn".
23626         (queue_to_ready): Likewise for local "insn", adding checked casts.
23627         (early_queue_to_ready): Likewise for local "insn".
23628         (debug_ready_list_1): Strengthen local "p" from rtx * to
23629         rtx_insn **.
23630         (move_insn): Strengthen param "insn" and local "note" from rtx to
23631         rtx_insn *
23632         (insn_finishes_cycle_p): Likewise for param "insn".
23633         (max_issue): Likewise for local "insn".
23634         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
23635         to rtx_insn **.
23636         (commit_schedule): Strengthen param "prev_head" and local "insn"
23637         from rtx to rtx_insn *
23638         (prune_ready_list): Likewise for local "insn".
23639         (schedule_block): Likewise for locals "prev_head", "head", "tail",
23640         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23641         (set_priorities): Likewise for local "prev_head".
23642         (try_ready): Likewise for param "next".
23643         (fix_tick_ready): Likewise.
23644         (change_queue_index): Likewise.
23645         (sched_extend_ready_list): Update for change to field "vec" of
23646         struct ready_list.
23647         (generate_recovery_code): Strengthen param "insn" from rtx to
23648         rtx_insn *.
23649         (begin_speculative_block): Likewise.
23650         (create_check_block_twin): Likewise for param "insn" and locals
23651         "label", "check", "twin".  Introduce local "check_pat" to avoid
23652         "check" being used as a plain rtx before being used as an insn.
23653         (fix_recovery_deps): Add a checked cast to rtx_insn * when
23654         extracting elements from ready_list.
23655         (sched_remove_insn): Strengthen param "insn" from rtx to
23656         rtx_insn *.
23657         (sched_emit_insn): Likewise for return type.
23658         (ready_remove_first_dispatch): Likewise for return type and local
23659         "insn".
23660
23661         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23662
23663         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23664         const rtx_insn *.
23665
23666         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23667         from rtx to rtx_insn *.
23668         (add_dependence_list): Likewise for param "insn".  Add a checked
23669         cast.
23670         (add_dependence_list_and_free): Strengthen param "insn" from rtx
23671         to rtx_insn *.  Strengthen param "list_p" from rtx * to
23672         rtx_insn **.
23673         (chain_to_prev_insn): Strengthen param "insn" and locals
23674         "prec_nonnote", "i" from rtx to rtx_insn *.
23675         (flush_pending_lists): Likewise for param "insn".
23676         (cur_insn): Likewise for this variable.
23677         (haifa_start_insn): Add a checked cast.
23678         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23679         (sched_analyze_reg): Likewise for param "insn".
23680         (sched_analyze_1): Likewise.
23681         (sched_analyze_2): Likewise.  Add checked casts.
23682         (sched_analyze_insn): Likewise.  Also for local "prev".
23683         (deps_analyze_insn): Likewise for param "insn".
23684         (sched_analyze): Likewise for params "head", "tail" and local "insn".
23685         (add_dependence_1): Likewise for params "insn", "elem".
23686         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23687         (parse_add_or_inc): Likewise for param "insn".
23688         (find_inc): Likewise for local "inc_cand".
23689         (find_modifiable_mems): Likewise for params "head", "tail" and
23690         locals "insn", "next_tail".
23691
23692         * sched-ebb.c (init_ready_list): Likewise for local "insn".
23693         (begin_schedule_ready): Likewise for param "insn".
23694         (begin_move_insn): Likewise for params "insn" and "last".
23695         (ebb_print_insn): Strengthen param "insn" from const_rtx to
23696         const rtx_insn *.
23697         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23698         (ebb_contributes_to_priority): Likewise for params "next", "insn".
23699         (ebb_add_remove_insn): Likewise for param "insn".
23700         (advance_target_bb): Likewise.
23701
23702         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23703         "insn".
23704         (check_live): Likewise for param "insn".
23705         (init_ready_list): Likewise for local "insn".
23706         (can_schedule_ready_p): Likewise for param "insn".
23707         (begin_schedule_ready): Likewise.
23708         (new_ready): Likewise for param "next".
23709         (rgn_print_insn): Likewise for param "insn".
23710         (rgn_rank): Likewise for params "insn1", "insn2".
23711         (contributes_to_priority): Likewise for params "next", "insn".
23712         (rgn_insn_finishes_block_p): Likewise for param "insn".
23713         (add_branch_dependences): Likewise for params "head", "tail" and
23714         locals "insn", "last".
23715         (rgn_add_remove_insn): Likewise for param "insn".
23716         (advance_target_bb): Likewise.
23717
23718         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23719         const_rtx to const rtx_insn *.
23720
23721         * sel-sched-dump.h (sel_print_insn): Likewise.
23722
23723         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23724         (deps_init_id): Likewise.
23725
23726         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23727         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23728         rtx_insn **.
23729
23730 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23731
23732         * output.h (final_start_function): Strengthen param 1 from rtx to
23733         rtx_insn *.
23734
23735         * final.c (final_start_function): Likewise, renaming back from
23736         "uncast_first" to "first", and dropping the checked cast from rtx
23737         to rtx_insn *.
23738
23739 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23740
23741         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23742         * final.c (final): Likewise.  Rename param back from
23743         "uncast_first" to "first" and eliminate the checked cast from rtx
23744         to rtx_insn *.
23745
23746 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23747
23748         * output.h (shorten_branches): Strengthen param from rtx to
23749         rtx_insn *.
23750
23751         * final.c (shorten_branches): Likewise, renaming param back from
23752         "uncast_first" to "first", and dropping the checked cast from rtx
23753         to rtx_insn *.
23754
23755         * genattr.c (gen_attr): Likewise when writing out the prototype of
23756         shorten_branches.
23757
23758 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23759
23760         * sched-int.h (struct haifa_sched_info): Strengthen fields
23761         "prev_head" and "next_tail" from rtx to rtx_insn *.
23762
23763 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23764
23765         * rtl.h (rtx_jump_table_data::get_labels): New method.
23766         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23767         with use of the new rtx_jump_table_data::get_labels method.
23768         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23769         to rtx_jump_table_data *.  Simplify by using get_labels method.
23770         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23771         a dyn_cast, introducing local "table", using it to replace
23772         label-lookup logic with a get_labels method call.
23773         (patch_jump_insn): Simplify using get_labels method.
23774         * dwarf2cfi.c (create_trace_edges): Likewise.
23775         * rtlanal.c (label_is_jump_target_p): Likewise.
23776
23777 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23778
23779         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23780         to rtx_insn *.
23781
23782         * emit-rtl.c (unshare_all_rtl_1): Likewise.
23783         (unshare_all_rtl_again): Likewise, also for local "p".
23784
23785 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23786
23787         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23788         to rtx_insn *.
23789         * cfgrtl.c (delete_insn_and_edges): Likewise.
23790
23791 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23792
23793         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23794         from rtx to rtx_insn *.
23795
23796         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23797
23798 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23799
23800         * function.c (thread_prologue_and_epilogue_insns): Likewise for
23801         locals "returnjump", "epilogue_end", "insn", "next".
23802
23803         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23804         "returnjump" from rtx * to rtx_insn **.
23805         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23806
23807 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23808
23809         * basic-block.h (struct edge_def). Strengthen "r" within
23810         union edge_def_insns from rtx to rtx_insn *.
23811
23812         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23813         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
23814         rtx_insn *.
23815         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23816         from rtx to rtx_insn *.
23817         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23818         rtx_insn *.
23819         * postreload-gcse.c (reg_killed_on_edge): Likewise.
23820         (reg_used_on_edge): Likewise.
23821         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23822         (gt_pch_nx): New overload for rtx_insn *&.
23823         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23824         from rtx to rtx_insn *.
23825
23826 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23827
23828         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23829         from rtx to rtx_insn *.
23830         (BB_FOOTER): Replace function with access macro.
23831         (SET_BB_FOOTER): Delete.
23832
23833         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23834         with BB_FOOTER.
23835         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23836         (emit_barrier_after_bb): Likewise.
23837         (record_effective_endpoints): Likewise.
23838         (relink_block_chain): Likewise.
23839         (fixup_fallthru_exit_predecessor): Likewise.
23840         (cfg_layout_duplicate_bb): Likewise.
23841         (cfg_layout_split_block): Likewise.
23842         (cfg_layout_delete_block): Likewise.
23843         (cfg_layout_merge_blocks): Likewise.
23844         (BB_FOOTER): Delete function.
23845         (SET_BB_FOOTER): Delete function.
23846         * combine.c (update_cfg_for_uncondjump): Replace uses of
23847         SET_BB_FOOTER with BB_FOOTER.
23848
23849 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23850
23851         * except.h (struct eh_landing_pad_d): Strengthen field
23852         "landing_pad" from rtx to rtx_code_label *.
23853
23854         * except.c (sjlj_emit_dispatch_table): Likewise for param
23855         "dispatch_label"
23856         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23857
23858 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23859
23860         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23861         first param from rtx to rtx_insn *.
23862         * config/xtensa/xtensa.c (struct machine_function): Likewise for
23863         field "set_frame_ptr_insn".
23864         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23865         "csend" from rtx to rtx_code_label *.
23866         (xtensa_expand_atomic): Likewise for local "csloop".
23867         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23868         rtx_insn *.
23869         (xtensa_call_tls_desc): Likewise for return type and locals
23870         "call_insn", "insns".
23871         (xtensa_legitimize_tls_address): Likewise for local "insns".
23872         (xtensa_expand_prologue): Likewise for locals "insn", "first".
23873
23874 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23875
23876         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23877         first param from rtx to rtx_insn *.
23878         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23879         "insn".
23880
23881 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23882
23883         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23884         Strengthen param 1 from rtx to rtx_insn *.
23885         (tilepro_output_cbranch): Likewise.
23886         (tilepro_adjust_insn_length): Likewise.
23887         (tilepro_final_prescan_insn): Likewise for sole param.
23888
23889         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23890         Likewise for local "last".
23891         (cbranch_predicted_p): Likewise for param "insn".
23892         (tilepro_output_simple_cbranch_with_opcode): Likewise.
23893         (tilepro_output_cbranch_with_opcode): Likewise.
23894         (tilepro_output_cbranch): Likewise.
23895         (frame_emit_load): Likewise for return type and locals "seq",
23896         "insn".
23897         (emit_sp_adjust): Likewise for return type and local "insn".
23898         (tilepro_expand_epilogue): Likewise for locals "last_insn",
23899         "insn".
23900         (tilepro_adjust_insn_length): Likewise for param "insn".
23901         (next_insn_to_bundle): Likewise for return type and params
23902         "r", "end".
23903         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23904         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23905         local "new_insns".
23906         (match_addli_pcrel): Likewise for param "insn".
23907         (replace_addli_pcrel): Likewise.
23908         (match_auli_pcrel): Likewise.
23909         (replace_auli_pcrel): Likewise.
23910         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23911         "next_insn".
23912         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23913         "queue", "next_queue", "prev".
23914         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23915         (tilepro_final_prescan_insn): Likewise for param "insn".
23916
23917 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23918
23919         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23920         Strengthen param 1 from rtx to rtx_insn *.
23921         (tilegx_output_cbranch): Likewise.
23922         (tilegx_adjust_insn_length): Likewise.
23923         (tilegx_final_prescan_insn): Likewise for sole param.
23924
23925         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23926         or local "last".
23927         (cbranch_predicted_p): Likewise for param "insn".
23928         (tilegx_output_simple_cbranch_with_opcode): Likewise.
23929         (tilegx_output_cbranch_with_opcode): Likewise.
23930         (tilegx_output_cbranch): Likewise.
23931         (frame_emit_load): Likewise for return type.
23932         (set_frame_related_p): Likewise for locals "seq", "insn".
23933         (emit_sp_adjust): Likewise for return type, and for local "insn".
23934         Introduce local "pat" for use in place of "insn" where the latter
23935         isn't an instruction.
23936         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23937         from rtx to rtx_insn *.
23938         (tilegx_adjust_insn_length): Likewise for param "insn".
23939         (next_insn_to_bundle): Likewise for return type and params "r" and
23940         "end".
23941         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23942         "end".
23943         (replace_insns): Likewise for params "old_insn", "new_insns".
23944         (replace_mov_pcrel_step1): Likewise for param "insn" and local
23945         "new_insns".
23946         (replace_mov_pcrel_step2): Likewise.
23947         (replace_mov_pcrel_step3): Likewise.
23948         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23949         "next_insn".
23950         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23951         "queue", "next_queue", "prev".
23952         (tilegx_output_mi_thunk): Likewise for local "insn".
23953         (tilegx_final_prescan_insn): Likewise for param "insn".
23954
23955 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23956
23957         * config/spu/spu.c (frame_emit_store): Strengthen return type from
23958         rtx to rtx_insn *.
23959         (frame_emit_load): Likewise.
23960         (frame_emit_add_imm): Likewise, also for local "insn".
23961         (spu_expand_prologue): Likewise for local "insn".
23962         (struct spu_bb_info): Likewise for field "prop_jump".
23963         (emit_nop_for_insn): Likewise for param "insn" and local
23964         "new_insn".
23965         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23966         "hbr_insn".
23967         (spu_emit_branch_hint): Likewise for params "before", "branch" and
23968         locals "hint", "insn".
23969         (get_branch_target): Likewise for param "branch".
23970         (insn_clobbers_hbr): Likewise for param "insn".
23971         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23972         locals "insn", "before_4", "before_16".
23973         (insert_hbrp): Likewise for local "insn".
23974         (spu_machine_dependent_reorg): Likewise for locals "branch",
23975         "insn", "next", "bbend".
23976         (uses_ls_unit): Likewise for param "insn".
23977         (get_pipe): Likewise.
23978         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23979         introducing a checked cast.
23980         (spu_sched_adjust_cost): Likewise for params "insn" and
23981         "dep_insn".
23982         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23983         (spu_sms_res_mii): Likewise.
23984
23985 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23986
23987         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23988         from rtx to rtx_insn *.
23989         (output_cbranch): Likewise for param 6.
23990         (output_return): Likewise for param 1.
23991         (output_sibcall): Likewise.
23992         (output_v8plus_shift): Likewise.
23993         (output_v8plus_mult): Likewise.
23994         (output_v9branch): Likewise for param 7.
23995         (output_cbcond):  Likewise for param 3.
23996
23997         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23998         for local "insn".
23999         (sparc_legitimize_pic_address): Likewise.
24000         (sparc_emit_call_insn): Likewise.
24001         (emit_save_or_restore_regs): Likewise.
24002         (emit_window_save): Likewise for return type and local "insn".
24003         (sparc_expand_prologue): Likewise for local "insn".
24004         (sparc_flat_expand_prologue): Likewise.
24005         (output_return): Likewise for param "insn".
24006         (output_sibcall): Likewise for param "insn" and local "delay".
24007         (output_ubranch): Likewise for param "insn".
24008         (output_cbranch): Likewise.
24009         (output_cbcond): Likewise.
24010         (output_v9branch): Likewise.
24011         (output_v8plus_shift): Likewise.
24012         (sparc_output_mi_thunk): Likewise for local "insn".
24013         (get_some_local_dynamic_name): Likewise.
24014         (output_v8plus_mult): Likewise for param "insn".
24015
24016 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24017
24018         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
24019         from rtx to rtx_insn *.
24020         (output_branchy_insn): Likewise for param 3.
24021         (output_far_jump): Likewise for param 1.
24022         (final_prescan_insn): Likewise.
24023         (sh_insn_length_adjustment): Likewise for sole param.
24024
24025         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
24026         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
24027         rtx_code_label *.
24028         (sh_emit_compare_and_set): Likewise for local "lab".
24029         (output_far_jump): Strengthen param "insn" and local "prev" from
24030         rtx to rtx_insn *.
24031         (output_branchy_insn): Likewise for param "insn" and local
24032         "next_insn".
24033         (output_ieee_ccmpeq): Likewise for param "insn".
24034         (struct label_ref_list_d): Strengthen field "label" from rtx to
24035         rtx_code_label *.
24036         (pool_node): Likewise.
24037         (pool_window_label): Likewise for this global.
24038         (add_constant): Likewise for return type and locals "lab", "new_rtx".
24039         (dump_table): Strengthen params "start", "barrier" and local
24040         "scan" from rtx to rtx_insn *.
24041         (broken_move): Likewise for param "insn".
24042         (untangle_mova): Likewise for params "first_mova" and "new_mova".
24043         Strengthen param "first_mova" from rtx * to rtx_insn **.
24044         (mova_p): Likewise for param "insn".
24045         (fixup_mova): Likewise for param "mova".
24046         (find_barrier): Likewise for return type, params "mova" and
24047         "from", and locals "barrier_before_mova", "found_barrier",
24048         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
24049         "label" from rtx to rtx_code_label *.
24050         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
24051         rtx to rtx_insn *.
24052         (sh_reorg): Likewise for locals "link", "scan", "barrier".
24053         (split_branches): Likewise for param "first" and local "insn".
24054         (final_prescan_insn): Likewise for param "insn".
24055         (sequence_insn_p): Likewise for locals "prev", "next".
24056         (sh_insn_length_adjustment): Likewise for param "insn".
24057         (sh_can_redirect_branch): Likewise for local "insn".
24058         (find_r0_life_regions): Likewise for locals "end", "insn".
24059         (sh_output_mi_thunk): Likewise for local "insns".
24060
24061 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24062
24063         * config/score/score.c (score_output_mi_thunk): Strengthen local
24064         "insn" from rtx to rtx_insn *.
24065         (score_prologue): Likewise.
24066
24067 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24068
24069         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
24070         1 from rtx to rtx_insn *.
24071         (s390_emit_jump): Likewise for return type.
24072         (s390_emit_call): Likewise.
24073         (s390_load_got): Likewise.
24074
24075         * config/s390/s390.c (last_scheduled_insn): Likewise for this
24076         variable.
24077         (s390_match_ccmode): Likewise for param "insn".
24078         (s390_emit_jump): Likewise for return type.
24079         (s390_split_branches): Likewise for local "label".
24080         (struct constant): Strengthen field "label" from rtx to
24081         rtx_code_label *.
24082         (struct constant_pool): Likewise for field "label".  Strengthen
24083         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
24084         rtx_insn *.
24085         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
24086         insns.
24087         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
24088         (s390_end_pool): Likewise.
24089         (s390_dump_pool): Likewise for local "insn".
24090         (s390_mainpool_start): Likewise.
24091         (s390_chunkify_start): Likewise.
24092         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
24093         with insns.  Strengthen locals "label", "jump", "barrier", "next",
24094         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
24095         (s390_chunkify_finish): Strengthen local "insn" from rtx to
24096         rtx_insn *.
24097         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
24098         "jump", "label", "next_insn".
24099         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
24100         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
24101         "tbegin_insn".
24102         (s390_load_got): Likewise for return type and local "insns".
24103         (s390_save_gprs_to_fprs): Likewise for local "insn".
24104         (s390_restore_gprs_from_fprs): Likewise.
24105         (pass_s390_early_mach::execute): Likewise.
24106         (s390_emit_prologue): Likewise for local "insns".
24107         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
24108         rtx_code_label *.
24109         (s390_emit_call): Strengthen return type and local "insn" from
24110         rtx to rtx_insn *.
24111         (s390_emit_tpf_eh_return): Likewise for local "insn".
24112         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
24113         "next_insn", introducing locals "s_pat", "rpat" to allow this.
24114         (s390_fix_long_loop_prediction): Likewise for param "insn" and
24115         local "cur_insn".
24116         (s390_non_addr_reg_read_p): Likewise for param "insn".
24117         (find_cond_jump): Likewise for return type and param "insn".
24118         (s390_swap_cmp): Likewise for param "insn".
24119         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
24120         "prev_insn", "next_insn".
24121         (s390_reorg): Likewise for locals "insn", "target".
24122         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
24123         (s390_sched_variable_issue): For now, rename param "insn" to
24124         "uncast_insn", introducing a checked cast.
24125         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
24126         insn.
24127         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
24128         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
24129
24130 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24131
24132         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
24133         param from rtx to rtx_insn *.
24134         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
24135
24136 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24137
24138         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
24139         4 from rtx to rtx_insn *.
24140         (rs6000_final_prescan_insn): Likewise for first param.
24141         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
24142         local "insn".
24143         (rs6000_get_some_local_dynamic_name): Likewise.
24144         (output_cbranch): Likewise for param "insn".
24145         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
24146         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
24147         (rs6000_emit_allocate_stack): Likewise for local "insn".
24148         (load_cr_save): Likewise.
24149         (restore_saved_cr): Likewise.
24150         (restore_saved_lr): Likewise.
24151         (emit_cfa_restores): Likewise.
24152         (rs6000_output_function_epilogue): Likewise for locals "insn" and
24153         "deleted_debug_label".
24154         (rs6000_output_mi_thunk): Likewise for local "insn".
24155         (rs6000_final_prescan_insn): Likewise for param "insn".
24156
24157 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24158
24159         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
24160         Strengthen param "insn" from rtx to rtx_insn *.
24161         * config/picochip/picochip.c (picochip_current_prescan_insn):
24162         Likewise for this variable.
24163         (picochip_final_prescan_insn): Likewise for param "insn".
24164
24165 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24166
24167         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
24168         from rtx to rtx_insn *.
24169         (pa_output_indirect_call): Likewise.
24170         (pa_adjust_insn_length): Likewise.
24171         (pa_attr_length_millicode_call): Likewise.
24172         (pa_attr_length_call): Likewise.
24173         (pa_attr_length_indirect_call): Likewise.
24174
24175         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
24176         "insn".
24177         (pa_attr_length_millicode_call): Likewise.
24178         (pa_attr_length_call): Likewise.
24179         (pa_output_call): Likewise.
24180         (pa_attr_length_indirect_call): Likewise.
24181         (pa_output_indirect_call): Likewise.
24182
24183 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24184
24185         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
24186         Strengthen first param from rtx to rtx_insn *.
24187         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
24188         param "insn".
24189
24190 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24191
24192         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
24193         type from rtx to rtx_insn *.
24194         (mips_expand_call): Likewise.
24195         (mips_adjust_insn_length): Likewise for first param.
24196         (mips_output_conditional_branch): Likewise.
24197         (mips_output_order_conditional_branch): Likewise.
24198         (mips_final_prescan_insn): Likewise.
24199
24200         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
24201         rtx_insn * for the SEQUENCE case.
24202         (SEQ_END): Likewise.
24203         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
24204         (mips_emit_call_insn): Likewise, also for local "insn".
24205         (mips16_gp_pseudo_reg): Likewise for local "scan".
24206         (mips16_build_call_stub): Likewise for return type and for local
24207         "insn".  Introduce a new local "pattern" so that "insn" can indeed
24208         be an insn.
24209         (mips_expand_call): Strengthen return type and local "insn" from
24210         rtx to rtx_insn *.
24211         (mips_block_move_loop): Strengthen local "label" from rtx to
24212         rtx_code_label *.
24213         (mips_expand_synci_loop): Likewise for locals "label",
24214         "end_label".
24215         (mips_set_frame_expr): Strengthen local "insn" from rtx to
24216         rtx_insn *.
24217         (mips16e_collect_argument_saves): Likewise for locals "insn",
24218         "next".
24219         (mips_find_gp_ref): Likewise for param of callback for "pred"
24220         param, and for local "insn".
24221         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
24222         (mips_insn_has_flexible_gp_ref_p): Likewise.
24223         (mips_epilogue_emit_cfa_restores): Likewise for return type and
24224         local "insn".
24225         (mips_epilogue_set_cfa): Likewise for local "insn".
24226         (mips_expand_epilogue): Likewise.
24227         (mips_adjust_insn_length): Likewise for param "insn".
24228         (mips_output_conditional_branch): Likewise.
24229         (mips_output_order_conditional_branch): Likewise.
24230         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
24231         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
24232         "falu2_turn_enabled_insn".
24233         (mips_builtin_branch_and_move): Strengthen locals "true_label",
24234         "done_label" from rtx to rtx_code_label *.
24235         (struct mips16_constant): Likewise for field "label".
24236         (mips16_add_constant): Likewise for return type.
24237         (mips16_emit_constants_1): Strengthen return type and param "insn"
24238         from rtx to rtx_insn *.
24239         (mips16_emit_constants): Likewise for param "insn".
24240         (mips16_insn_length): Likewise.
24241         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
24242         to rtx_code_label *.
24243         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
24244         from rtx to rtx_insn *.
24245         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
24246         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
24247         (r10k_simplify_address): Strengthen param "insn" and local
24248         "def_insn" from rtx to rtx_insn *.
24249         (r10k_safe_address_p): Strengthen param "insn" from rtx to
24250         rtx_insn *.
24251         (r10k_needs_protection_p_1): Update target type of cast of data
24252         from to rtx to rtx_insn *.
24253         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
24254         rtx * to rtx_insn **.
24255         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
24256         rtx_insn *.
24257         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
24258         (mips_call_expr_from_insn): Likewise for param "insn".
24259         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
24260         (mips_find_pic_call_symbol): Likewise for param "insn".
24261         (mips_annotate_pic_calls): Likewise for local "insn".
24262         (mips_sim_insn): Likewise for this variable.
24263         (struct mips_sim): Likewise for field "insn" within elements of
24264         last_set array.
24265         (mips_sim_wait_reg): Likewise for param "insn".
24266         (mips_sim_wait_regs): Likewise.
24267         (mips_sim_wait_units): Likewise.
24268         (mips_sim_wait_insn): Likewise.
24269         (mips_sim_issue_insn): Likewise.
24270         (mips_sim_finish_insn): Likewise.
24271         (mips_seq_time): Likewise for param "seq" and local "insn".
24272         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
24273         locals "first", "second".
24274         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
24275         "last", "last2", "next".
24276         (mips_avoid_hazard): Likewise for params "after", "insn".
24277         (mips_reorg_process_insns): Likewise for locals "insn",
24278         "last_insn", "subinsn", "next_insn".
24279         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
24280         (mips16_split_long_branches): Likewise for locals "insn" "jump",
24281         "jump_sequence".
24282         (mips_output_mi_thunk): Likewise for local "insn".
24283         (mips_final_prescan_insn): Likewise for param "insn".
24284
24285 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24286
24287         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
24288         Strengthen return type and local "insns" from rtx to rtx_insn *.
24289         (microblaze_legitimize_tls_address): Likewise for local "insns".
24290         (microblaze_block_move_loop): Strengthen local "label" from rtx
24291         to rtx_code_label *.
24292         (microblaze_expand_prologue): Strengthen two locals named "insn"
24293         from rtx to rtx_insn *.
24294         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
24295         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
24296         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
24297         to rtx_code_label *.
24298
24299 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24300
24301         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
24302         param from rtx to rtx_insn *.
24303         (mep_reuse_lo): Likewise for third param.
24304         (mep_use_post_modify_p): Likewise for first param.
24305         (mep_core_address_length): Likewise.
24306         (mep_cop_address_length): Likewise.
24307         (mep_final_prescan_insn): Likewise.
24308         (mep_store_data_bypass_p): Likewise for both params.
24309         (mep_mul_hilo_bypass_p): Likewise.
24310         (mep_ipipe_ldc_p): Likewise for param.
24311
24312         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
24313         (mep_rewrite_mult): Likewise.
24314         (mep_rewrite_mulsi3): Likewise.
24315         (mep_rewrite_maddsi3): Likewise.
24316         (mep_reuse_lo_p_1): Likewise.
24317         (mep_reuse_lo_p): Likewise.
24318         (mep_frame_expr): Likewise.
24319         (mep_make_parallel): Likewise for both params.
24320         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
24321         local "insn".
24322         (mep_use_post_modify_p): Likewise for param "insn".
24323         (mep_core_address_length): Likewise.
24324         (mep_cop_address_length): Likewise.
24325         (mep_reg_set_in_function): Likewise for local "insn".
24326         (mep_asm_without_operands_p): Likewise.
24327         (F): Likewise for return type and param "x".
24328         (add_constant): Likewise for local "insn".
24329         (maybe_dead_move): Likewise for return type and local "insn".
24330         (mep_expand_prologue): Likewise for local "insn".
24331         (mep_final_prescan_insn): Likewise for param "insn".
24332         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
24333         "next", "follow", "x".
24334         (mep_insert_repeat_label_last): Likewise for return type, param
24335         "last_insn", and locals "next", "prev".  Strengthen param "label"
24336         from rtx to rtx_code_label *.
24337         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
24338         rtx_insn *.
24339         (struct mep_doloop_end): Likewise for fields "insn" and
24340         "fallthrough".
24341         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
24342         Strengthen local "repeat_label" from rtx to rtx_code_label *.
24343         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
24344         rtx_insn *.
24345         (mep_invert_branch): Likewise for params "insn" and "after".
24346         (mep_reorg_erepeat): Likewise for param "insns" and locals
24347         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
24348         "l" from rtx to rtx_code_label *.
24349         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
24350         from rtx to rtx_insn *.
24351         (mep_reorg_addcombine): Likewise for param "insns" and locals
24352         "i", "n".
24353         (add_sp_insn_p): Likewise for param "insn".
24354         (mep_reorg_noframe): Likewise for param "insns" and locals
24355         "start_frame_insn", "end_frame_insn", "next".
24356         (mep_reorg): Likewise for local "insns".
24357         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
24358         cast.
24359         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
24360         (mep_mul_hilo_bypass_p): Likewise.
24361         (mep_ipipe_ldc_p): Likewise for param "insn".
24362         (mep_make_bundle): Likewise for return type, param "cop" and local
24363         "insn", splitting out the latter into a new local "seq" for when it
24364         is a SEQUENCE rather than an insn.
24365         (core_insn_p): Likewise for param "insn".
24366         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
24367         "last", "first", "note", "prev", "core_insn".
24368
24369 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24370
24371         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
24372         rtx to rtx_insn *.
24373         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
24374         (m68k_final_prescan_insn): Likewise for first param.
24375
24376         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
24377         (m68k_set_frame_related): Likewise for param "insn".
24378         (output_btst): Likewise for param "insn".
24379         (m68k_final_prescan_insn): Likewise.
24380         (m68k_move_to_reg): Likewise for local "insn".
24381         (m68k_call_tls_get_addr): Likewise for local "insns".
24382         (m68k_call_m68k_read_tp): Likewise.
24383         (strict_low_part_peephole_ok): Likewise for param "first_insn".
24384         (m68k_output_mi_thunk): Likewise for local "insn".
24385
24386 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24387
24388         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
24389         first param from rtx to rtx_insn *.
24390         (iq2000_adjust_insn_length): Likewise.
24391         (iq2000_output_conditional_branch): Likewise.
24392         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
24393         "insn" and local "nop_insn".
24394         (iq2000_annotate_frame_insn): Likewise for param "insn".
24395         (iq2000_expand_prologue): Likewise for both locals "insn".
24396         (iq2000_adjust_insn_length): Likewise for param "insn".
24397         (iq2000_output_conditional_branch): Likewise.
24398
24399 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24400
24401         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
24402         "insns" from rtx to rtx_insn *.
24403         (ia64_emit_cond_move): Likewise for locals "insn", "first".
24404         (struct spill_fill_data): Likewise for field "init_after" and for
24405         elements of array field "prev_insn".
24406         (spill_restore_mem): Likewise for locals "insn", "first".
24407         (do_spill): Likewise for local "insn".
24408         (do_restore): Likewise.
24409         (ia64_expand_prologue): Likewise.
24410         (ia64_expand_epilogue): Likewise.
24411         (emit_insn_group_barriers): Likewise for locals "insn",
24412         "last_label".
24413         (emit_all_insn_group_barriers): Likewise for locals "insn",
24414         "last".
24415         (dfa_stop_insn): Likewise for this global.
24416         (dfa_pre_cycle_insn): Likewise.
24417         (ia64_nop): Likewise.
24418         (final_emit_insn_group_barriers): Likewise for locals "insn",
24419         "last".
24420         (emit_predicate_relation_info): Likewise for locals "head", "n",
24421         "insn", "b", "a".
24422         (ia64_reorg): Likewise for local "insn".
24423         (ia64_output_mi_thunk): Likewise.
24424         (expand_vec_perm_interleave_2): Likewise for local "seq".
24425
24426 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24427
24428         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
24429         param 1 "insn" from rtx to rtx_insn *.
24430         (ix86_use_lea_for_mov): Likewise.
24431         (ix86_avoid_lea_for_addr): Likewise.
24432         (ix86_split_lea_for_addr): Likewise.
24433         (ix86_lea_for_add_ok): Likewise.
24434         (ix86_output_call_insn): Likewise.
24435
24436         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
24437         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
24438         (ix86_output_function_epilogue): Likewise for locals "insn",
24439         "deleted_debug_label".
24440         (legitimize_tls_address): Likewise for local "insn".
24441         (get_some_local_dynamic_name): Likewise.
24442         (increase_distance): Likewise for params "prev", "next".
24443         (distance_non_agu_define_in_bb): Likewise for params "insn",
24444         "start" and locals "prev", "next".
24445         (distance_non_agu_define): Likewise for param "insn".
24446         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
24447         locals "next", "prev".
24448         (distance_agu_use): Likewise for param "insn".
24449         (ix86_lea_outperforms): Likewise.
24450         (ix86_ok_to_clobber_flags): Likewise.
24451         (ix86_avoid_lea_for_add): Likewise.
24452         (ix86_use_lea_for_mov): Likewise.
24453         (ix86_avoid_lea_for_addr): Likewise.
24454         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
24455         (ix86_split_lea_for_addr): Likewise for param "insn".
24456         (ix86_lea_for_add_ok): Likewise for param "insn".
24457         (ix86_expand_carry_flag_compare): Likewise for local
24458         "compare_seq".
24459         (ix86_expand_int_movcc): Likewise.
24460         (ix86_output_call_insn): Likewise for param "insn".
24461         (ix86_output_call_insn): Likewise for local "i".
24462         (x86_output_mi_thunk): Introduce local "insn", using it in place
24463         of "tmp" when dealing with insns.
24464         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
24465         "start".
24466         (ix86_pad_returns): Likewise for locals "ret", "prev".
24467         (ix86_count_insn_bb): Likewise for local "insn".
24468         (ix86_pad_short_function): Likewise for locals "ret", "insn".
24469         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
24470         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
24471         (expand_vec_perm_interleave2): Likewise for local "seq".
24472         (expand_vec_perm_vperm2f128_vblend): Likewise.
24473         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
24474         call to for_each_rtx with for_each_rtx_in_insn.
24475
24476 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24477
24478         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
24479         "label" from rtx to rtx_code_label *.
24480         (ix86_expand_prologue): Likewise.
24481         (ix86_expand_split_stack_prologue): Likewise for locals "label",
24482         "varargs_label".
24483         (ix86_split_idivmod): Likewise for locals "end_label" and
24484         "qimode_label".
24485         (ix86_expand_branch): Likewise for local "label2".
24486         (ix86_expand_aligntest): Likewise for return type and local "label".
24487         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
24488         "top_label".
24489         (expand_movmem_epilogue): Likewise for the various locals named
24490         "label".
24491         (expand_setmem_epilogue): Likewise.
24492         (expand_small_movmem_or_setmem): Likewise for local "label".
24493         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24494         Strengthen param "done_label" from rtx * to rtx_code_label **.
24495         Strengthen locals "loop_label" and "label" from rtx to
24496         rtx_code_label *.
24497         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24498         Likewise for locals "loop_label", "label".
24499         (ix86_expand_set_or_movmem): Likewise for locals "label",
24500         "jump_around_label", "hot_label".
24501         (ix86_expand_strlensi_unroll_1): Likewise for locals
24502         "align_2_label", align_3_label", "align_4_label", "end_0_label",
24503         "end_2_label".
24504         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
24505         (void ix86_emit_i387_log1p): Likewise for locals "label1",
24506         "label2", "jump_label".
24507         (ix86_expand_sse_compare_and_jump): Likewise for return type and
24508         local "label".
24509         (ix86_expand_lfloorceil): Likewise for local "label".
24510         (ix86_expand_rint): Likewise.
24511         (ix86_expand_floorceildf_32): Likewise.
24512         (ix86_expand_floorceil): Likewise.
24513         (ix86_expand_rounddf_32): Likewise.
24514         (ix86_expand_trunc): Likewise.
24515         (ix86_expand_truncdf_32): Likewise.
24516         (ix86_expand_round): Likewise.
24517
24518 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24519
24520         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
24521         first param from rtx to rtx_insn *.
24522         (h8300_insn_length_from_table): Likewise.
24523         * config/h8300/h8300.c (F): Likewise for return type and param
24524         "x".
24525         (Fpa): Add a checked cast to rtx_insn *.
24526         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
24527         rtx_insn *.
24528         (final_prescan_insn): Likewise for param "insn".
24529         (h8300_binary_length): Likewise.
24530         (h8300_insn_length_from_table): Likewise.
24531
24532 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24533
24534         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
24535         Strengthen first param "insn" from rtx to rtx_insn *.
24536
24537         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
24538         Likewise.
24539         (frame_insn): Likewise for return type.  Introduce local "insn"
24540         for use in place of local "x" for use as an rtx_insn *.
24541         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
24542         (epiphany_expand_prologue): Likewise for local "insn".
24543         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
24544         * config/epiphany/resolve-sw-modes.c
24545         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24546         "seq".
24547
24548 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24549
24550         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24551         param from rtx to rtx_insn *.
24552         (c6x_final_prescan_insn): Likewise for first param.
24553
24554         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24555         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24556         (c6x_expand_compare): Strengthen local "insns" from rtx to
24557         rtx_insn *.
24558         (c6x_get_unit_specifier): Likewise for param "insn".
24559         (c6x_print_unit_specifier_field): Likewise.
24560         (c6x_final_prescan_insn): Likewise.
24561         (emit_add_sp_const): Likewise for local "insn".
24562         (c6x_expand_prologue): Likewise.
24563
24564 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24565
24566         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24567         param 1 from rtx to rtx_insn *.
24568         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24569         the various locals named "insn".
24570         (expand_epilogue_reg_restore): Likewise.
24571         (frame_related_constant_load): Likewise.
24572         (add_to_reg): Likewise.
24573         (emit_link_insn): Likewise.
24574         (do_link): Likewise.
24575         (expand_interrupt_handler_prologue): Likewise.
24576         (branch_dest): Likewise for param "branch".
24577         (asm_conditional_branch): Likewise for param "insn".
24578         (gen_one_bundle): Likewise for elements of param "slot" and local
24579         "t".
24580         (bfin_gen_bundles): Likewise for locals "insn", "next" and
24581         elements of local "slot".
24582         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24583         "queue", "next_queue", "prev".
24584         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24585         (add_sched_insns_for_speculation): Likewise for local "insn".
24586
24587 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24588
24589         * config/avr/avr-protos.h (output_movqi): Strengthen first param
24590         from rtx to rtx_insn *.
24591         (output_movhi): Likewise.
24592         (output_movsisf): Likewise.
24593         (avr_out_tstsi): Likewise.
24594         (avr_out_tsthi): Likewise.
24595         (avr_out_tstpsi): Likewise.
24596         (avr_out_compare): Likewise.
24597         (avr_out_compare64): Likewise.
24598         (avr_out_movpsi): Likewise.
24599         (ashlqi3_out): Likewise.
24600         (ashlhi3_out): Likewise.
24601         (ashlsi3_out): Likewise.
24602         (ashrqi3_out): Likewise.
24603         (ashrhi3_out): Likewise.
24604         (ashrsi3_out): Likewise.
24605         (lshrqi3_out): Likewise.
24606         (lshrhi3_out): Likewise.
24607         (lshrsi3_out): Likewise.
24608         (avr_out_ashlpsi3): Likewise.
24609         (avr_out_ashrpsi3): Likewise.
24610         (avr_out_lshrpsi3): Likewise.
24611         (avr_out_fract): Likewise.
24612         (avr_out_sbxx_branch): Likewise.
24613         (avr_out_round): Likewise.
24614         (avr_out_xload): Likewise.
24615         (avr_out_movmem): Likewise.
24616         (adjust_insn_length): Likewise.
24617         (avr_out_lpm): Likewise.
24618         (reg_unused_after): Likewise.
24619         (_reg_unused_after): Likewise.
24620         (avr_jump_mode): Likewise for second param.
24621         (jump_over_one_insn): Likewise for first param.
24622         (avr_final_prescan_insn): Likewise.
24623         (out_shift_with_cnt): Likewise for second param.
24624
24625         * config/avr/avr.c (get_sequence_length): Likewise for param
24626         "insns" and local "insn".
24627         (emit_push_byte): Likewise for local "insn".
24628         (emit_push_sfr): Likewise.
24629         (avr_prologue_setup_frame): Likewise for locals "insn",
24630         "fp_plus_insns", "sp_plus_insns".
24631         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24632         "sp_plus_insns".
24633         (avr_jump_mode): Likewise for param "insn".
24634         (avr_final_prescan_insn): Likewise.
24635         (avr_find_unused_d_reg): Likewise.
24636         (avr_out_lpm_no_lpmx): Likewise.
24637         (avr_out_lpm): Likewise.
24638         (avr_out_xload): Likewise.
24639         (output_movqi): Likewise.
24640         (output_movhi): Likewise.
24641         (out_movqi_r_mr): Likewise.
24642         (out_movhi_r_mr): Likewise.
24643         (out_movsi_r_mr): Likewise.
24644         (out_movsi_mr_r): Likewise.
24645         (output_movsisf): Likewise.
24646         (avr_out_load_psi): Likewise.
24647         (avr_out_store_psi): Likewise.
24648         (avr_out_movpsi): Likewise.
24649         (out_movqi_mr_r): Likewise.
24650         (avr_out_movhi_mr_r_xmega): Likewise.
24651         (out_movhi_mr_r): Likewise.
24652         (compare_condition): Likewise for param "insn" and local "next".
24653         (compare_sign_p): Likewise for param "insn".
24654         (compare_diff_p): Likewise.
24655         (compare_eq_p): Likewise.
24656         (avr_out_compare): Likewise.
24657         (avr_out_compare64): Likewise.
24658         (avr_out_tsthi): Likewise.
24659         (avr_out_tstpsi): Likewise.
24660         (avr_out_tstsi): Likewise.
24661         (out_shift_with_cnt): Likewise.
24662         (ashlqi3_out): Likewise.
24663         (ashlhi3_out): Likewise.
24664         (avr_out_ashlpsi3): Likewise.
24665         (ashlsi3_out): Likewise.
24666         (ashrqi3_out): Likewise.
24667         (ashrhi3_out): Likewise.
24668         (avr_out_ashrpsi3): Likewise.
24669         (ashrsi3_out): Likewise.
24670         (lshrqi3_out): Likewise.
24671         (lshrhi3_out): Likewise.
24672         (avr_out_lshrpsi3): Likewise.
24673         (lshrsi3_out): Likewise.
24674         (avr_out_fract): Likewise.
24675         (avr_out_round): Likewise.
24676         (avr_adjust_insn_length): Likewise.
24677         (reg_unused_after): Likewise.
24678         (_reg_unused_after): Likewise.
24679         (avr_compare_pattern): Likewise.
24680         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24681         and locals "branch1", "branch2", "insn2", "jump".
24682         (avr_reorg): Likewise for local "insn".
24683         (avr_2word_insn_p): Likewise for param "insn".
24684         (jump_over_one_insn_p): Likewise.
24685         (avr_out_sbxx_branch): Likewise.
24686         (avr_out_movmem): Likewise.
24687
24688 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24689
24690         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24691         param from rtx to rtx_insn *.
24692         (thumb1_final_prescan_insn): Likewise.
24693         (thumb2_final_prescan_insn): Likewise.
24694
24695         * config/arm/arm.c (emit_set_insn): Strengthen return type from
24696         rtx to rtx_insn *.
24697         (struct minipool_node): Likewise for field "insn".
24698         (dump_minipool): Likewise for param "scan".
24699         (create_fix_barrier): Likewise for local "from".  Strengthen local
24700         "label" from rtx to rtx_code_label *.
24701         (push_minipool_barrier): Strengthen param "insn" from rtx to
24702         rtx_insn *.
24703         (push_minipool_fix): Likewise.
24704         (note_invalid_constants): Likewise.
24705         (thumb2_reorg): Likewise for local "insn".
24706         (arm_reorg): Likewise.
24707         (thumb2_final_prescan_insn): Likewise for param
24708         "insn" and local "first_insn".
24709         (arm_final_prescan_insn): Likewise for param "insn" and locals
24710         "start_insn", "this_insn".
24711         (arm_debugger_arg_offset): Likewise for param "insn".
24712         (thumb1_emit_multi_reg_push): Likewise for return type and local
24713         "insn".
24714         (thumb1_final_prescan_insn): Likewise for param "insn".
24715         (thumb_far_jump_used_p): Likewise for local "insn".
24716         (thumb1_expand_prologue): Likewise.
24717         (arm_expand_epilogue_apcs_frame): Likewise.
24718         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24719         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24720         from rtx to rtx_code_label *.
24721         (arm_split_atomic_op): Likewise for local "label".
24722         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24723
24724 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24725
24726         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24727         first param from rtx to rtx_insn *.
24728         (arc_verify_short): Likewise.
24729         (arc_short_long): Likewise.
24730         (arc_need_delay): Likewise.
24731
24732         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24733         "target_insn".
24734         (arc_ccfsm_advance): Likewise for param "insn" and locals
24735         "start_insn", "this_insn".
24736         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24737         (arc_ccfsm_post_advance): Likewise for param "insn".
24738         (arc_next_active_insn): Likewise for return type and param "insn".
24739         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
24740         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24741         (output_short_suffix): Likewise for local "insn".
24742         (arc_final_prescan_insn): Likewise for param "insn".  Remove
24743         now-redundant checked cast.
24744         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24745         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24746         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
24747         for use where lc_set became an insn.
24748         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24749         rtx to rtx_insn *.
24750         (arc_get_insn_variants): Likewise for local "prev".
24751         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24752         "next".
24753         (arc_predicate_delay_insns): Likewise for local "insn".
24754         (arc_pad_return): Likewise for local "prev".  For now, add a
24755         checked cast when extracting the insn from "final_sequence".
24756         (arc_short_long): Likewise for param "insn".
24757         (arc_need_delay): Likewise for param "insn" and local "next".
24758         (arc_label_align): Likewise for locals "prev", "next".
24759
24760 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24761
24762         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24763         "insn" from rtx to rtx_insn *.
24764         (alpha_gp_save_rtx): Likewise for local "seq".
24765         (alpha_instantiate_decls): Likewise for local "top".
24766         (get_some_local_dynamic_name): Likewise for local "insn".
24767         (alpha_does_function_need_gp): Likewise.
24768         (set_frame_related_p): Likewise for return type and for locals
24769         "seq" and "insn".
24770         (emit_frame_store_1): Likewise for local "insn".
24771         (alpha_expand_prologue): Likewise for locals "insn", "seq".
24772         (alpha_end_function): Likewise for local "insn".
24773         (alpha_output_mi_thunk_osf): Likewise.
24774         (alphaev4_insn_pipe): Likewise for param "insn".
24775         (alphaev5_insn_pipe): Likewise.
24776         (alphaev4_next_group): Likewise for return type and param 1
24777         "insn".
24778         (alphaev5_next_group): Likewise.
24779         (alpha_align_insns_1): Likewise for return type and param 1 of
24780         callback param "next_group", and for locals "i", "next", "prev",
24781         "where", "where2", "insn".
24782
24783 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
24784
24785         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24786         rather than modifying the stmt.
24787
24788 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24789
24790         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24791         cgraph_state conversion.
24792
24793 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24794
24795         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24796         Strengthen local "insns" from rtx to rtx_insn *.
24797         (aarch64_set_frame_expr): Likewise for local "insn".
24798         (aarch64_save_or_restore_fprs): Likewise.
24799         (aarch64_save_or_restore_callee_save_registers): Likewise.
24800         (aarch64_expand_prologue): Likewise.
24801         (aarch64_expand_epilogue): Likewise.
24802         (aarch64_output_mi_thunk): Likewise.
24803         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24804         "label2" from rtx to rtx_code_label *.
24805         (aarch64_split_atomic_op): Likewise for local "label".
24806
24807 2014-08-25  Martin Liska  <mliska@suse.cz>
24808
24809         * cgraph.h (symtab_node):
24810         (bool needed_p (void)): created from decide_is_symbol_needed
24811         (bool referred_to_p (void)): created from referred_to_p
24812         (static cgraph_node *get_for_asmname (tree asmname)):
24813         created from symtab_node_for_asm
24814         * cgraph.h (cgraph_node):
24815         (void assemble_thunks_and_aliases (void)):
24816         created from assemble_thunks_and_aliases
24817         (void expand (void)): created from expand_function
24818         (static void finalize_function (tree, bool)):
24819         created from cgraph_finalize_function
24820         (static cgraph_local_info *local_info (tree decl)):
24821         created from cgraph_local_info
24822         (static cgraph_global_info *global_info (tree)):
24823         created from cgraph_global_info
24824         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24825         * cgraph.h (varpool_node):
24826         (static void add (tree decl): created from varpool_add_new_variable
24827         * cgraph.h (cgraph_edge):
24828         void remove (void);
24829         (void remove_caller (void)): created from cgraph_edge_remove_caller
24830         (void remove_callee (void)): created from cgraph_edge_remove_callee
24831         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24832         created from cgraph_set_call_stmt
24833         (void redirect_callee (cgraph_node *n)): created from
24834         cgraph_redirect_edge_callee
24835         (cgraph_edge *make_direct (cgraph_node *callee)): created from
24836         cgraph_make_edge_direct
24837         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24838         gimple redirect_call_stmt_to_callee (void)): created from
24839         cgraph_turn_edge_to_speculative
24840         (void speculative_call_info (cgraph_edge *&direct,
24841         cgraph_edge *&indirect, ipa_ref *&reference)): created from
24842         cgraph_speculative_call_info
24843         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt,
24844         unsigned stmt_uid, gcov_type count_scale,
24845         int freq_scale, bool update_original)): created from cgraph_clone_edge
24846         (cgraph_edge *resolve_speculation (tree callee_decl)):
24847         created from cgraph_resolve_speculation
24848         (bool cannot_lead_to_return_p (void)): created from
24849         cannot_lead_to_return_p
24850         (bool recursive_p (void)): created from cgraph_edge_recursive_p
24851         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24852         (static unsigned int rebuild_edges (void)): created from
24853         rebuild_cgraph_edges
24854         (static void rebuild_references (void)): created from
24855         cgraph_rebuild_references
24856         * cgraph.h (symbol_table):
24857         (create_reference): renamed from add_reference
24858         (maybe_create_reference): renamed from maybe_add_reference
24859         (void register_symbol (symtab_node *node)): new function
24860         (void clear_asm_symbols (void)): new function
24861         (void unregister (symtab_node *node)): new function
24862         (void release_symbol (cgraph_node *node, int uid)): new function
24863         (cgraph_node * allocate_cgraph_symbol (void)): new function
24864         (void initialize (void)): created from cgraph_init
24865         (symtab_node *first_symbol (void)):new function
24866         (asm_node *first_asm_symbol (void)):new function
24867         (symtab_node *first_defined_symbol (void)):new function
24868         (varpool_node *first_variable (void)):new function
24869         (varpool_node *next_variable (varpool_node *node)):new function
24870         (varpool_node *first_static_initializer (void)):new function
24871         (varpool_node *next_static_initializer (varpool_node *node)):new
24872         function
24873         (varpool_node *first_defined_variable (void)):new function
24874         (varpool_node *next_defined_variable (varpool_node *node)):new function
24875         (cgraph_node *first_defined_function (void)):new function
24876         (cgraph_node *next_defined_function (cgraph_node *node)):new function
24877         (cgraph_node *first_function (void)):new function
24878         (cgraph_node *next_function (cgraph_node *node)):new function
24879         (cgraph_node *first_function_with_gimple_body (void)):new function
24880         (asm_node *finalize_toplevel_asm (tree asm_str)): created from
24881         add_asm_node
24882         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24883         created from symtab_remove_unreachable_nodes
24884         (void remove_unreferenced_decls (void)): created from
24885         varpool_remove_unreferenced_decls
24886         (void process_new_functions (void)): created from
24887         cgraph_process_new_functions
24888         (void process_same_body_aliases (void)): created from
24889         cgraph_process_same_body_aliases
24890         (bool output_variables (void)): created from
24891         varpool_node::output_variables
24892         (void output_asm_statements (void)): created from output_asm_statements
24893         (void finalize_compilation_unit (void)): created from
24894         finalize_compilation_unit
24895         (void compile (void)): created from compile
24896         (void output_weakrefs (void)): created from output_weakrefs
24897         (cgraph_node *create_empty (void)): created from
24898         cgraph_node::create_empty
24899         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee,
24900         gimple call_stmt, gcov_type count, int freq,
24901         bool indir_unknown_callee)): created from cgraph_node::create_edge
24902         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24903         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24904         created from cgraph_next_function_with_gimple_body
24905         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24906         created from cgraph_remove_edge_removal_hook
24907         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook,
24908         void *)): created from cgraph_add_node_removal_hook
24909         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24910         created from cgraph_remove_node_removal_hook
24911         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook,
24912         void *)): created from varpool_add_node_removal_hook
24913         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24914         created from varpool_remove_node_removal_hook
24915         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook,
24916         void *)): created from cgraph_add_function_insertion_hook
24917         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24918         created from cgraph_remove_function_insertion_hook
24919         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook,
24920         void *)): created from varpool_add_variable_insertion_hook
24921         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24922           created from varpool_remove_variable_insertion_hook
24923         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook,
24924         void *)): created from cgraph_add_edge_duplication_hook
24925         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24926         created from cgraph_remove_edge_duplication_hook
24927         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook,
24928         void *)): created from cgraph_add_node_duplication_hook
24929         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24930         created from cgraph_remove_node_duplication_hook
24931         (void call_edge_removal_hooks (cgraph_edge *e)):
24932         created from cgraph_call_edge_removal_hooks
24933         (void call_cgraph_insertion_hooks (cgraph_node *node)):
24934         created from call_function_insertion_hooks
24935         (void call_cgraph_removal_hooks (cgraph_node *node)):
24936         created from cgraph_call_node_removal_hooks
24937         (void call_cgraph_duplication_hooks (cgraph_node *node,
24938         cgraph_node *node2)): created from cgraph_node::call_duplication_hooks
24939         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24940         created from cgraph_call_edge_duplication_hooks
24941         (void call_varpool_removal_hooks (varpool_node *node)):
24942         created from varpool_call_node_removal_hooks
24943         (void call_varpool_insertion_hooks (varpool_node *node)):
24944         created from varpool_call_variable_insertion_hooks
24945         (void insert_to_assembler_name_hash (symtab_node *node,
24946         bool with_clones)): created from insert_to_assembler_name_hash
24947         (void unlink_from_assembler_name_hash (symtab_node *node,
24948         bool with_clones)): created from unlink_from_assembler_name_hash
24949         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24950         created from symtab_prevail_in_asm_name_hash
24951         (void symtab_initialize_asm_name_hash (void)):
24952         created from symtab_initialize_asm_name_hash
24953         (void change_decl_assembler_name (tree decl, tree name)):
24954         created from change_decl_assembler_name
24955         (void materialize_all_clones (void)): created from
24956         cgraph_materialize_all_clones
24957         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24958         created from decl_assembler_name_hash
24959         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24960         created from decl_assembler_name_equal
24961         (static hashval_t hash_node_by_assembler_name (const void *p)):
24962         created from hash_node_by_assembler_name
24963         (static int eq_assembler_name (const void *p1, const void *p2)):
24964         created from eq_assembler_name
24965
24966 2014-08-25  Marek Polacek  <polacek@redhat.com>
24967
24968         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24969
24970 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
24971
24972         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24973         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24974         SWI1248_AVX512BW mode iterator.
24975
24976 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
24977
24978         PR target/62111
24979         * config/sh/predicates.md (general_extend_operand): Disable
24980         TRUNCATE before reload completes.
24981
24982 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
24983
24984         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24985
24986 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
24987
24988         PR target/61996
24989         * config/sh/sh.opt (musermode): Allow negative form.
24990         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24991         targets that don't support it.
24992         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24993         Document -mno-usermode option.
24994
24995 2014-08-24  Kito Cheng  <kito@0xlab.org>
24996
24997         * system.h (CALLER_SAVE_PROFITABLE): Poison.
24998         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24999         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
25000         * doc/tm.texi: Regenerate.
25001
25002 2014-08-24  Kito Cheng  <kito@0xlab.org>
25003
25004         * ira.c: Fix typo in comment.
25005
25006 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
25007
25008         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
25009         Deprecate c++1y. Change language to reflect greater confidence in C++14.
25010
25011 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
25012
25013         PR target/62038
25014         * config/pa/pa.c (pa_output_function_epilogue): Don't set
25015         last_address when the current function is a thunk.
25016         (pa_asm_output_mi_thunk): When we don't have named sections or they
25017         are not being used, check that thunk can reach the stub table with a
25018         short branch.
25019
25020 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25021
25022         * web.c (union_match_dups): Strengthen param "insn" from rtx to
25023         rtx_insn *.
25024         (pass_web::execute): Likewise for local "insn".
25025
25026 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25027
25028         * var-tracking.c (struct micro_operation_def): Strengthen field
25029         "insn" from rtx to rtx_insn *.
25030         (struct emit_note_data_def): Likewise.
25031         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
25032         (vt_stack_adjustments): Likewise for local "insn".
25033         (adjust_insn): Likewise for param "insn".
25034         (val_store): Likewise.
25035         (val_resolve): Likewise.
25036         (struct count_use_info): Likewise for field "insn".
25037         (log_op_type): Likewise for param "insn".
25038         (reverse_op): Likewise.
25039         (prepare_call_arguments): Likewise.
25040         (add_with_sets):  The initial param takes an insn, but we can't
25041         yet strengthen it from rtx to rtx_insn * since it's used as a
25042         cselib_record_sets_hook callback.  For now rename initial param
25043         from "insn" to "uncast_insn", and introduce a local "insn" of
25044         the stronger rtx_insn * type, with a checked cast.
25045         (compute_bb_dataflow): Strengthen local "insn" from rtx to
25046         rtx_insn *.
25047         (emit_note_insn_var_location): Likewise.
25048         (emit_notes_for_changes): Likewise.
25049         (emit_notes_for_differences): Likewise.
25050         (next_non_note_insn_var_location): Likewise for return type and
25051         for param "insn".
25052         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
25053         (vt_initialize): Likewise for local "insn".
25054         (delete_debug_insns): Likewise for locals "insn" and "next".
25055
25056 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25057
25058         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
25059         rtx_insn *.
25060         (mark_constant_pool): Likewise for local "insn".
25061
25062 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25063
25064         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
25065         rtx to rtx_insn *.
25066         (dead_debug_promote_uses): Likewise.
25067         (dead_debug_insert_temp): Likewise.
25068
25069 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25070
25071         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
25072         from const_rtx to const rtx_insn *.
25073         (store_killed_after): Likewise.  Strengthen locals "last", "act"
25074         from rtx to rtx_insn *.
25075         (store_killed_before): Strengthen param "insn" from const_rtx to
25076         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
25077         (find_moveable_store): Strengthen param "insn" from rtx to
25078         rtx_insn *.
25079         (compute_store_table): Likewise for local "insn".
25080         (insert_insn_start_basic_block): Likewise for param "insn" and
25081         locals "prev", "before", "insn".
25082         (insert_store): For now, add a checked cast to rtx_insn * on the
25083         result of gen_move_insn.
25084         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
25085         to rtx_insn *.
25086         (replace_store_insn): Likewise.  For now, add a checked cast to
25087         rtx_insn * on the result of gen_move_insn.
25088
25089 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25090
25091         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
25092         rtx_insn *.
25093         (expand_sjlj_dispatch_table): Likewise.
25094
25095 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25096
25097         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
25098         "insn" from rtx to rtx_insn *.
25099
25100 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25101
25102         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
25103         "insn" from rtx to rtx_insn *.
25104         (dup_block_and_redirect): Likewise for param 3 "before".
25105
25106         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
25107         from rtx to rtx_insn *.
25108         (move_insn_for_shrink_wrap): Likewise.
25109         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
25110         (dup_block_and_redirect): Likewise for param "before" and local
25111         "insn".
25112         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
25113         "end".
25114         (convert_to_simple_return): Likewise for local "start".
25115
25116         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
25117         Strengthen local "insn" from rtx to rtx_insn *, for use when
25118         invoking requires_stack_frame_p.
25119
25120 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25121
25122         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
25123         rtx_insn *.
25124         (speculate_expr): Likewise for locals "orig_insn_rtx",
25125         "spec_insn_rtx".
25126         (eq_transformed_insns): Likewise for locals "i1", "i2".
25127         (check_for_new_jump): Likewise for return type and local "end".
25128         (find_new_jump): Likewise for return type and local "jump".
25129         (sel_split_edge): Likewise for local "jump".
25130         (sel_create_recovery_block): Likewise.
25131         (sel_redirect_edge_and_branch_force): Likewise.
25132         (sel_redirect_edge_and_branch): Likewise.
25133
25134 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25135
25136         * sel-sched.c (substitute_reg_in_expr): Strengthen local
25137         "new_insn" from rtx to rtx_insn *.
25138         (create_insn_rtx_with_rhs): Likewise for return type and for local
25139         "insn_rtx".
25140         (create_insn_rtx_with_lhs): Likewise.
25141         (create_speculation_check): Likewise for local "insn_rtx".
25142         (implicit_clobber_conflict_p): Likewise for local "insn".
25143         (get_expr_cost): Likewise.
25144         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
25145         (move_cond_jump): Likewise for locals "next", "prev", "link",
25146         "head", "from", "to".
25147
25148 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25149
25150         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
25151         "next" from rtx to rtx_insn *.
25152         (find_conditional_protection): Likewise for local "next".
25153         (is_conditionally_protected): Likewise for local "insn1".
25154         (is_pfree): Likewise for locals "insn1", "insn2".
25155
25156 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25157
25158         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
25159         from rtx to rtx_insn *.
25160
25161         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
25162         locals "insn1", "insn2" from rtx to rtx_insn *.
25163         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
25164         locals "insn", "prev", "last_jump", "next_tail".
25165         (schedule_ebb): Likewise for params "head", "tail".
25166         (schedule_ebbs): Likewise for locals "tail", "head".
25167
25168         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
25169         to rtx_insn on "last_insn" in one of the invocations of
25170         schedule_ebb.
25171
25172 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25173
25174         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
25175         "elem", "insn" from rtx to rtx_insn *.
25176         (change_spec_dep_to_hard): Likewise.
25177         (get_back_and_forw_lists): Likewise for local "con".
25178         (sd_add_dep): Likewise for locals "elem", "insn".
25179         (sd_resolve_dep): Likewise for locals "pro", "con".
25180         (sd_unresolve_dep): Likewise.
25181         (sd_delete_dep): Likewise.
25182         (chain_to_prev_insn): Likewise for local "pro".
25183         (find_inc): Likewise for locals "pro", "con".
25184
25185 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25186
25187         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
25188         to rtx_insn *.
25189         (reg_set_between_p): Strengthen local "insn" from const_rtx to
25190         const rtx_insn *.
25191         (modified_between_p): Strengthen local "insn" from rtx to
25192         rtx_insn *.
25193         (remove_reg_equal_equiv_notes_for_regno): Likewise.
25194         (keep_with_call_p): Strengthen local "i2" from const_rtx to
25195         const rtx_insn *.
25196
25197 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25198
25199         * resource.c (next_insn_no_annul): Strengthen local "next" from
25200         rtx to rtx_insn *.
25201         (mark_referenced_resources): Likewise for local "insn".
25202
25203 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25204
25205         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
25206         to rtx_insn *.
25207         (find_reloads): Likewise for param 1.
25208         (subst_reloads): Likewise for sole param.
25209         (find_equiv_reg): Likwise for param 2.
25210         (regno_clobbered_p): Likwise for param 2.
25211         (reload): Likewise for param 1.
25212
25213         * caller-save.c (save_call_clobbered_regs): Strengthen local
25214         "insn" from rtx to rtx_insn *.
25215         (insert_one_insn): Likewise for local "insn".
25216
25217         * reload.c (this_insn): Likewise for this global.
25218         (find_reloads): Likewise for param "insn".
25219         (find_reloads_toplev): Likewise.
25220         (find_reloads_address): Likewise.
25221         (subst_reg_equivs): Likewise.
25222         (update_auto_inc_notes): Likewise.
25223         (find_reloads_address_1): Likewise.
25224         (find_reloads_subreg_address): Likewise.
25225         (subst_reloads): Likewise.
25226         (find_equiv_reg): Likewise, also for local "p".
25227         (regno_clobbered_p): Likewise for param "insn".
25228
25229         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
25230         array.
25231         (spill_reg_store): Likewise for the elements of this array.
25232         (remove_init_insns): Likewise for local "equiv_insn".
25233         (will_delete_init_insn_p): Likewise for param "insn".
25234         (reload): Likewise for param ""first" and local "insn".
25235         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
25236         rtx_insn *.
25237         (calculate_elim_costs_all_insns): Likewise.
25238         (delete_caller_save_insns): Likewise.
25239         (spill_failure): Likewise for param "insn".
25240         (delete_dead_insn): Likewise.
25241         (set_label_offsets): Likewise.
25242         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
25243         "prev_insn".
25244         (elimination_costs_in_insn): Likewise for param "insn".
25245         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
25246         when referring to an insn.
25247         (set_initial_label_offsets): Likewise.
25248         (set_offsets_for_label): Strengthen param "insn" from rtx to
25249         rtx_insn *.
25250         (init_eliminable_invariants): Likewise for param "first" and local
25251         "insn".
25252         (fixup_eh_region_note): Likewise for param "insn".
25253         (reload_as_needed): Likewise for locals "prev", "insn",
25254         "old_next", "old_prev", "next".
25255         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
25256         "last".
25257         (reload_inheritance_insn): Strengthen elements of this array from
25258         rtx to rtx_insn *.
25259         (failed_reload): Likewise for param "insn".
25260         (choose_reload_regs): Likewise for local "insn".  Replace use of
25261         NULL_RTX with NULL when referring to an insn.
25262         (input_reload_insns): Strengthen elements of this array from rtx
25263         to rtx_insn *.
25264         (other_input_address_reload_insns): Likewise for this global.
25265         (other_input_reload_insns): Likewise for this global.
25266         (input_address_reload_insns): Likwise for the elements of this
25267         array.
25268         (inpaddr_address_reload_insns): Likwise for the elements of this
25269         array.
25270         (output_reload_insns): Likewise for the elements of this array.
25271         (output_address_reload_insns): Likewise for the elements of this
25272         array.
25273         (outaddr_address_reload_insns): Likewise for the elements of this
25274         array.
25275         (operand_reload_insns): Likewise for this global.
25276         (other_operand_reload_insns): Likewise for this global.
25277         (other_output_reload_insns): Likewise for the elements of this
25278         array.
25279         (new_spill_reg_store): Likewise for the elements of this
25280         array.
25281         (emit_input_reload_insns): Likewise for locals "insn", "temp".
25282         Strengthen local "where" from rtx * to rtx_insn **.
25283         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
25284         from rtx to rtx_insn *.
25285         (do_input_reload): Likewise for local "insn".
25286         (do_output_reload): Likewise for local "insn".
25287         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
25288         (emit_insn_if_valid_for_reload): Likewise for return type and local
25289         "last".  Add checked cast to rtx_insn when returning "insn" since
25290         this has been through emit_insn.
25291         (gen_reload): Strengthen return type and locals "last", "insn", "set"
25292         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
25293         returning "insn" since it's been through
25294         emit_insn_if_valid_for_reload at this point.
25295         (delete_output_reload): Strengthen param "insn" and locals
25296         "output_reload_insn", "i2" from rtx to rtx_insn *.
25297         (delete_address_reloads): Likewise for params "dead_insn",
25298         "current_insn" and locals "prev", "next".
25299         (delete_address_reloads_1): Likewise for params "dead_insn",
25300         "current_insn" and locals "prev", "i2".
25301         (inc_for_reload): Likewise for locals "last", "add_insn".
25302         (add_auto_inc_notes): Strengthen param "insn" from rtx to
25303         rtx_insn *.
25304
25305         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
25306         param of this duplicate of the prototype from reload.h
25307
25308 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25309
25310         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
25311         rtx to rtx_insn *.
25312         (regstat_bb_compute_calls_crossed): Likewise.
25313
25314 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25315
25316         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
25317         to rtx_insn *.
25318         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
25319         with an insn.
25320         (regrename_analyze): Strengthen local "insn" from rtx to
25321         rtx_insn *.
25322         (scan_rtx_reg): Likewise for param "insn".
25323         (scan_rtx_address): Likewise.
25324         (scan_rtx): Likewise.
25325         (restore_operands): Likewise.
25326         (record_out_operands): Likewise.
25327         (build_def_use): Likewise for local "insn".  Replace use of
25328         NULL_RTX with NULL when dealing with an insn.
25329
25330 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25331
25332         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
25333         * reginfo.c (reg_scan): Likewise, also for local "insn".
25334         (reg_scan_mark_refs): Likewise for param "insn".
25335         (init_subregs_of_mode): Likewise for local "insn".
25336
25337 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25338
25339         * regcprop.c (struct queued_debug_insn_change): Strengthen field
25340         "insn" from rtx to rtx_insn *.
25341         (replace_oldest_value_reg): Likewise for param "insn".
25342         (replace_oldest_value_addr): Likewise.
25343         (replace_oldest_value_mem): Likewise.
25344         (apply_debug_insn_changes): Likewise for local "last_insn".
25345         (copyprop_hardreg_forward_1): Likewise for local "insn".
25346
25347 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25348
25349         * reg-stack.c (next_flags_user): Strengthen return type and param
25350         "insn" from rtx to rtx_insn *.
25351         (straighten_stack): Likewise for param "insn".
25352         (check_asm_stack_operands): Likewise.
25353         (remove_regno_note): Likewise.
25354         (emit_pop_insn): Likewise for return type, param "insn", local
25355         "pop_insn".
25356         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
25357         "limit" from rtx to rtx_insn *.
25358         (swap_to_top): Likewise for param "insn".
25359         (move_for_stack_reg): Likewise.
25360         (move_nan_for_stack_reg): Likewise.
25361         (swap_rtx_condition): Likewise.
25362         (compare_for_stack_reg): Likewise.
25363         (subst_all_stack_regs_in_debug_insn): Likewise.
25364         (subst_stack_regs_pat): Likewise, and local "insn2".
25365         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
25366         rtx_insn *.
25367         (subst_stack_regs): Likewise.
25368         (change_stack): Likewise.
25369         (convert_regs_1): Likewise for locals "insn", "next".
25370
25371 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25372
25373         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
25374         rtx_insn *.
25375         (combine_set_extension): Likewise for param "curr_insn".
25376         (transform_ifelse): Likewise for param "def_insn".
25377         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
25378         from vec<rtx> * to vec<rtx_insn *> *.
25379         (is_cond_copy_insn): Likewise for param "insn".
25380         (struct ext_state): Strengthen the four vec fields from vec<rtx>
25381         to vec<rtx_insn *>.
25382         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
25383         local "def_insn" from rtx to rtx_insn *.
25384         (get_sub_rtx): Likewise for param "def_insn".
25385         (merge_def_and_ext): Likewise.
25386         (combine_reaching_defs): Likewise.
25387         (add_removable_extension): Likewise for param "insn".
25388         (find_removable_extensions): Likewise for local "insn".
25389         (find_and_remove_re): Likewise for locals "curr_insn" and
25390         "def_insn".  Strengthen locals "reinsn_del_list" and
25391         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
25392
25393 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25394
25395         * recog.c (split_insn): Strengthen param "insn" and locals
25396         "first", "last" from rtx to rtx_insn *.
25397         (split_all_insns): Likewise for locals "insn", "next".
25398         (split_all_insns_noflow): Likewise.
25399
25400 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25401
25402         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
25403         const rtx_insn *.
25404         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25405         (debug_rtx_find): Likewise for param 1 "x".
25406
25407         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
25408         const_rtx to const rtx_insn *.  Likewise for local "insn".
25409         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25410         (debug_rtx_find): Likewise for param 1 "x".
25411         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
25412         from const_rtx to const rtx_insn * within the appropriate cases of
25413         the switch statement.
25414
25415         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
25416         Strengthen local "insns" from rtx to rtx_insn * since this is
25417         passed to a call to debug_rtx_list.
25418
25419 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25420
25421         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
25422         to rtx_insn *.
25423
25424         * function.c (stack_protect_epilogue): Add checked cast to
25425         rtx_insn for now when invoking predict_insn_def.
25426
25427         * predict.c (predict_insn): Strengthen param "insn" from rtx to
25428         rtx_insn *.
25429         (predict_insn_def): Likewise.
25430         (rtl_predict_edge): Likewise for local "last_insn".
25431         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
25432         const rtx_insn *.
25433         (combine_predictions_for_insn): Strengthen param "insn" from rtx
25434         to rtx_insn *.
25435         (bb_estimate_probability_locally): Likewise for local "last_insn".
25436         (expensive_function_p): Likewise for local "insn".
25437
25438         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
25439         local "jmp", since this is used when invoking predict_insn_def.
25440
25441 2014-08-22  Marek Polacek  <polacek@redhat.com>
25442
25443         PR c++/62199
25444         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
25445
25446 2014-08-22  Marek Polacek  <polacek@redhat.com>
25447
25448         PR c/61271
25449         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
25450         a comparison in parens.
25451         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
25452         in parens.
25453
25454 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25455
25456         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
25457         rtx_insn *.
25458
25459         * cprop.c (fis_get_condition): Likewise.
25460
25461         * postreload.c (reload_cse_regs): Likewise for param "first".
25462         (reload_cse_simplify): Likewise for param "insn".
25463         (reload_cse_regs_1): Likewise for local "insn".
25464         (reload_cse_simplify_set): Likewise for param "insn".
25465         (reload_cse_simplify_operands): Likewise.
25466         (struct reg_use): Likewise for field "insn".
25467         (reload_combine_purge_insn_uses): Likewise for param "insn".
25468         (fixup_debug_insns): Likewise for params "from", "to" and local
25469         "insn".
25470         (try_replace_in_use): Likewise for local "use_insn".
25471         (reload_combine_recognize_const_pattern): Likewise for param
25472         "insn" and locals "add_moved_after_insn", "use_insn".
25473         (reload_combine_recognize_pattern): Likewise for param "insn" and
25474         local "prev".
25475         (reload_combine): Likewise for locals "insn", "prev".
25476         (reload_combine_note_use): Likewise for param "insn".
25477         (move2add_use_add2_insn): Likewise.
25478         (move2add_use_add3_insn): Likewise.
25479         (reload_cse_move2add): Likewise, also for local "next".
25480         (move2add_note_store): Likewise for local "insn".
25481
25482 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25483
25484         * postreload-gcse.c (struct occr): Strengthen field "insn" from
25485         rtx to rtx_insn *.
25486         (struct unoccr): Likewise.
25487         (struct modifies_mem): Likewise.
25488         (alloc_mem): Likewise for local "insn".
25489         (insert_expr_in_table): Likewise for param "insn".
25490         (dump_expr_hash_table_entry): Likewise for local "insn".
25491         (oprs_unchanged_p): Likewise for param "insn".
25492         (load_killed_in_block_p): Likewise for local "setter".
25493         (record_last_reg_set_info): Likewise for param "insn".
25494         (record_last_reg_set_info_regno): Likewise.
25495         (record_last_mem_set_info): Likewise.
25496         (record_last_set_info): Likewise for local "last_set_insn".
25497         (record_opr_changes): Likewise for param "insn".
25498         (hash_scan_set): Likewise.
25499         (compute_hash_table): Likewise for local "insn".
25500         (get_avail_load_store_reg): Likewise for param "insn".
25501         (eliminate_partially_redundant_load): Likewise, also for locals
25502         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
25503         RTX for insns.
25504         (eliminate_partially_redundant_loads): Likewise for local "insn".
25505
25506 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25507
25508         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
25509         rtx to rtx_insn *.
25510         (expand_binop): Likewise for locals "entry_last", "last", "insns"
25511         (expand_twoval_unop): Likewise for locals entry_last", "last".
25512         (expand_twoval_binop): Likewise.
25513         (expand_twoval_binop_libfunc): Likewise for local "insns".
25514         (widen_leading): Likewise for local "last".
25515         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
25516         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
25517         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
25518         (expand_parity): Likewise for locals "last" and "seq".
25519         (expand_ffs): Likewise for local "seq".  Strengthen local
25520         "nonzero_label" from rtx to rtx_code_label *.
25521         (expand_absneg_bit): Strengthen local "insns" from rtx to
25522         rtx_insn *.
25523         (expand_unop_direct): Likewise for local "last".
25524         (expand_unop): Likewise for locals "last", "insns".
25525         (expand_abs_nojump): Likewise for local "last".
25526         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
25527         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
25528         rtx_insn *.
25529         (expand_copysign_absneg): Strengthen local "label" from rtx to
25530         rtx_code_label *.
25531         (expand_copysign_bit): Strengthen local "insns" from rtx to
25532         rtx_insn *.
25533         (struct no_conflict_data): Likewise for fields "first", "insn".
25534         (emit_libcall_block_1): Likewise for param "insns" and locals
25535         "next", "last", "insn".
25536         (emit_libcall_block): For now, add a checked cast to rtx_insn *
25537         on "insns" when invoking emit_libcall_block_1.  Ultimately we
25538         want to strengthen insns itself.
25539         (prepare_cmp_insn): Strengthen local "last" from rtx to
25540         rtx_insn *.
25541         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
25542         (prepare_float_lib_cmp): Likewise for local "insns".
25543         (emit_conditional_move): Likewise for local "last".
25544         (emit_conditional_add): Likewise.
25545         (have_sub2_insn): Likewise for local "seq".
25546         (expand_float): Likewise for local "insns".  Strengthen locals
25547         "label", "neglabel" from rtx to rtx_code_label *.
25548         (expand_fix): Likewise for locals "last", "insn", "insns" (to
25549         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
25550         (expand_fixed_convert): Likewise for local "insns" (to
25551         rtx_insn *).
25552         (expand_sfix_optab): Likewise for local "last".
25553         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
25554         to rtx_code_label *.
25555         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
25556         from rtx to rtx_insn *.
25557         (expand_atomic_fetch_op): Likewise for local "insn".
25558         (maybe_legitimize_operand_same_code): Likewise for local "last".
25559         (maybe_legitimize_operands): Likewise.
25560
25561 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25562
25563         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
25564         "insn" from rtx to rtx_insn *.
25565         (ps_rtl_insn): Likewise for return type.
25566         (doloop_register_get): Likewise for params "head", "tail" and
25567         locals "insn", "first_insn_not_to_check".
25568         (schedule_reg_move): Likewise for local "this_insn".
25569         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25570         of gen_move_insn for now.
25571         (reset_sched_times): Strengthen local "insn" from rtx to
25572         rtx_insn *.
25573         (permute_partial_schedule): Likewise.
25574         (duplicate_insns_of_cycles): Likewise for local "u_insn".
25575         (dump_insn_location): Likewise for param "insn".
25576         (loop_canon_p): Likewise for local "insn".
25577         (sms_schedule): Likewise.
25578         (print_partial_schedule): Likewise.
25579         (ps_has_conflicts): Likewise.
25580
25581 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25582
25583         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25584         "tailp" from rtx * to rtx_insn **.
25585
25586         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25587         from rtx to rtx_insn *.
25588         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25589         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
25590         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25591         rtx to rtx_insn *.
25592         * modulo-sched.c (const_iteration_count): Strengthen return type
25593         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
25594         use of NULL_RTX with NULL when working with insns.
25595         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25596         to rtx_insn *.
25597         (sms_schedule): Likewise.
25598         * sched-rgn.c (init_ready_list): Likewise, also for locals
25599         "src_head" and "src_next_tail".
25600         (compute_block_dependences): Likewise.
25601         (free_block_dependencies): Likewise.
25602         (debug_rgn_dependencies): Likewise.
25603         (free_rgn_deps): Likewise.
25604         (compute_priorities): Likewise.
25605         (schedule_region): Likewise.
25606         * sel-sched.c (find_ebb_boundaries): Likewise.
25607
25608         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25609         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25610
25611 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25612
25613         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25614         from rtx to rtx_insn *.
25615         (new_seginfo): Likewise for param "insn".
25616         (create_pre_exit): Likewise for locals "last_insn",
25617         "before_return_copy", "return_copy".
25618         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25619         "mode_set".
25620
25621 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25622
25623         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25624         from rtx to rtx_insn *.
25625         (lra_push_insn): Likewise for 1st param.
25626         (lra_push_insn_and_update_insn_regno_info): Likewise.
25627         (lra_pop_insn): Likewise for return type.
25628         (lra_invalidate_insn_data): Likewise for 1st param.
25629         (lra_set_insn_deleted): Likewise.
25630         (lra_delete_dead_insn): Likewise.
25631         (lra_process_new_insns): Likewise for first 3 params.
25632         (lra_set_insn_recog_data): Likewise for 1st param.
25633         (lra_update_insn_recog_data): Likewise.
25634         (lra_set_used_insn_alternative): Likewise.
25635         (lra_invalidate_insn_regno_info): Likewise.
25636         (lra_update_insn_regno_info): Likewise.
25637         (lra_former_scratch_operand_p): Likewise.
25638         (lra_eliminate_regs_1): Likewise.
25639         (lra_get_insn_recog_data): Likewise.
25640
25641         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25642         rtx to rtx_insn *.
25643
25644         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25645         "mv1" and "mv2".
25646         (substitute_within_insn): New.
25647         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25648         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
25649         Replace call to "substitute" with call to substitute_within_insn.
25650
25651         * lra-constraints.c (curr_insn): Strengthen from rtx to
25652         rtx_insn *.
25653         (get_equiv_with_elimination): Likewise for param "insn".
25654         (match_reload): Strengthen params "before" and "after" from rtx *
25655         to rtx_insn **.
25656         (emit_spill_move): Likewise for return type.  Add a checked cast
25657         to rtx_insn * on result of gen_move_insn for now.
25658         (check_and_process_move): Likewise for local "before".  Replace
25659         NULL_RTX with NULL when referring to insns.
25660         (process_addr_reg): Strengthen params "before" and "after" from
25661         rtx * to rtx_insn **.
25662         (insert_move_for_subreg): Likewise.
25663         (simplify_operand_subreg): Strengthen locals "before" and "after"
25664         from rtx to rtx_insn *.
25665         (process_address_1): Strengthen params "before" and "after" from
25666         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
25667         rtx to rtx_insn *.
25668         (process_address): Strengthen params "before" and "after" from
25669         rtx * to rtx_insn **.
25670         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25671         (curr_insn_transform): Strengthen locals "before" and "after"
25672         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
25673         to insns.
25674         (loc_equivalence_callback): Update cast of "data", changing
25675         resulting type from rtx to rtx_insn *.
25676         (substitute_pseudo_within_insn): New.
25677         (inherit_reload_reg): Strengthen param "insn" from rtx to
25678         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
25679         NULL when referring to insns.  Add a checked cast to rtx_insn *
25680         when using usage_insn to invoke lra_update_insn_regno_info.
25681         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25682         likewise for locals "restore", "save".  Add checked casts to
25683         rtx_insn * when using usage_insn to invoke
25684         lra_update_insn_regno_info and lra_process_new_insns.  Replace
25685         NULL_RTX with NULL when referring to insns.
25686         (split_if_necessary): Strengthen param "insn" from rtx to
25687         rtx_insn *.
25688         (update_ebb_live_info): Likewise for params "head", "tail" and local
25689         "prev_insn".
25690         (get_last_insertion_point): Likewise for return type and local "insn".
25691         (get_live_on_other_edges): Likewise for local "last".
25692         (inherit_in_ebb): Likewise for params "head", "tail" and locals
25693         "prev_insn", "next_insn", "restore".
25694         (remove_inheritance_pseudos): Likewise for local "prev_insn".
25695         (undo_optional_reloads): Likewise for local "insn".
25696
25697         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25698         "insn".
25699         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25700         insns.
25701         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25702         rtx_insn *.
25703         (spill_pseudos): Likewise for local "insn".
25704         (init_elimination): Likewise.
25705         (process_insn_for_elimination): Likewise for param "insn".
25706
25707         * lra-lives.c (curr_insn): Likewise.;
25708
25709         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25710         (remove_pseudos): Likewise for param "insn".
25711         (spill_pseudos): Likewise for local "insn".
25712         (lra_final_code_change): Likewise for locals "insn", "curr".
25713
25714         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25715         (lra_set_insn_deleted): Likewise.
25716         (lra_delete_dead_insn): Likewise, and for local "prev".
25717         (new_insn_reg): Likewise for param "insn".
25718         (lra_set_insn_recog_data): Likewise.
25719         (lra_update_insn_recog_data): Likewise.
25720         (lra_set_used_insn_alternative): Likewise.
25721         (get_insn_freq): Likewise.
25722         (invalidate_insn_data_regno_info): Likewise.
25723         (lra_invalidate_insn_regno_info): Likewise.
25724         (lra_update_insn_regno_info): Likewise.
25725         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25726         vec<rtx_insn *>.
25727         (lra_push_insn_1): Strengthen param "insn" from rtx to
25728         rtx_insn *.
25729         (lra_push_insn): Likewise.
25730         (lra_push_insn_and_update_insn_regno_info): Likewise.
25731         (lra_pop_insn): Likewise for return type and local "insn".
25732         (push_insns): Likewise for params "from", "to", and local "insn".
25733         (setup_sp_offset): Likewise for params "from", "last" and locals
25734         "before", "insn".
25735         (lra_process_new_insns): Likewise for params "insn", "before",
25736         "after" and local "last".
25737         (struct sloc): Likewise for field "insn".
25738         (lra_former_scratch_operand_p): Likewise for param "insn".
25739         (remove_scratches): Likewise for locals "insn", "last".
25740         (check_rtl): Likewise for local "insn".
25741         (add_auto_inc_notes): Likewise for param "insn".
25742         (update_inc_notes): Likewise for local "insn".
25743         (lra): Replace NULL_RTX with NULL when referring to insn.
25744
25745 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25746
25747         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25748         to rtx_insn *.
25749         (resolve_reg_notes): Likewise.
25750         (resolve_simple_move): Likewise for return type, param "insn", and
25751         locals "insns", "minsn".
25752         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25753         (resolve_use): Likewise.
25754         (resolve_debug): Likewise.
25755         (find_decomposable_shift_zext): Likewise.
25756         (resolve_shift_zext): Likewise for return type, param "insn", and
25757         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
25758         (decompose_multiword_subregs): Likewise for local "insn",
25759         "orig_insn", "decomposed_shift", "end".
25760
25761 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25762
25763         * basic-block.h (basic_block split_edge_and_insert): Strengthen
25764         param "insns" from rtx to rtx_insn *.
25765
25766         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25767         rtx to rtx_insn *.
25768         (struct iv_to_split): Likewise.
25769         (loop_exit_at_end_p): Likewise for local "insn".
25770         (split_edge_and_insert): Likewise for param "insns".
25771         (compare_and_jump_seq): Likewise for return type, param "cinsn",
25772         and locals "seq", "jump".
25773         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25774         "branch_code"; update invocations of compare_and_jump_seq to
25775         eliminate NULL_RTX in favor of NULL.
25776         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25777         rtx to rtx_insn *.
25778         (reset_debug_uses_in_loop): Likewise.
25779         (analyze_insn_to_expand_var): Likewise for param "insn".
25780         (analyze_iv_to_split_insn): Likewise.
25781         (analyze_insns_in_loop): Likewise for local "insn".
25782         (insert_base_initialization): Likewise for param
25783         "insn" and local "seq".
25784         (split_iv): Likewise for param "insn" and local "seq".
25785         (expand_var_during_unrolling): Likewise for param "insn".
25786         (insert_var_expansion_initialization): Likewise for local "seq".
25787         (combine_var_copies_in_loop_exit): Likewise.
25788         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25789         "insn".
25790         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25791         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25792         "next".
25793
25794 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25795
25796         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25797         rtx_insn *.
25798         (iv_analyze_result): Likewise.
25799         (iv_analyze_expr): Likewise.
25800         (biv_p): Likewise.
25801
25802         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25803         local "def_insn" from rtx to rtx_insn *.
25804         (get_biv_step_1): Likewise for local "insn".
25805         (iv_analyze_expr): Likewise for param "insn".
25806         (iv_analyze_def): Likewise for local "insn".
25807         (iv_analyze_op): Likewise for param "insn".
25808         (iv_analyze): Likewise.
25809         (iv_analyze_result): Likewise.
25810         (biv_p): Likewise.
25811         (suitable_set_for_replacement): Likewise.
25812         (simplify_using_initial_values): Likewise for local "insn".
25813         (iv_number_of_iterations): Likewise for param "insn".
25814         (check_simple_exit): Add checked cast to rtx_insn when invoking
25815         iv_number_of_iterations for now (until get_condition is
25816         strengthened).
25817
25818         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25819         "insn" from rtx to rtx_insn *.
25820         (analyze_insns_in_loop): Likewise for local "insn".
25821
25822 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25823
25824         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25825         to rtx_insn *.
25826         (struct invariant): Likewise.
25827         (hash_invariant_expr_1): Likewise for param "insn".
25828         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25829         (find_exits): Likewise for local "insn".
25830         (create_new_invariant): Likewise for param "insn".
25831         (check_dependencies): Likewise.
25832         (find_invariant_insn): Likewise.
25833         (record_uses): Likewise.
25834         (find_invariants_insn): Likewise.
25835         (find_invariants_bb): Likewise for local "insn".
25836         (get_pressure_class_and_nregs): Likewise for param "insn".
25837         (calculate_loop_reg_pressure): Likewise for local "insn".
25838
25839 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25840
25841         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25842         to rtx_insn *.
25843         (add_test): Likewise for locals "seq", "jump".
25844         (doloop_modify): Likewise for locals "sequence", "jump_insn".
25845
25846 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25847
25848         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25849         rtx_insn *.
25850         (rebuild_jump_labels_chain): Likewise for param "chain".
25851
25852         * cfgexpand.c (pass_expand::execute): Add checked cast to
25853         rtx_insn * when calling rebuild_jump_labels_chain in region where
25854         we know e->insns.r is non-NULL.
25855
25856         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25857         rtx_insn *.
25858         (rebuild_jump_labels): Likewise.
25859         (rebuild_jump_labels_chain): Likewise for param "chain".
25860         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25861         (init_label_info): Likewise for param "f".
25862         (maybe_propagate_label_ref): Likewise for params "jump_insn",
25863         "prev_nonjump_insn".
25864         (mark_all_labels): Likewise for param "f" and locals "insn",
25865         "prev_nonjump_insn".
25866
25867 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25868
25869         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25870         from rtx to rtx_insn *insn.
25871         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25872         (ira_add_allocno_copy): Likewise.
25873         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25874         rtx to rtx_insn *.
25875         (ira_create_copy): Likewise.
25876         (ira_add_allocno_copy): Likewise.
25877         (create_bb_allocnos): Likewise for local "insn".
25878         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25879         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25880         process_regs_for_copy for rtx_insn * param.
25881         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25882         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
25883         process_regs_for_copy for rtx_insn * param.
25884         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25885         * ira-costs.c (record_reg_classes): Likewise for param "insn".
25886         (record_operand_costs): Likewise.
25887         (scan_one_insn): Likewise for return type, and for param "insn".
25888         (process_bb_for_costs): Likewise for local "insn".
25889         (process_bb_node_for_hard_reg_moves): Likewise.
25890         * ira-emit.c (struct move): Likewise for field "insn".
25891         (create_move): Eliminate use of NULL_RTX when dealing with an
25892         rtx_insn *.
25893         (emit_move_list): Strengthen return type and locals "result",
25894         "insn" from rtx to rtx_insn *insn.
25895         (emit_moves): Likewise for locals "insns", "tmp".
25896         (ira_emit): Likewise for local "insn".
25897         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25898         "insn".
25899         (find_call_crossed_cheap_reg): Likewise.
25900         (process_bb_node_lives): Likewise for local "insn".
25901         * ira.c (decrease_live_ranges_number): Likewise.
25902         (compute_regs_asm_clobbered): Likewise.
25903         (build_insn_chain): Likewise.
25904         (find_moveable_pseudos): Likewise, also locals "def_insn",
25905         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
25906         to rtx_insn **.  Add a checked cast when assigning from
25907         "closest_use" into closest_uses array in a region where we know
25908         it's a non-NULL insn.
25909         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25910         to rtx_insn *.
25911         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25912         "last_interesting_insn", "uin".
25913         (move_unallocated_pseudos): Likewise for locals "def_insn",
25914         "move_insn", "newinsn".
25915
25916 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25917
25918         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25919         Strengthen locals "done_label", "do_error" from rtx to
25920         rtx_code_label *.
25921         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25922         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
25923         rtx_code_label *.
25924         (ubsan_expand_si_overflow_neg_check): Likewise for locals
25925         "done_label", "do_error" to rtx_code_label * and local  "last" to
25926         rtx_insn *.
25927         (ubsan_expand_si_overflow_mul_check): Likewise for locals
25928         "done_label", "do_error", "large_op0", "small_op0_large_op1",
25929         "one_small_one_large", "both_ops_large", "after_hipart_neg",
25930         "after_lopart_neg", "do_overflow", "hipart_different"  to
25931         rtx_code_label * and local  "last" to rtx_insn *.
25932
25933 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25934
25935         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25936         "insn" and "move_insn" from rtx to rtx_insn *.
25937
25938 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25939
25940         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25941         rtx_insn *.
25942         (cheap_bb_rtx_cost_p): Likewise.
25943         (first_active_insn): Likewise for return type and local "insn".
25944         (last_active_insn):  Likewise for return type and locals "insn",
25945         "head".
25946         (struct noce_if_info): Likewise for fields "jump", "insn_a",
25947         "insn_b".
25948         (end_ifcvt_sequence): Likewise for return type and locals "insn",
25949         "seq".
25950         (noce_try_move): Likewise for local "seq".
25951         (noce_try_store_flag): Likewise.
25952         (noce_try_store_flag_constants): Likewise.
25953         (noce_try_addcc): Likewise.
25954         (noce_try_store_flag_mask): Likewise.
25955         (noce_try_cmove): Likewise.
25956         (noce_try_minmax): Likewise.
25957         (noce_try_abs): Likewise.
25958         (noce_try_sign_mask): Likewise.
25959         (noce_try_bitop): Likewise.
25960         (noce_can_store_speculate_p): Likewise for local "insn".
25961         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25962         seq".
25963         (check_cond_move_block): Likewise for local "insn".
25964         (cond_move_convert_if_block): Likewise.
25965         (cond_move_process_if_block): Likewise for locals "seq",
25966         "loc_insn".
25967         (noce_find_if_block): Likewise for local "jump".
25968         (merge_if_block): Likewise for local "last".
25969         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25970         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25971         (block_has_only_trap): Likewise for return type and local "trap".
25972         (find_if_case_1): Likewise for local "jump".
25973         (dead_or_predicable): Likewise for locals "head", "end", "jump",
25974         "insn".
25975
25976 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25977
25978         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25979         "last_insn", "loop_end" from rtx to rtx_insn *.
25980
25981         * hw-doloop.c (scan_loop): Likewise for local "insn".
25982         (discover_loop): Likewise for param "tail_insn".
25983         (discover_loops): Likewise for local "tail".
25984
25985         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25986         cast to rtx_insn * when assigning from an rtx local to a
25987         hwloop_info's "last_insn" field.
25988
25989 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25990
25991         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25992         (add_delay_dependencies): Strengthen local "pro" from rtx to
25993         rtx_insn *.
25994         (recompute_todo_spec): Likewise.
25995         (dep_cost_1): Likewise for locals "insn", "used".
25996         (schedule_insn): Likewise for local "dbg".
25997         (schedule_insn): Likewise for locals "pro", "next".
25998         (unschedule_insns_until): Likewise for local "con".
25999         (restore_pattern): Likewise for local "next".
26000         (estimate_insn_tick): Likewise for local "pro".
26001         (resolve_dependencies): Likewise for local "next".
26002         (fix_inter_tick): Likewise.
26003         (fix_tick_ready): Likewise for local "pro".
26004         (add_to_speculative_block): Likewise for locals "check", "twin",
26005         "pro".
26006         (sched_extend_bb): Likewise for locals "end", "insn".
26007         (init_before_recovery): Likewise for local "x".
26008         (sched_create_recovery_block): Likewise for local "barrier".
26009         (create_check_block_twin): Likewise for local "pro".
26010         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
26011         "consumer".
26012         (unlink_bb_notes): Update for change to type of bb_header.
26013         Strengthen locals "prev", "label", "note", "next" from rtx to
26014         rtx_insn *.
26015         (clear_priorities): Likewise for local "pro".
26016
26017 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26018
26019         * gcse.c (struct occr): Strengthen field "insn" from rtx to
26020         rtx_insn *.
26021         (test_insn): Likewise for this global.
26022         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
26023         const rtx_insn *.
26024         (oprs_anticipatable_p): Likewise.
26025         (oprs_available_p): Likewise.
26026         (insert_expr_in_table): Strengthen param "insn" from  rtx to
26027         rtx_insn *.
26028         (hash_scan_set): Likewise.
26029         (hash_scan_clobber): Likewise.
26030         (hash_scan_call): Likewise.
26031         (hash_scan_insn): Likewise.
26032         (compute_hash_table_work): Likewise for local "insn".
26033         (process_insert_insn): Likewise for return type and local "pat".
26034         (insert_insn_end_basic_block): Likewise for locals "new_insn",
26035         "pat", "pat_end", "maybe_cc0_setter".
26036         (pre_edge_insert): Likewise for local "insn".
26037         (pre_insert_copy_insn): Likewise for param "insn".
26038         (pre_insert_copies): Likewise for local "insn".
26039         (struct set_data): Likewise for field "insn".
26040         (single_set_gcse): Likewise for param "insn".
26041         (gcse_emit_move_after): Likewise.
26042         (pre_delete): Likewise for local "insn".
26043         (update_bb_reg_pressure): Likewise for param "from" and local
26044         "insn".
26045         (should_hoist_expr_to_dom): Likewise for param "from".
26046         (hoist_code): Likewise for local "insn".
26047         (get_pressure_class_and_nregs): Likewise for param "insn".
26048         (calculate_bb_reg_pressure): Likewise for local "insn".
26049         (compute_ld_motion_mems): Likewise.
26050
26051 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26052
26053         * genpeep.c (main): Rename param back from "uncast_ins1" to
26054         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
26055         checked cast.
26056
26057         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
26058
26059 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
26060
26061         PR target/62195
26062         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
26063         documentation to state it is only for VSX operations.
26064
26065         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
26066         constraint only active if VSX.
26067
26068         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
26069         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
26070         (lfiwzx): Likewise.
26071
26072 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26073
26074         * fwprop.c (single_def_use_dom_walker::before_dom_children):
26075         Strengthen local "insn" from rtx to rtx_insn *.
26076         (use_killed_between): Likewise for param "target_insn".
26077         (all_uses_available_at): Likewise for param "target_insn" and
26078         local "next".
26079         (update_df_init): Likewise for params "def_insn", "insn".
26080         (update_df): Likewise for param "insn".
26081         (try_fwprop_subst): Likewise for param "def_insn" and local
26082         "insn".
26083         (free_load_extend): Likewise for param "insn".
26084         (forward_propagate_subreg): Likewise for param "def_insn" and
26085         local "use_insn".
26086         (forward_propagate_asm): Likewise for param "def_insn" and local
26087         "use_insn".
26088         (forward_propagate_and_simplify): Likewise for param "def_insn"
26089         and local "use_insn".
26090         (forward_propagate_into): Likewise for locals "def_insn" and
26091         "use_insn".
26092
26093 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26094
26095         * function.c (emit_initial_value_sets): Strengthen local "seq"
26096         from rtx to rtx_insn *.
26097         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
26098         local "seq".
26099         (instantiate_virtual_regs): Likewise for local "insn".
26100         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
26101         (reorder_blocks_1): Likewise for param "insns" and local "insn".
26102         (expand_function_end): Likewise for locals "insn" and "seq".
26103         (epilogue_done): Likewise for local "insn".
26104         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
26105         "last", "trial".
26106         (reposition_prologue_and_epilogue_notes): Likewise for locals
26107         "insn", "last", "note", "first".
26108         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
26109         (pass_match_asm_constraints::execute): Likewise for local "insn".
26110
26111 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26112
26113         * output.h (final_scan_insn): Strengthen return type from rtx to
26114         rtx_insn *.
26115         (final_forward_branch_p): Likewise for param.
26116         (current_output_insn): Likewise for this global.
26117
26118         * final.c (rtx debug_insn): Likewise for this variable.
26119         (current_output_insn): Likewise.
26120         (get_attr_length_1): Rename param "insn" to "uncast_insn",
26121         adding "insn" back in as an rtx_insn * with a checked cast, so
26122         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
26123         first param.
26124         (compute_alignments): Strengthen local "label" from rtx to
26125         rtx_insn *.
26126         (shorten_branches): Rename param from "first" to "uncast_first",
26127         introducing a new local rtx_insn * "first" using a checked cast to
26128         effectively strengthen "first" from rtx to rtx_insn * without
26129         affecting the type signature.  Strengthen locals "insn", "seq",
26130         "next", "label" from rtx to rtx_insn *.
26131         (change_scope): Strengthen param "orig_insn" and local "insn" from
26132         rtx to rtx_insn *.
26133         (final_start_function): Rename param from "first" to "uncast_first",
26134         introducing a new local rtx_insn * "first" using a checked cast to
26135         effectively strengthen "first" from rtx to rtx_insn * without
26136         affecting the type signature.  Strengthen local "insn" from rtx to
26137         rtx_insn *.
26138         (dump_basic_block_info): Strengthen param "insn" from rtx to
26139         rtx_insn *.
26140         (final): Rename param from "first" to "uncast_first",
26141         introducing a new local rtx_insn * "first" using a checked cast to
26142         effectively strengthen "first" from rtx to rtx_insn * without
26143         affecting the type signature.  Strengthen locals "insn", "next"
26144         from rtx to rtx_insn *.
26145         (output_alternate_entry_point): Strengthen param "insn" from rtx to
26146         rtx_insn *.
26147         (call_from_call_insn): Strengthen param "insn" from rtx to
26148         rtx_call_insn *.
26149         (final_scan_insn): Rename param from "insn" to "uncast_insn",
26150         introducing a new local rtx_insn * "insn" using a checked cast to
26151         effectively strengthen "insn" from rtx to rtx_insn * without
26152         affecting the type signature.  Strengthen return type and locals
26153         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
26154         now-redundant checked cast to rtx_insn * from both invocations of
26155         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
26156         introducing a local "call_insn" for use when invoking
26157         call_from_call_insn.
26158         (notice_source_line): Strengthen param "insn" from rtx to
26159         rtx_insn *.
26160         (leaf_function_p): Likewise for local "insn".
26161         (final_forward_branch_p): Likewise.
26162         (leaf_renumber_regs): Likewise for param "first".
26163         (rest_of_clean_state): Likewise for locals "insn" and "next".
26164         (self_recursive_call_p): Likewise for param "insn".
26165         (collect_fn_hard_reg_usage): Likewise for local "insn".
26166         (get_call_fndecl): Likewise for param "insn".
26167         (get_call_cgraph_rtl_info): Likewise.
26168         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
26169         introducing a new local rtx_insn * "insn" using a checked cast to
26170         effectively strengthen "insn" from rtx to rtx_insn * without
26171         affecting the type signature.
26172
26173         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
26174         cast when assigning from param "insn" to current_output_insn.
26175         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
26176         so that we can assign it back to current_output_insn.
26177
26178 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
26179
26180         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
26181         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
26182         atmxt540s and atmxt540sreva devices.
26183         * config/avr/avr-tables.opt: Regenerate.
26184         * config/avr/t-multilib: Regenerate.
26185         * doc/avr-mmcu.texi: Regenerate.
26186
26187 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26188
26189         * expr.c (convert_move): Strengthen local "insns" from rtx to
26190         rtx_insn *.
26191         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
26192         "top_label" from rtx to rtx_code_label *.
26193         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
26194         rtx_insn *.
26195         (emit_single_push_insn): Likewise for locals "prev", "last".
26196         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
26197         to rtx_code_label *.
26198         (store_constructor): Likewise for locals "loop_start", "loop_end".
26199         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
26200         rtx_insn *.
26201         (expand_expr_real_2): Likewise.
26202         (expand_expr_real_1): Strengthen local "label" from rtx to
26203         rtx_code_label *.
26204
26205 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26206
26207         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
26208         from rtx to rtx_insn *.
26209         (store_bit_field_1): Likewise.
26210         (extract_bit_field_1): Likewise.
26211         (expand_mult_const): Likewise for local "insns".
26212         (expmed_mult_highpart): Strengthen local "label" from rtx to
26213         rtx_code_label *.
26214         (expand_smod_pow2): Likewise.
26215         (expand_sdiv_pow2): Likewise.
26216         (expand_divmod): Strengthen locals "last", "insn" from rtx to
26217         rtx_insn *.  Strengthen locals "label", "label1", "label2",
26218         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
26219         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
26220         (emit_store_flag): Likewise.
26221         (emit_store_flag_force): Strengthen local "label" from rtx to
26222         rtx_code_label *.
26223         (do_cmp_and_jump): Likewise for param "label".
26224
26225 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26226
26227         * explow.c (force_reg): Strengthen local "insn" from rtx to
26228         rtx_insn *.
26229         (adjust_stack_1): Likewise.
26230         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
26231         "final_label", "available_label", "space_available" from rtx to
26232         rtx_code_label *.
26233         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
26234         (anti_adjust_stack_and_probe): Likewise.
26235
26236 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26237
26238         * except.h (sjlj_emit_function_exit_after): Strengthen param
26239         "after" from rtx to rtx_insn *.  This is only called with
26240         result of get_last_insn (in function.c) so type-change should be
26241         self-contained.
26242
26243         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
26244         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
26245         to rtx_insn *.  These fields are only used from except.c so this
26246         type-change should be self-contained to this patch.
26247
26248         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
26249         local "last" from rtx to rtx_insn *.
26250         (dw2_build_landing_pads): Likewise for local "seq".
26251         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
26252         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
26253         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
26254         rtx to rtx_insn *.
26255         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
26256         to rtx_insn *.
26257         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
26258         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
26259         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
26260         referring to an insn.  Strengthen local "dispatch_label" from
26261         rtx to rtx_code_label *.
26262         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
26263         rtx_insn *.
26264         (expand_eh_return): Strengthen local "around_label" from
26265         rtx to rtx_code_label *.
26266         (convert_to_eh_region_ranges): Strengthen locals "iter",
26267         "last_action_insn", "first_no_action_insn",
26268         "first_no_action_insn_before_switch",
26269         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
26270
26271 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26272
26273         * dwarf2out.c (last_var_location_insn): Strengthen this variable
26274         from rtx to rtx_insn *.
26275         (cached_next_real_insn): Likewise.
26276         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
26277         working with insns.
26278         (dwarf2out_var_location): Strengthen locals "next_real",
26279         "next_note", "expected_next_loc_note", "last_start", "insn" from
26280         rtx to rtx_insn *.
26281
26282 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26283
26284         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
26285         from rtx to rtx_insn *.
26286         (create_pseudo_cfg): Likewise for local "insn".
26287
26288 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26289
26290         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
26291         from rtx to rtx_insn *.
26292         (df_bb_regno_last_def_find): Likewise.
26293
26294         * df-problems.c (df_rd_bb_local_compute): Likewise.
26295         (df_lr_bb_local_compute): Likewise.
26296         (df_live_bb_local_compute): Likewise.
26297         (df_chain_remove_problem): Likewise.
26298         (df_chain_create_bb): Likewise.
26299         (df_word_lr_bb_local_compute): Likewise.
26300         (df_remove_dead_eq_notes): Likewise for param "insn".
26301         (df_note_bb_compute): Likewise for local "insn".
26302         (simulate_backwards_to_point): Likewise.
26303         (df_md_bb_local_compute): Likewise.
26304
26305         * df-scan.c (df_scan_free_bb_info): Likewise.
26306         (df_scan_start_dump): Likewise.
26307         (df_scan_start_block): Likewise.
26308         (df_install_ref_incremental): Likewise for local "insn".
26309         (df_insn_rescan_all): Likewise.
26310         (df_reorganize_refs_by_reg_by_insn): Likewise.
26311         (df_reorganize_refs_by_insn_bb): Likewise.
26312         (df_recompute_luids): Likewise.
26313         (df_bb_refs_record): Likewise.
26314         (df_update_entry_exit_and_calls): Likewise.
26315         (df_bb_verify): Likewise.
26316
26317 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26318
26319         * ddg.h (struct ddg_node): Strengthen fields "insn" and
26320         "first_note" from rtx to rtx_insn *.
26321         (get_node_of_insn): Likewise for param 2 "insn".
26322         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
26323
26324         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
26325         rtx_insn *.
26326         (mem_write_insn_p): Likewise.
26327         (mem_access_insn_p): Likewise.
26328         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
26329         (def_has_ccmode_p): Likewise for param "insn".
26330         (add_cross_iteration_register_deps): Likewise for locals
26331         "def_insn" and "use_insn".
26332         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
26333         (build_intra_loop_deps): Likewise for local "src_insn".
26334         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
26335         to rtx_insn *.
26336         (get_node_of_insn): Likewise for param "insn".
26337
26338 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26339
26340         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
26341         (deletable_insn_p): Strengthen param "insn" from rtx to
26342         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
26343         find_call_stack_args, since this is guarded by CALL_P (insn).
26344         (marked_insn_p): Strengthen param "insn" from rtx to
26345         rtx_insn *.
26346         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
26347         invoking find_call_stack_args, since this is guarded by
26348         CALL_P (insn).
26349         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
26350         rtx_insn *; we know this is an insn since this was called by
26351         mark_nonreg_stores.
26352         (mark_nonreg_stores_2): Likewise.
26353         (mark_nonreg_stores): Strengthen param "insn" from rtx to
26354         rtx_insn *.
26355         (find_call_stack_args): Strengthen param "call_insn" from rtx to
26356         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
26357         to rtx_insn *.
26358         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
26359         from rtx to rtx_insn *.
26360         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
26361         "next", "ref_insn".
26362         (delete_unmarked_insns): Likewise for locals "insn", "next".
26363         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
26364         (mark_reg_dependencies): Likewise for param "insn".
26365         (rest_of_handle_ud_dce): Likewise for local "insn".
26366         (word_dce_process_block): Likewise.
26367         (dce_process_block): Likewise.
26368
26369 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26370
26371         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
26372         from rtx to rtx_insn *.
26373         (struct change_cc_mode_args): Likewise for field "insn".
26374         (this_insn): Strengthen from rtx to rtx_insn *.
26375         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
26376         with insn.
26377         (validate_canon_reg): Strengthen param "insn" from rtx to
26378         rtx_insn *.
26379         (canon_reg): Likewise.
26380         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
26381         dealing with insn.
26382         (record_jump_equiv): Strengthen param "insn" from rtx to
26383         rtx_insn *.
26384         (try_back_substitute_reg): Likewise, also for locals "prev",
26385         "bb_head".
26386         (find_sets_in_insn): Likewise for param "insn".
26387         (canonicalize_insn): Likewise.
26388         (cse_insn): Likewise.  Add a checked cast.
26389         (invalidate_from_clobbers): Likewise for param "insn".
26390         (invalidate_from_sets_and_clobbers): Likewise.
26391         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
26392         dealing with insn.
26393         (cse_prescan_path): Strengthen local "insn" from rtx to
26394         rtx_insn *.
26395         (cse_extended_basic_block): Likewise for locals "insn" and
26396         "prev_insn".
26397         (cse_main): Likewise for param "f".
26398         (check_for_label_ref): Likewise for local "insn".
26399         (set_live_p): Likewise for second param ("insn").
26400         (insn_live_p): Likewise for first param ("insn") and for local
26401         "next".
26402         (cse_change_cc_mode_insn): Likewise for first param "insn".
26403         (cse_change_cc_mode_insns): Likewise for first and second params
26404         "start" and "end".
26405         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
26406         and "end".
26407         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
26408         "cc_src_insn".
26409
26410 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26411             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26412             Anna Tikhonova  <anna.tikhonova@intel.com>
26413             Ilya Tocar  <ilya.tocar@intel.com>
26414             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26415             Ilya Verbin  <ilya.verbin@intel.com>
26416             Kirill Yukhin  <kirill.yukhin@intel.com>
26417             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26418
26419         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
26420         New.
26421         * config/i386/sse.md
26422         (define_mode_iterator VI248_AVX2): Delete.
26423         (define_mode_iterator VI2_AVX2_AVX512BW): New.
26424         (define_mode_iterator VI48_AVX2): Ditto.
26425         (define_insn <shift_insn><mode>3): Delete.
26426         (define_insn "<shift_insn><mode>3<mask_name>" with
26427         VI2_AVX2_AVX512BW): New.
26428         (define_insn "<shift_insn><mode>3<mask_name>" with
26429         VI48_AVX2): Ditto.
26430
26431 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26432             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26433             Anna Tikhonova  <anna.tikhonova@intel.com>
26434             Ilya Tocar  <ilya.tocar@intel.com>
26435             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26436             Ilya Verbin  <ilya.verbin@intel.com>
26437             Kirill Yukhin  <kirill.yukhin@intel.com>
26438             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26439
26440         * config/i386/sse.md
26441         (define_mode_iterator VI4F_BRCST32x2): New.
26442         (define_mode_attr 64x2_mode): Ditto.
26443         (define_mode_attr 32x2mode): Ditto.
26444         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
26445         with VI4F_BRCST32x2): Ditto.
26446         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
26447         with V16FI mode iterator): Ditto.
26448         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26449         with V16FI): Ditto.
26450         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26451         with VI8F_BRCST64x2): Ditto.
26452
26453 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26454             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26455             Anna Tikhonova  <anna.tikhonova@intel.com>
26456             Ilya Tocar  <ilya.tocar@intel.com>
26457             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26458             Ilya Verbin  <ilya.verbin@intel.com>
26459             Kirill Yukhin  <kirill.yukhin@intel.com>
26460             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26461
26462         * config/i386/sse.md
26463         (define_mode_iterator VI8_AVX512VL): New.
26464         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
26465
26466 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
26467
26468         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
26469         (define_mode_iterator V48_AVX512VL): New.
26470         (define_mode_iterator V12_AVX512VL): Ditto.
26471         (define_insn <avx512>_load<mode>_mask): Split into two similar
26472         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
26473         Refactor output template.
26474         (define_insn "<avx512>_store<mode>_mask"): Ditto.
26475
26476 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26477
26478         * cprop.c (struct occr): Strengthen field "insn" from rtx to
26479         rtx_insn *.
26480         (reg_available_p): Likewise for param "insn".
26481         (insert_set_in_table): Likewise.
26482         (hash_scan_set): Likewise.
26483         (hash_scan_insn): Likewise.
26484         (make_set_regs_unavailable): Likewise.
26485         (compute_hash_table_work): Likewise for local "insn".
26486         (reg_not_set_p): Strengthen param "insn" from const_rtx to
26487         const rtx_insn *.
26488         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
26489         (try_replace_reg): Likewise.
26490         (find_avail_set): Likewise.
26491         (cprop_jump): Likewise for params "setcc", "jump".
26492         (constprop_register): Likewise for param "insn".
26493         (cprop_insn): Likewise.
26494         (do_local_cprop): Likewise.
26495         (local_cprop_pass): Likewise for local "insn".
26496         (bypass_block): Likewise for params "setcc" and "jump".
26497         (bypass_conditional_jumps): Likewise for locals "setcc" and
26498         "insn".
26499         (one_cprop_pass): Likewise for local "insn".
26500
26501 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26502
26503         * compare-elim.c (struct comparison_use): Strengthen field "insn"
26504         from rtx to rtx_insn *.
26505         (struct comparison): Likewise, also for field "prev_clobber".
26506         (conforming_compare): Likewise for param "insn".
26507         (arithmetic_flags_clobber_p): Likewise.
26508         (find_flags_uses_in_insn): Likewise.
26509         (find_comparison_dom_walker::before_dom_children): Likewise for
26510         locals "insn", "next", "last_clobber".
26511         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
26512
26513 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26514
26515         * combine-stack-adj.c (struct csa_reflist): Strengthen field
26516         "insn" from rtx to rtx_insn *.
26517         (single_set_for_csa): Likewise for param "insn".
26518         (record_one_stack_ref): Likewise.
26519         (try_apply_stack_adjustment): Likewise.
26520         (struct record_stack_refs_data): Likewise for field "insn".
26521         (maybe_move_args_size_note): Likewise for params "last" and "insn".
26522         (prev_active_insn_bb): Likewise for return type and param "insn".
26523         (next_active_insn_bb): Likewise.
26524         (force_move_args_size_note): Likewise for params "prev" and "last"
26525         and locals "test", "next_candidate", "prev_candidate".
26526         (combine_stack_adjustments_for_block): Strengthen locals
26527         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
26528         rtx_insn *.
26529
26530 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26531
26532         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
26533         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
26534         (subst_insn): Likewise for this variable.
26535         (added_links_insn): Likewise.
26536         (struct insn_link): Likewise for field "insn".
26537         (alloc_insn_link): Likewise for param "insn".
26538         (struct undobuf): Likewise for field "other_insn".
26539         (find_single_use): Likewise for param "insn" and local "next".
26540         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
26541         (delete_noop_moves): Likewise for locals "insn", "next".
26542         (create_log_links): Likewise for locals "insn", "use_insn".
26543         Strengthen local "next_use" from rtx * to rtx_insn **.
26544         (insn_a_feeds_b): Likewise for params "a", "b".
26545         (combine_instructions): Likewise for param "f" and locals "insn",
26546         "next", "prev", "first", "last_combined_insn", "link", "link1",
26547         "temp".  Replace use of NULL_RTX with NULL when referring to
26548         insns.
26549         (setup_incoming_promotions): Likewise for param "first"
26550         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
26551         (can_combine_p): Likewise for params "insn", "i3", "pred",
26552         "pred2", "succ", "succ2" and for local "p".
26553         (combinable_i3pat): Likewise for param "i3".
26554         (cant_combine_insn_p): Likewise for param "insn".
26555         (likely_spilled_retval_p): Likewise.
26556         (adjust_for_new_dest): Likewise.
26557         (update_cfg_for_uncondjump): Likewise, also for local "insn".
26558         (try_combine): Likewise for return type and for params "i3", "i2",
26559         "i1", "i0", "last_combined_insn", and for locals "insn",
26560         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
26561         "i0_insn".  Eliminate local "tem" in favor of new locals
26562         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
26563         checked cast for now to rtx_insn * on the return type of
26564         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
26565         insns.
26566         (find_split_point): Strengthen param "insn" from rtx to
26567         rtx_insn *.
26568         (simplify_set): Likewise for local "other_insn".
26569         (recog_for_combine): Likewise for param "insn".
26570         (record_value_for_reg): Likewise.
26571         (record_dead_and_set_regs_1): Likewise for local
26572         "record_dead_insn".
26573         (record_dead_and_set_regs): Likewise for param "insn".
26574         (record_promoted_value): Likewise.
26575         (check_promoted_subreg): Likewise.
26576         (get_last_value_validate): Likewise.
26577         (reg_dead_at_p): Likewise.
26578         (move_deaths): Likewise for param "to_insn".
26579         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26580         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
26581         in favor of new locals "tem_note" and "tem_insn", the latter being
26582         an rtx_insn *.
26583         (distribute_links): Strengthen locals "place", "insn" from rtx to
26584         rtx_insn *.
26585
26586 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26587
26588         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26589         than a const_rtx.
26590         (can_delete_label_p): Require a const rtx_code_label * rather than
26591         a const_rtx.
26592         (delete_insn): Add checked cast to rtx_code_label * when we know
26593         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
26594         rtx to rtx_insn *.
26595         (delete_insn_chain): Strengthen locals "prev" and "current" from
26596         rtx to rtx_insn *.  Add a checked cast when assigning from
26597         "finish" (strengthening the params will come later).  Add a
26598         checked cast to rtx_note * in region where we know
26599         NOTE_P (current).
26600         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26601         rtx_insn *.
26602         (compute_bb_for_insn): Likewise.
26603         (free_bb_for_insn): Likewise for local "insn".
26604         (compute_bb_for_insn): Likewise.
26605         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26606         local "insn" from rtx to rtx_insn *
26607         (flow_active_insn_p): Require a const rtx_insn * rather than a
26608         const_rtx.
26609         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26610         rtx_insn *.
26611         (can_fallthru): Likewise for locals "insn" and "insn2".
26612         (bb_note): Likewise for local "note".
26613         (first_insn_after_basic_block_note): Likewise for local "note" and
26614         for return type.
26615         (rtl_split_block): Likewise for locals "insn" and "next".
26616         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26617         "end".
26618         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26619         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26620         "prev", "tmp".
26621         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26622         them), "kill_from", "barrier", "new_insn".
26623         (patch_jump_insn): Likewise for params "insn", "old_label".
26624         (redirect_branch_edge): Likewise for locals "old_label", "insn".
26625         (force_nonfallthru_and_redirect): Likewise for locals "insn",
26626         "old_label", "new_label".
26627         (rtl_tidy_fallthru_edge): Likewise for local "q".
26628         (rtl_split_edge): Likewise for locals "before", "last".
26629         (commit_one_edge_insertion): Likewise for locals "before",
26630         "after", "insns", "tmp", "last", adding a checked cast where
26631         currently necessary.
26632         (commit_edge_insertions): Likewise.
26633         (rtl_dump_bb): Likewise for locals "insn", "last".
26634         (print_rtl_with_bb): Likewise for local "x".
26635         (rtl_verify_bb_insns): Likewise for local "x".
26636         (rtl_verify_bb_pointers): Likewise for local "insn".
26637         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26638         "head", "end".
26639         (rtl_verify_fallthru): Likewise for local "insn".
26640         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26641         (purge_dead_edges): Likewise for local "insn".
26642         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26643         (skip_insns_after_block): Likewise for return type and for locals
26644         "insn", "last_insn", "next_head", "prev".
26645         (record_effective_endpoints): Likewise for locals "next_insn",
26646         "insn", "end".
26647         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26648         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26649         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26650         (duplicate_insn_chain): For now, add checked cast from rtx to
26651         rtx_insn * when returning insn.
26652         (cfg_layout_duplicate_bb): Likewise for local "insn".
26653         (cfg_layout_delete_block): Likewise for locals "insn", "next",
26654         "prev", "remaints".
26655         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26656         (rtl_block_empty_p): Likewise.
26657         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26658         "split_point", "last".
26659         (rtl_block_ends_with_call_p): Likewise for local "insn".
26660         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26661         const rtx_insn *.
26662         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26663         "split_at_insn" from rtx to rtx_insn *.
26664         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26665         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26666         to const rtx_insn *.
26667         (rtl_account_profile_record): Likewise.
26668
26669 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26670
26671         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26672         rtx to rtx_insn *.
26673         (average_num_loop_insns): Likewise.
26674         (init_set_costs): Likewise for local "seq".
26675         (seq_cost): Likewise for param "seq", from const_rtx to const
26676         rtx_insn *.
26677
26678 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26679
26680         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26681         rtx to rtx_insn *.
26682
26683 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26684
26685         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26686         "f1" and "f2" from rtx * to rtx_insn **.
26687         (flow_find_head_matching_sequence): Likewise.
26688
26689         * cfgcleanup.c (try_simplify_condjump): Strengthen local
26690         "cbranch_insn" from rtx to rtx_insn *.
26691         (thread_jump): Likewise for local "insn".
26692         (try_forward_edges): Likewise for local "last".
26693         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26694         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26695         "real_b_end".
26696         (can_replace_by): Likewise for params "i1", "i2".
26697         (old_insns_match_p): Likewise.
26698         (merge_notes): Likewise.
26699         (walk_to_nondebug_insn): Likewise for param "i1".
26700         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26701         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
26702         "afterlast1", "afterlast2" from rtx to rtx_insn *.
26703         (flow_find_head_matching_sequence): Strengthen params "f1" and
26704         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
26705         "last1", "last2", "beforelast1", "beforelast2" from rtx to
26706         rtx_insn *.
26707         (outgoing_edges_match): Likewise for locals "last1", "last2".
26708         (try_crossjump_to_edge): Likewise for local "insn".
26709         Replace call to for_each_rtx with for_each_rtx_in_insn.
26710
26711         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26712         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26713         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
26714         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26715         (try_optimize_cfg): Strengthen local "last" from rtx to
26716         rtx_insn *.
26717         (delete_dead_jumptables): Likewise for locals "insn", "next",
26718         "label".
26719
26720         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26721         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26722         "rtx else_first_tail", to reflect the basic-block.h changes above.
26723
26724 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26725
26726         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26727         rtx_insn *.
26728         (purge_dead_tablejump_edges): Likewise.
26729         (find_bb_boundaries): Likewise for locals "insn", "end",
26730         "flow_transfer_insn".
26731
26732 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26733
26734         * caller-save.c (save_call_clobbered_regs): Strengthen locals
26735         "ins" and "prev" from rtx to rtx_insn *.
26736
26737 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26738
26739         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26740         rtx_insn *.
26741         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26742         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26743         "scan_start".
26744         (load_register_parameters): Likewise for local "before_arg".
26745         (check_sibcall_argument_overlap): Likewise for param "insn".
26746         (expand_call): Likewise for locals "normal_call_insns",
26747         "tail_call_insns", "insns", "before_call", "after_args",
26748         "before_arg", "last", "prev".  Strengthen one of the "last" from
26749         rtx to rtx_call_insn *.
26750         (fixup_tail_calls): Strengthen local "insn" from rtx to
26751         rtx_insn *.
26752         (emit_library_call_value_1): Likewise for locals "before_call" and
26753         "last".
26754
26755 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26756
26757         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26758         and "last" from rtx to rtx_insn *.
26759         (expand_builtin_nonlocal_goto): Likewise for local "insn".
26760         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26761         rtx_call_insn *.
26762         (expand_errno_check): Strengthen local "lab" from rtx to
26763         rtx_code_label *.
26764         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26765         rtx_insn *.
26766         (expand_builtin_mathfn_2): Likewise.
26767         (expand_builtin_mathfn_ternary): Likewise.
26768         (expand_builtin_mathfn_3): Likewise.
26769         (expand_builtin_interclass_mathfn): Likewise for local "last".
26770         (expand_builtin_int_roundingfn): Likewise for local "insns".
26771         (expand_builtin_int_roundingfn_2): Likewise.
26772         (expand_builtin_strlen): Likewise for local "before_strlen".
26773         (expand_builtin_strncmp): Likewise for local "seq".
26774         (expand_builtin_signbit): Likewise for local "last".
26775         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26776         from rtx to rtx_code_label *.
26777         (expand_stack_restore):  Strengthen local "prev" from rtx to
26778         rtx_insn *.
26779
26780 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26781
26782         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26783         to rtx_insn *.
26784         (struct btr_def_s): Likewise.
26785         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26786         const rtx_insn *.
26787         (add_btr_def): Likewise.
26788         (new_btr_user): Likewise.
26789         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26790         rtx to rtx_insn *.
26791         (link_btr_uses): Likewise.
26792         (move_btr_def): Likewise for locals "insp", "old_insn",
26793         "new_insn".  Add checked cast to rtx_insn * for now on result of
26794         gen_move_insn.
26795         (can_move_up): Strengthen param "insn" from const_rtx to
26796         const rtx_insn *.
26797
26798 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26799
26800         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26801         rtx_insn *.
26802         (get_uncond_jump_length): Likewise for locals "label", "jump".
26803         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26804         "jump", "insn".
26805         (add_labels_and_missing_jumps): Likewise for local "new_jump".
26806         (fix_up_fall_thru_edges): Likewise for local "old_jump".
26807         (find_jump_block): Likewise for local "insn".
26808         (fix_crossing_conditional_branches): Likewise for locals
26809         "old_jump", "new_jump".
26810         (fix_crossing_unconditional_branches): Likewise for locals
26811         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26812         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26813
26814 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26815
26816         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26817         rtx to rtx_insn *.
26818         (struct mem_insn): Likewise for field "insn".
26819         (reg_next_use): Strengthen from rtx * to rtx_insn **.
26820         (reg_next_inc_use): Likewise.
26821         (reg_next_def): Likewise.
26822         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26823         from rtx to rtx_insn *.
26824         (move_insn_before): Likewise for param "next_insn" and local "insns".
26825         (attempt_change): Likewise for local "mov_insn".
26826         (try_merge): Likewise for param "last_insn".
26827         (get_next_ref): Likewise for return type and local "insn".
26828         Strengthen param "next_array" from rtx * to rtx_insn **.
26829         (parse_add_or_inc): Strengthen param "insn" from rtx to
26830         rtx_insn *.
26831         (find_inc): Likewise for locals "insn" and "other_insn" (three of
26832         the latter).
26833         (merge_in_block): Likewise for locals "insn", "curr",
26834         "other_insn".
26835         (pass_inc_dec::execute): Update allocations of the arrays to
26836         reflect the stronger types.
26837
26838 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26839
26840         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26841         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
26842         from rtx to rtx_code_label *.
26843
26844 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26845
26846         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26847         to rtx_insn *.
26848
26849 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26850
26851         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26852         generated a warning and prevented bootstrapping the compiler.
26853
26854 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26855
26856         * rtl.h (delete_related_insns): Strengthen return type from rtx to
26857         rtx_insn *.
26858
26859         * jump.c (delete_related_insns): Likewise, also for locals "next"
26860         and "prev".
26861
26862 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26863
26864         * genautomata.c (output_internal_insn_latency_func): When writing
26865         the function "internal_insn_latency" to insn-automata.c,
26866         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26867         allowing the optional guard function of (define_bypass) clauses to
26868         expect a pair of rtx_insn *, rather than a pair of rtx.
26869         (output_insn_latency_func): When writing the function
26870         "insn_latency", add an "uncast_" prefix to params "insn" and
26871         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26872         using checked casts from the params, thus enabling the above
26873         change to the generated "internal_insn_latency" function.
26874
26875 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
26876
26877         PR tree-optimization/62091
26878         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26879         handle correctly arrays.
26880         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26881         inheritance binfos.
26882         (record_known_type): Walk into inner type.
26883         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26884         condition on no type changes.
26885
26886 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26887
26888         * genattrtab.c (write_attr_get): Within the generated get_attr_
26889         functions, rename param "insn" to "uncast_insn" and reintroduce
26890         "insn" as an local rtx_insn * using a checked cast, so that "insn"
26891         is an rtx_insn * within insn-attrtab.c
26892
26893 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26894
26895         * output.h (peephole): Strengthen return type from rtx to
26896         rtx_insn *.
26897         * rtl.h (delete_for_peephole): Likewise for both params.
26898         * genpeep.c (main): In generated "peephole" function, strengthen
26899         return type and local "insn" from rtx to rtx_insn *.  For now,
26900         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26901         rtx_insn *, with a checked cast.
26902         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26903         locals "insn", "next", "prev" from rtx to rtx_insn *.
26904
26905 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
26906
26907         PR tree-optimization/62112
26908         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26909         * gimple-iterator.h (gsi_replace): Return bool.
26910         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26911         moved from ref_may_alias_global_p.
26912         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26913         New overloads.
26914         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26915         (stmt_kills_ref_p_1): Rename...
26916         (stmt_kills_ref_p): ... to this.
26917         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26918         stmt_kills_ref_p): Declare.
26919         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26920         Move the self-assignment case...
26921         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26922
26923 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26924
26925         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26926
26927         * emit-rtl.c (try_split): Likewise, also for locals "before" and
26928         "after".  For now, don't strengthen param "trial", which requires
26929         adding checked casts when returning it.
26930
26931 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26932
26933         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26934         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
26935         "var_location" hook from rtx to rtx_insn *.
26936         (debug_nothing_rtx): Delete in favor of...
26937         (debug_nothing_rtx_code_label): New prototype.
26938         (debug_nothing_rtx_rtx): Delete unused prototype.
26939         (debug_nothing_rtx_insn): New prototype.
26940
26941         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26942         invoking debug_hooks->var_location (in two places, one in a NOTE
26943         case of a switch statement, the other guarded by a CALL_P
26944         conditional.  Add checked cast to rtx_code_label * when invoking
26945         debug_hooks->label (within CODE_LABEL case of switch statement).
26946
26947         * dbxout.c (dbx_debug_hooks): Update "label" hook from
26948         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26949         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26950         (xcoff_debug_hooks): Likewise.
26951         * debug.c (do_nothing_debug_hooks): Likewise.
26952         (debug_nothing_rtx): Delete in favor of...
26953         (debug_nothing_rtx_insn): New function.
26954         (debug_nothing_rtx_rtx): Delete unused function.
26955         (debug_nothing_rtx_code_label): New function.
26956         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26957         debug_nothing_rtx to debug_nothing_rtx_code_label.
26958         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26959         to rtx_insn *.
26960         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26961         debug_nothing_rtx to debug_nothing_rtx_insn.
26962         (sdbout_label): Strengthen param "insn" from rtx to
26963         rtx_code_label *.
26964         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26965         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26966         "var_location" hook from debug_nothing_rtx to
26967         debug_nothing_rtx_insn.
26968
26969 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26970
26971         * recog.h (insn_output_fn): Update this function typedef to match
26972         the changes below to the generated output functions, strengthening
26973         the 2nd param from rtx to rtx_insn *.
26974
26975         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26976         insn when invoking an output function, to match the new signature
26977         of insn_output_fn with a stronger second param.
26978
26979         * genconditions.c (write_header): In the generated code for
26980         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26981         to match the other changes in this patch.
26982
26983         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26984         the generated "gen_" functions from rtx to rtx_insn * within their
26985         implementations.
26986
26987         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26988         the subfunctions within the generated "recog_", "split", "peephole2"
26989         function trees from rtx to rtx_insn *.  For now, the top-level
26990         generated functions ("recog", "split", "peephole2") continue to
26991         take a plain rtx for "insn", to avoid introducing dependencies on
26992         other patches.  Rename this 2nd param from "insn" to
26993         "uncast_insn", and reintroduce "insn" as a local variable of type
26994         rtx_insn *, initialized at the top of the generated function with
26995         a checked cast on "uncast_insn".
26996         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26997         the generated "gen_" functions from rtx to rtx_insn * within their
26998         prototypes.
26999
27000         * genoutput.c (process_template): Strengthen the 2nd param within
27001         the generated "output_" functions "insn" from rtx to rtx_insn *.
27002
27003 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
27004
27005         * tree-profile.c (tree_profiling): Skip external functions
27006         when doing coverage instrumentation.
27007         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
27008
27009 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27010
27011         * config/rs6000/altivec.h (vec_cpsgn): New #define.
27012         (vec_mergee): Likewise.
27013         (vec_mergeo): Likewise.
27014         (vec_cntlz): Likewise.
27015         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
27016         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
27017         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
27018         VMRGEW, and VMRGOW.
27019         * doc/extend.texi: Document various forms of vec_cpsgn,
27020         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
27021         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
27022         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
27023         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
27024         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
27025
27026 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27027
27028         * config/rs6000/rs6000.c (context.h): New include.
27029         (tree-pass.h): Likewise.
27030         (make_pass_analyze_swaps): New decl.
27031         (rs6000_option_override): Register pass_analyze_swaps.
27032         (swap_web_entry): New subsclass of web_entry_base (df.h).
27033         (special_handling_values): New enum.
27034         (union_defs): New function.
27035         (union_uses): Likewise.
27036         (insn_is_load_p): Likewise.
27037         (insn_is_store_p): Likewise.
27038         (insn_is_swap_p): Likewise.
27039         (rtx_is_swappable_p): Likewise.
27040         (insn_is_swappable_p): Likewise.
27041         (chain_purpose): New enum.
27042         (chain_contains_only_swaps): New function.
27043         (mark_swaps_for_removal): Likewise.
27044         (swap_const_vector_halves): Likewise.
27045         (adjust_subreg_index): Likewise.
27046         (permute_load): Likewise.
27047         (permute_store): Likewise.
27048         (handle_special_swappables): Likewise.
27049         (replace_swap_with_copy): Likewise.
27050         (dump_swap_insn_table): Likewise.
27051         (rs6000_analyze_swaps): Likewise.
27052         (pass_data_analyze_swaps): New pass_data.
27053         (pass_analyze_swaps): New rtl_opt_pass.
27054         (make_pass_analyze_swaps): New function.
27055         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
27056
27057 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27058
27059         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
27060         type from rtx to rtx_insn *.
27061         (create_copy_of_insn_rtx): Likewise.
27062         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
27063         (create_copy_of_insn_rtx): Likewise, also for local "res".
27064
27065 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27066
27067         * rtl.h (find_first_parameter_load): Strengthen return type from
27068         rtx to rtx_insn *.
27069         * rtlanal.c (find_first_parameter_load): Strengthen return type
27070         from rtx to rtx_insn *.  Add checked cast for now, to postpone
27071         strengthening the params.
27072
27073 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27074
27075         PR fortran/44054
27076         * diagnostic.c: Set default caret.
27077         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
27078         line is needed.
27079         * diagnostic.h (struct diagnostic_context):
27080
27081 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27082
27083         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
27084         (sel_bb_head): Strengthen return type insn_t (currently just an
27085         rtx) to rtx_insn *.
27086         (sel_bb_end): Likewise.
27087
27088         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
27089         (sel_bb_head): Strengthen return type and local "head" from
27090         insn_t (currently just an rtx) to rtx_insn *.
27091         (sel_bb_end): Likewise for return type.
27092         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
27093         working with insn.
27094
27095 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27096
27097         * basic-block.h (get_last_bb_insn): Strengthen return type from
27098         rtx to rtx_insn *.
27099         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
27100         end".
27101
27102 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27103
27104         PR fortran/44054
27105         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
27106         to here ...
27107         (diagnostic_report_diagnostic): ... from here.
27108         * toplev.c (general_init): Move code to c-family.
27109
27110 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27111
27112         * df.h (web_entry_base): Replace existing struct web_entry with a
27113         new class web_entry_base with only the predecessor member.
27114         (unionfind_root): Remove declaration and move to class member.
27115         (unionfind_union): Remove declaration and move to friend
27116         function.
27117         (union_defs): Remove declaration.
27118         * web.c (web_entry_base::unionfind_root): Modify to be member
27119         function and adjust accessors.
27120         (unionfind_union): Modify to be friend function and adjust
27121         accessors.
27122         (web_entry): New subclass of web_entry_base containing the reg
27123         member.
27124         (union_match_dups): Modify for struct -> class changes.
27125         (union_defs): Likewise.
27126         (entry_register): Likewise.
27127         (pass_web::execute): Likewise.
27128
27129 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
27130
27131         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
27132         builtin define __VEC_ELEMENT_REG_ORDER__.
27133
27134 2014-08-20  Martin Jambor  <mjambor@suse.cz>
27135             Wei Mi  <wmi@google.com>
27136
27137         PR ipa/60449
27138         PR middle-end/61776
27139         * tree-ssa-operands.c (update_stmt_operands): Remove
27140         MODIFIED_NORETURN_CALLS.
27141         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
27142         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
27143         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
27144         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
27145         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
27146         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
27147         (gimple_call_set_ctrl_altering): New func.
27148         (gimple_call_ctrl_altering_p): Ditto.
27149         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
27150         (make_blocks): Use gimple_call_initialize_ctrl_altering.
27151         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
27152         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
27153         remove MODIFIED_NORETURN_CALLS.
27154
27155 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
27156
27157         * coverage.c (coverage_compute_profile_id): Return non-0;
27158         also handle symbols with unique name.
27159         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
27160
27161 2014-08-20  Steve Ellcey  <sellcey@mips.com>
27162
27163         PR middle-end/49191
27164         * doc/sourcebuild.texi (non_strict_align): New.
27165
27166 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
27167
27168         * cgraphunit.c (ipa_passes, compile): Reshedule
27169         symtab_remove_unreachable_nodes passes; update comments.
27170         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
27171         TODO_remove_functions before the pass; the functions ought to be
27172         already removed.
27173         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
27174         TODO_remove_functions.
27175         * passes.c (pass_data_early_local_passes): Do not schedule function
27176         removal.
27177         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
27178
27179 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27180
27181         PR c/59304
27182         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
27183         before setting the option.
27184         * diagnostic.c (diagnostic_classify_diagnostic): Record
27185         command-line status.
27186
27187 2014-08-20  Richard Biener  <rguenther@suse.de>
27188
27189         PR lto/62190
27190         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
27191         to build uint{16,32,64}_type_node.
27192
27193 2014-08-20  Terry Guo  <terry.guo@arm.com>
27194
27195         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
27196         with immediate_operand.
27197
27198 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
27199
27200         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
27201         "insn" from an as_a to a safe_as_a, for the case when "insn" is
27202         NULL.
27203
27204 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27205
27206         PR preprocessor/51303
27207         * incpath.c (remove_duplicates): Use cpp_warning.
27208
27209 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27210
27211         PR c/60975
27212         PR c/53063
27213         * doc/options.texi (CPP): Document it.
27214         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
27215         * optc-gen.awk: Handle CPP.
27216         * opth-gen.awk: Likewise.
27217
27218 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27219
27220         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
27221         rtx_insn *.
27222         (duplicate_insn_chain): Likewise.
27223         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
27224         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
27225         checked cast for now (until we can strengthen the params in the
27226         same way).
27227         (duplicate_insn_chain): Likewise.
27228
27229 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27230
27231         * rtl.h (next_cc0_user): Strengthen return type from rtx to
27232         rtx_insn *.
27233         (prev_cc0_setter): Likewise.
27234
27235         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
27236         rtx_insn *, adding checked casts for now as necessary.
27237         (prev_cc0_setter): Likewise.
27238
27239 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27240
27241         * expr.h (emit_move_insn): Strengthen return type from rtx to
27242         rtx_insn *.
27243         (emit_move_insn_1): Likewise.
27244         (emit_move_complex_push): Likewise.
27245         (emit_move_complex_parts): Likewise.
27246
27247         * expr.c (emit_move_via_integer): Strengthen return type from rtx
27248         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
27249         with insns.
27250         (emit_move_complex_push): Strengthen return type from rtx to
27251         rtx_insn *.
27252         (emit_move_complex): Likewise, also for local "ret".
27253         (emit_move_ccmode): Likewise.
27254         (emit_move_multi_word): Likewise for return type and locals
27255         "last_insn", "seq".
27256         (emit_move_insn_1): Likewise for return type and locals "result",
27257         "ret".
27258         (emit_move_insn): Likewise for return type and local "last_insn".
27259         (compress_float_constant): Likewise.
27260
27261 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27262
27263         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
27264         from rtx to rtx_insn *.
27265
27266         * rtl.h (emit_insn_before): Likewise.
27267         (emit_insn_before_noloc): Likewise.
27268         (emit_insn_before_setloc): Likewise.
27269         (emit_jump_insn_before): Likewise.
27270         (emit_jump_insn_before_noloc): Likewise.
27271         (emit_jump_insn_before_setloc): Likewise.
27272         (emit_call_insn_before): Likewise.
27273         (emit_call_insn_before_noloc): Likewise.
27274         (emit_call_insn_before_setloc): Likewise.
27275         (emit_debug_insn_before): Likewise.
27276         (emit_debug_insn_before_noloc): Likewise.
27277         (emit_debug_insn_before_setloc): Likewise.
27278         (emit_label_before): Likewise.
27279         (emit_insn_after): Likewise.
27280         (emit_insn_after_noloc): Likewise.
27281         (emit_insn_after_setloc): Likewise.
27282         (emit_jump_insn_after): Likewise.
27283         (emit_jump_insn_after_noloc): Likewise.
27284         (emit_jump_insn_after_setloc): Likewise.
27285         (emit_call_insn_after): Likewise.
27286         (emit_call_insn_after_noloc): Likewise.
27287         (emit_call_insn_after_setloc): Likewise.
27288         (emit_debug_insn_after): Likewise.
27289         (emit_debug_insn_after_noloc): Likewise.
27290         (emit_debug_insn_after_setloc): Likewise.
27291         (emit_label_after): Likewise.
27292         (emit_insn): Likewise.
27293         (emit_debug_insn): Likewise.
27294         (emit_jump_insn): Likewise.
27295         (emit_call_insn): Likewise.
27296         (emit_label): Likewise.
27297         (gen_clobber): Likewise.
27298         (emit_clobber): Likewise.
27299         (gen_use): Likewise.
27300         (emit_use): Likewise.
27301         (emit): Likewise.
27302
27303         (emit_barrier_before): Strengthen return type from rtx to
27304         rtx_barrier *.
27305         (emit_barrier_after): Likewise.
27306         (emit_barrier): Likewise.
27307
27308         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
27309         from rtx to rtx_insn *.  Add checked casts for now when converting
27310         "last" from rtx to rtx_insn *.
27311         (emit_insn_before_noloc): Likewise for return type.
27312         (emit_jump_insn_before_noloc): Likewise.
27313         (emit_call_insn_before_noloc): Likewise.
27314         (emit_debug_insn_before_noloc): Likewise.
27315         (emit_barrier_before): Strengthen return type and local "insn"
27316         from rtx to rtx_barrier *.
27317         (emit_label_before): Strengthen return type from rtx to
27318         rtx_insn *.  Add checked cast for now when returning param
27319         (emit_pattern_after_noloc): Strengthen return type from rtx to
27320         rtx_insn *.  Add checked casts for now when converting "last" from
27321         rtx to rtx_insn *.
27322         (emit_insn_after_noloc): Strengthen return type from rtx to
27323         rtx_insn *.
27324         (emit_jump_insn_after_noloc): Likewise.
27325         (emit_call_insn_after_noloc): Likewise.
27326         (emit_debug_insn_after_noloc): Likewise.
27327         (emit_barrier_after): Strengthen return type from rtx to
27328         rtx_barrier *.
27329         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
27330         Add checked cast for now when converting "label" from rtx to
27331         rtx_insn *.
27332         (emit_pattern_after_setloc): Strengthen return type from rtx to
27333         rtx_insn *.  Add checked casts for now when converting "last" from
27334         rtx to rtx_insn *.
27335         (emit_pattern_after): Strengthen return type from rtx to
27336         rtx_insn *.
27337         (emit_insn_after_setloc): Likewise.
27338         (emit_insn_after): Likewise.
27339         (emit_jump_insn_after_setloc): Likewise.
27340         (emit_jump_insn_after): Likewise.
27341         (emit_call_insn_after_setloc): Likewise.
27342         (emit_call_insn_after): Likewise.
27343         (emit_debug_insn_after_setloc): Likewise.
27344         (emit_debug_insn_after): Likewise.
27345         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
27346         when converting "last" from rtx to rtx_insn *.
27347         (emit_pattern_before): Strengthen return type from rtx to
27348         rtx_insn *.
27349         (emit_insn_before_setloc): Likewise.
27350         (emit_insn_before): Likewise.
27351         (emit_jump_insn_before_setloc): Likewise.
27352         (emit_jump_insn_before): Likewise.
27353         (emit_call_insn_before_setloc): Likewise.
27354         (emit_call_insn_before): Likewise.
27355         (emit_debug_insn_before_setloc): Likewise.
27356         (emit_debug_insn_before): Likewise.
27357         (emit_insn): Strengthen return type and locals "last", "insn",
27358         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
27359         within cases where we know we have an insn.
27360         (emit_debug_insn): Likewise.
27361         (emit_jump_insn): Likewise.
27362         (emit_call_insn): Strengthen return type and local "insn" from rtx
27363         to rtx_insn *.
27364         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
27365         a checked cast to rtx_insn * for now on "label".
27366         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
27367         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
27368         (emit_use): Likewise.
27369         (gen_use): Likewise, also for local "seq".
27370         (emit): Likewise for return type and local "insn".
27371         (rtx_insn): Likewise for return type and local "new_rtx".
27372
27373         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
27374         from rtx to rtx_barrier *.
27375
27376         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
27377         changed return type from rtx to rtx_insn *, we must update
27378         "emit_fn" type, and this in turn means updating...
27379         (frame_insn): ...this.  Strengthen return type from rtx to
27380         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
27381
27382 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27383
27384         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
27385         rtx to rtx_jump_table_data *.  Also for local.
27386         * rtl.h (emit_jump_table_data): Likewise.
27387
27388 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27389
27390         * basic-block.h (create_basic_block_structure): Strengthen third
27391         param "bb_note" from rtx to rtx_note *.
27392         * rtl.h (emit_note_before): Strengthen return type from rtx to
27393         rtx_note *.
27394         (emit_note_after): Likewise.
27395         (emit_note): Likewise.
27396         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27397         * function.h (struct rtl_data): Strengthen field
27398         "x_stack_check_probe_note" from rtx to rtx_note *.
27399
27400         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
27401         from rtx to rtx_note *.
27402         * cfgrtl.c (create_basic_block_structure): Strengthen third param
27403         "bb_note" from rtx to rtx_note *.
27404         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
27405         when calling emit_note_copy.
27406         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
27407         rtx_note *.
27408         (emit_note_after): Likewise.
27409         (emit_note_before): Likewise.
27410         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27411         (emit_note): Likewise.
27412         * except.c (emit_note_eh_region_end): Likewise for return type.
27413         Strengthen local "next" from rtx to rtx_insn *.
27414         (convert_to_eh_region_ranges): Strengthen local "note"
27415         from rtx to rtx_note *.
27416         * final.c (change_scope): Likewise.
27417         (reemit_insn_block_notes): Likewise, for both locals named "note".
27418         Also, strengthen local "insn" from rtx to rtx_insn *.
27419         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
27420         rtx to rtx_note *.
27421         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
27422         strengthen local "seq" from rtx to rtx_insn *.
27423         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
27424         to rtx_note *.
27425         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
27426         vec<rtx_note *>.
27427         (get_bb_note_from_pool): Strengthen return type from rtx to
27428         rtx_note *.
27429         (sel_create_basic_block): Strengthen local "new_bb_note" from
27430         insn_t to rtx_note *.
27431         * var-tracking.c (emit_note_insn_var_location): Strengthen local
27432         "note" from rtx to rtx_note *.
27433         (emit_notes_in_bb): Likewise.
27434
27435 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27436
27437         * function.h (struct rtl_data): Strengthen field
27438         "x_parm_birth_insn" from rtx to rtx_insn *.
27439         * function.c (struct assign_parm_data_all): Strengthen fields
27440         "first_conversion_insn" and "last_conversion_insn" from rtx to
27441         rtx_insn *.
27442
27443 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27444
27445         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
27446         to rtx_insn *; also for local "var_end_seq".
27447         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
27448         (maybe_cleanup_end_of_block): Likewise for param "last" and local
27449         "insn".
27450         (expand_gimple_cond): Likewise for locals "last2" and "last".
27451         (mark_transaction_restart_calls): Likewise for local "insn".
27452         (expand_gimple_stmt): Likewise for return type and locals "last"
27453         and "insn".
27454         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
27455         (avoid_complex_debug_insns): Likewise for param "insn".
27456         (expand_debug_locations): Likewise for locals "insn", "last",
27457         "prev_insn" and "insn2".
27458         (expand_gimple_basic_block): Likewise for local "last".
27459         (construct_exit_block): Likewise for locals "head", "end",
27460         "orig_end".
27461         (pass_expand::execute): Likewise for locals "var_seq",
27462         "var_ret_seq", "next".
27463
27464 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27465
27466         * asan.h (asan_emit_stack_protection): Strengthen return type from
27467         rtx to rtx_insn *.
27468         * asan.c (asan_emit_stack_protection): Likewise.  Add local
27469         "insns" to hold the return value.
27470
27471 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27472
27473         * basic-block.h (bb_note): Strengthen return type from rtx to
27474         rtx_note *.
27475         * sched-int.h (bb_note): Likewise.
27476         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
27477
27478 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27479
27480         * rtl.h (make_insn_raw): Strengthen return type from rtx to
27481         rtx_insn *.
27482
27483         * emit-rtl.c (make_insn_raw): Strengthen return type and local
27484         "insn" from rtx to rtx_insn *.
27485         (make_debug_insn_raw): Strengthen return type from rtx to
27486         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
27487         (make_jump_insn_raw):  Strengthen return type from rtx to
27488         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
27489         (make_call_insn_raw):  Strengthen return type from rtx to
27490         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
27491         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
27492         callback from rtx to rtx_insn *; likewise for local "insn" and
27493         "next", adding a checked cast to rtx_insn in the relevant cases of
27494         the switch statement.
27495         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
27496         callback from rtx to rtx_insn *.
27497         (emit_pattern_after_setloc): Likewise.
27498         (emit_pattern_after): Likewise.
27499         (emit_pattern_before_setloc): Likewise.
27500         (emit_pattern_before): Likewise.
27501
27502 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27503
27504         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
27505         rtx_call_insn *.
27506         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
27507         accepting an rtx_insn *.
27508         (last_call_insn): Strengthen return type from rtx to
27509         rtx_call_insn *.
27510
27511 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27512
27513         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
27514         "insns" from rtx to rtx_insn *.
27515         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
27516         locals "insn" and "prev".
27517
27518 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27519
27520         * rtl.h (tablejump_p): Strengthen third param from rtx * to
27521         rtx_jump_table_data **.
27522
27523         * cfgbuild.c (make_edges): Introduce local "table", using it in
27524         place of "tmp" for jump table data.
27525         (find_bb_boundaries): Strengthen local "table" from rtx to
27526         rtx_jump_table_data *.
27527         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27528         (outgoing_edges_match): Likewise for locals "table1" and "table2".
27529         (try_crossjump_to_edge): Likewise.
27530         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
27531         "table".
27532         (patch_jump_insn): Introduce local "table", using it in place of
27533         "tmp" for jump table data.
27534         (force_nonfallthru_and_redirect): Introduce local "table", so that
27535         call to tablejump_p can receive an rtx_jump_table_data **.  Update
27536         logic around the call to overwrite "note" appropriately if
27537         tablejump_p returns non-zero.
27538         (get_last_bb_insn): Introduce local "table", using it in place of
27539         "tmp" for jump table data.
27540         * dwarf2cfi.c (create_trace_edges): Likewise.
27541
27542         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
27543         from rtx to rtx_jump_table_data *.
27544         (create_fix_barrier): Strengthen local "tmp" from rtx to
27545         rtx_jump_table_data *.
27546         (arm_reorg): Likewise for local "table".
27547
27548         * config/s390/s390.c (s390_chunkify_start): Likewise.
27549
27550         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
27551
27552         * jump.c (delete_related_insns): Strengthen local "lab_next" from
27553         rtx to rtx_jump_table_data *.
27554
27555         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
27556         rtx_jump_table_data **.  Add a checked cast when writing through
27557         the pointer: we know there that local "table" is non-NULL and that
27558         JUMP_TABLE_DATA_P (table) holds.
27559         (label_is_jump_target_p): Introduce local "table", using it in
27560         place of "tmp" for jump table data.
27561
27562 2014-08-19  Marek Polacek  <polacek@redhat.com>
27563
27564         PR c++/62153
27565         * doc/invoke.texi: Document -Wbool-compare.
27566
27567 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27568
27569         * rtl.h (entry_of_function): Strengthen return type from rtx to
27570         rtx_insn *.
27571         * cfgrtl.c (entry_of_function): Likewise.
27572
27573 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27574
27575         * emit-rtl.h (get_insns): Strengthen return type from rtx to
27576         rtx_insn *, adding a checked cast for now.
27577         (get_last_insn): Likewise.
27578
27579 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27580
27581         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27582         rtx_code_label *.
27583
27584         * emit-rtl.c (gen_label_rtx): Likewise.
27585
27586 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27587
27588         * rtl.h (previous_insn): Strengthen return type from rtx to
27589         rtx_insn *.
27590         (next_insn): Likewise.
27591         (prev_nonnote_insn): Likewise.
27592         (prev_nonnote_insn_bb): Likewise.
27593         (next_nonnote_insn): Likewise.
27594         (next_nonnote_insn_bb): Likewise.
27595         (prev_nondebug_insn): Likewise.
27596         (next_nondebug_insn): Likewise.
27597         (prev_nonnote_nondebug_insn): Likewise.
27598         (next_nonnote_nondebug_insn): Likewise.
27599         (prev_real_insn): Likewise.
27600         (next_real_insn): Likewise.
27601         (prev_active_insn): Likewise.
27602         (next_active_insn): Likewise.
27603
27604         * emit-rtl.c (next_insn): Strengthen return type from rtx to
27605         rtx_insn *, adding a checked cast.
27606         (previous_insn): Likewise.
27607         (next_nonnote_insn): Likewise.
27608         (next_nonnote_insn_bb): Likewise.
27609         (prev_nonnote_insn): Likewise.
27610         (prev_nonnote_insn_bb): Likewise.
27611         (next_nondebug_insn): Likewise.
27612         (prev_nondebug_insn): Likewise.
27613         (next_nonnote_nondebug_insn): Likewise.
27614         (prev_nonnote_nondebug_insn): Likewise.
27615         (next_real_insn): Likewise.
27616         (prev_real_insn): Likewise.
27617         (next_active_insn): Likewise.
27618         (prev_active_insn): Likewise.
27619
27620         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27621         param "stepfunc" so that it returns an rtx_insn * rather than an
27622         rtx, to track the change to prev_nonnote_insn_bb, which is the
27623         only function this is called with.
27624         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27625
27626 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
27627
27628         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27629         assert.
27630
27631 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27632
27633         * coretypes.h (class rtx_debug_insn): Add forward declaration.
27634         (class rtx_nonjump_insn): Likewise.
27635         (class rtx_jump_insn): Likewise.
27636         (class rtx_call_insn): Likewise.
27637         (class rtx_jump_table_data): Likewise.
27638         (class rtx_barrier): Likewise.
27639         (class rtx_code_label): Likewise.
27640         (class rtx_note): Likewise.
27641
27642         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27643         adding the invariant DEBUG_INSN_P (X).
27644         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27645         the invariant NONJUMP_INSN_P (X).
27646         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27647         the invariant JUMP_P (X).
27648         (class rtx_call_insn): New, a subclass of rtx_insn, adding
27649         the invariant CALL_P (X).
27650         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27651         invariant JUMP_TABLE_DATA_P (X).
27652         (class rtx_barrier): New, a subclass of rtx_insn, adding the
27653         invariant BARRIER_P (X).
27654         (class rtx_code_label): New, a subclass of rtx_insn, adding
27655         the invariant LABEL_P (X).
27656         (class rtx_note): New, a subclass of rtx_insn, adding
27657         the invariant NOTE_P(X).
27658         (is_a_helper <rtx_debug_insn *>::test): New.
27659         (is_a_helper <rtx_nonjump_insn *>::test): New.
27660         (is_a_helper <rtx_jump_insn *>::test): New.
27661         (is_a_helper <rtx_call_insn *>::test): New.
27662         (is_a_helper <rtx_jump_table_data *>::test): New functions,
27663         overloaded for both rtx and rtx_insn *.
27664         (is_a_helper <rtx_barrier *>::test): New.
27665         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27666         for both rtx and rtx_insn *.
27667         (is_a_helper <rtx_note *>::test): New.
27668
27669 2014-08-19  Marek Polacek  <polacek@redhat.com>
27670
27671         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27672         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27673         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27674         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27675
27676 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27677
27678         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27679         rtx_insn *.  To help with transition, for now, convert from an
27680         access macro into a pair of functions: BND_TO, returning an
27681         rtx_insn *, and...
27682         (SET_BND_TO): New function, for use where BND_TO is used as an
27683         lvalue.
27684
27685         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27686         SET_BND_TO.
27687         (BND_TO): New function, adding a checked cast.
27688         (SET_BND_TO): New function.
27689
27690         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27691         SET_BND_TO.
27692         (compute_av_set_on_boundaries): Likewise.
27693
27694 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27695
27696         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27697         destination if it is used in source.
27698         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27699         (*popcount<mode>2_falsedep_1): Likewise.
27700
27701 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27702
27703         PR other/62168
27704         * configure.ac: Set install_gold_as_default to no first.
27705         * configure: Regenerated.
27706
27707 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27708
27709         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27710         "note_list" field will eventually be an rtx_insn *.  To help with
27711         transition, for now, convert from an access macro into a pair of
27712         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27713         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27714         used as an lvalue.
27715
27716         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27717         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27718
27719         * sel-sched-ir.c (init_bb): Likewise.
27720         (sel_restore_notes): Likewise.
27721         (move_bb_info): Likewise.
27722         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27723         (SET_BB_NOTE_LIST): New function.
27724
27725 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27726
27727         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27728         field will eventually be an rtx_insn *.  To help with transition,
27729         for now, convert from an access macro into a pair of functions:
27730         VINSN_INSN_RTX, returning an rtx_insn *, and...
27731         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27732         is used as an lvalue.
27733
27734         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27735         SET_VINSN_INSN_RTX where it's used as an lvalue.
27736         (VINSN_INSN_RTX): New function.
27737         (SET_VINSN_INSN_RTX): New function.
27738
27739 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27740
27741         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27742         eventually be rtx_insn *, but to help with transition, for now,
27743         convert from an access macro into a pair of functions: DEP_PRO
27744         returning an rtx_insn * and...
27745         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27746         lvalue, returning an rtx&.
27747         (DEP_CON): Analogous changes to DEP_PRO above.
27748         (SET_DEP_CON): Likewise.
27749
27750         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27751         an lvalue to SET_DEP_CON.
27752         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27753         (sd_copy_back_deps): Likewise for DEP_CON.
27754         (DEP_PRO): New function, adding a checked cast for now.
27755         (DEP_CON): Likewise.
27756         (SET_DEP_PRO): New function.
27757         (SET_DEP_CON): Likewise.
27758
27759 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27760
27761         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27762         (extra_options): Add i386/cygwin.opt.
27763         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27764         (CPP_SPEC): Accept -pthread.
27765         (LINK_SPEC): Ditto.
27766         (GOMP_SELF_SPECS): Update comment.
27767         * config/i386/cygwin.opt: New file for -pthread flag.
27768
27769 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27770
27771         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27772         * df.h (DF_REF_INSN): Convert from a macro to a function, so
27773         that we can return an rtx_insn *.
27774
27775 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27776
27777         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27778         when building executables, not DLLs.  Add --large-address-aware
27779         under the same conditions.
27780         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27781         when building executables, not DLLs.  Add --large-address-aware
27782         under the same conditions when using -m32.
27783
27784         * config/i386/cygwin-stdint.h: Throughout, make type
27785         definitions dependent on target architecture, not host.
27786
27787 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27788
27789         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
27790         the return type from rtx to rtx_insn *,  which will enable various
27791         conversions in followup patches.  For now this is is done by a
27792         checked cast.
27793         (NEXT_INSN): Likewise.
27794         (SET_PREV_INSN): Convert to an inline function.  This is intended
27795         for use as an lvalue, and so returns an rtx& to allow in-place
27796         modification.
27797         (SET_NEXT_INSN): Likewise.
27798
27799 2014-07-08  Mark Wielaard  <mjw@redhat.com>
27800
27801         PR debug/59051
27802         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27803
27804 2014-08-19  Marek Polacek  <polacek@redhat.com>
27805
27806         PR c/61271
27807         * cgraphunit.c (handle_alias_pairs): Fix condition.
27808
27809 2014-08-19  Richard Biener  <rguenther@suse.de>
27810
27811         * gimple-fold.c (fold_gimple_assign): Properly build a
27812         null-pointer constant when devirtualizing addresses.
27813
27814 2014-07-07  Mark Wielaard  <mjw@redhat.com>
27815
27816         * dwarf2out.c (decl_quals): New function.
27817         (modified_type_die): Take one cv_quals argument instead of two,
27818         one for const and one for volatile.
27819         (add_type_attribute): Likewise.
27820         (generic_parameter_die): Call add_type_attribute with one modifier
27821         argument.
27822         (base_type_for_mode): Likewise.
27823         (add_bounds_info): Likewise.
27824         (add_subscript_info): Likewise.
27825         (gen_array_type_die): Likewise.
27826         (gen_descr_array_type_die): Likewise.
27827         (gen_entry_point_die): Likewise.
27828         (gen_enumeration_type_die): Likewise.
27829         (gen_formal_parameter_die): Likewise.
27830         (gen_subprogram_die): Likewise.
27831         (gen_variable_die): Likewise.
27832         (gen_const_die): Likewise.
27833         (gen_field_die): Likewise.
27834         (gen_pointer_type_die): Likewise.
27835         (gen_reference_type_die): Likewise.
27836         (gen_ptr_to_mbr_type_die): Likewise.
27837         (gen_inheritance_die): Likewise.
27838         (gen_subroutine_type_die): Likewise.
27839         (gen_typedef_die): Likewise.
27840         (force_type_die): Likewise.
27841
27842 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27843
27844         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27845         if unset.
27846         * configure: Regenerate.
27847
27848 2014-08-19  Richard Biener  <rguenther@suse.de>
27849
27850         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27851         DECL_EXTERNALs in BLOCKs as non-references.
27852         * tree-streamer-out.c (streamer_write_chain): Likewise.
27853
27854 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27855             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27856             Anna Tikhonova  <anna.tikhonova@intel.com>
27857             Ilya Tocar  <ilya.tocar@intel.com>
27858             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27859             Ilya Verbin  <ilya.verbin@intel.com>
27860             Kirill Yukhin  <kirill.yukhin@intel.com>
27861             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27862
27863         * config/i386/sse.md
27864         (define_mode_iterator VI48_AVX512F): Delete.
27865         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27866         (define_mode_iterator VI2_AVX512VL): Ditto.
27867         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27868         Delete.
27869         (define_insn
27870         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27871         New.
27872         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27873         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27874         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27875         with VI48_AVX512F_AVX512VL): New.
27876         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27877         with VI2_AVX512VL): Ditto.
27878
27879 2014-08-19  Marek Polacek  <polacek@redhat.com>
27880
27881         * doc/invoke.texi: Document -Wc99-c11-compat.
27882
27883 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27884
27885         * rtl.h (PREV_INSN): Split macro in two: the existing one,
27886         for rvalues, and...
27887         (SET_PREV_INSN): New macro, for use as an lvalue.
27888         (NEXT_INSN, SET_NEXT_INSN): Likewise.
27889
27890         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27891         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27892         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27893         (fixup_abnormal_edges): Likewise.
27894         (unlink_insn_chain): Likewise.
27895         (fixup_reorder_chain): Likewise.
27896         (cfg_layout_delete_block): Likewise.
27897         (cfg_layout_merge_blocks): Likewise.
27898         * combine.c (update_cfg_for_uncondjump): Likewise.
27899         * emit-rtl.c (link_insn_into_chain): Likewise.
27900         (remove_insn): Likewise.
27901         (delete_insns_since): Likewise.
27902         (reorder_insns_nobb): Likewise.
27903         (emit_insn_after_1): Likewise.
27904         * final.c (rest_of_clean_state): Likewise.
27905         (final_scan_insn): Likewise.
27906         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27907         * haifa-sched.c (concat_note_lists): Likewise.
27908         (remove_notes): Likewise.
27909         (restore_other_notes): Likewise.
27910         (move_insn): Likewise.
27911         (unlink_bb_notes): Likewise.
27912         (restore_bb_notes): Likewise.
27913         * jump.c (delete_for_peephole): Likewise.
27914         * optabs.c (emit_libcall_block_1): Likewise.
27915         * reorg.c (emit_delay_sequence): Likewise.
27916         (fill_simple_delay_slots): Likewise.
27917         * sel-sched-ir.c (sel_move_insn): Likewise.
27918         (sel_remove_insn): Likewise.
27919         (get_bb_note_from_pool): Likewise.
27920         * sel-sched.c (move_nop_to_previous_block): Likewise.
27921
27922         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27923         * config/c6x/c6x.c (gen_one_bundle): Likewise.
27924         (c6x_gen_bundles): Likewise.
27925         (hwloop_optimize): Likewise.
27926         * config/frv/frv.c (frv_function_prologue): Likewise.
27927         (frv_register_nop): Likewise.
27928         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27929         (ia64_reorg): Likewise.
27930         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27931         (mep_make_bundle): Likewise.
27932         (mep_bundle_insns): Likewise.
27933         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27934         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27935         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27936
27937 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27938
27939         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
27940         return type from rtx to rtx_insn *.
27941         (BB_END): Likewise.
27942         (BB_HEADER): Likewise.
27943         (BB_FOOTER): Likewise.
27944         (SET_BB_HEAD): Convert to a function.
27945         (SET_BB_END): Likewise.
27946         (SET_BB_HEADER): Likewise.
27947         (SET_BB_FOOTER): Likewise.
27948
27949         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27950         Strengthen the return type from rtx to rtx_insn *.  For now, this
27951         is done by adding a checked cast, but this will eventually
27952         become a field lookup.
27953         (BB_END): Likewise.
27954         (BB_HEADER): Likewise.
27955         (BB_FOOTER): Likewise.
27956         (SET_BB_HEAD): New function, from macro of same name.  This is
27957         intended for use as an lvalue, and so returns an rtx& to allow
27958         in-place modification.
27959         (SET_BB_END): Likewise.
27960         (SET_BB_HEADER): Likewise.
27961         (SET_BB_FOOTER): Likewise.
27962
27963 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27964
27965         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27966         for rvalues, and...
27967         (SET_BB_HEAD): New macro, for use as a lvalue.
27968         (BB_END, SET_BB_END): Likewise.
27969         (BB_HEADER, SET_BB_HEADER): Likewise.
27970         (BB_FOOTER, SET_BB_FOOTER): Likewise.
27971
27972         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27973         of BB_* macros into SET_BB_* macros.
27974         (fix_crossing_unconditional_branches): Likewise.
27975         * caller-save.c (save_call_clobbered_regs): Likewise.
27976         (insert_one_insn): Likewise.
27977         * cfgbuild.c (find_bb_boundaries): Likewise.
27978         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27979         (outgoing_edges_match): Likewise.
27980         (try_optimize_cfg): Likewise.
27981         * cfgexpand.c (expand_gimple_cond): Likewise.
27982         (expand_gimple_tailcall): Likewise.
27983         (expand_gimple_basic_block): Likewise.
27984         (construct_exit_block): Likewise.
27985         * cfgrtl.c (delete_insn): Likewise.
27986         (create_basic_block_structure): Likewise.
27987         (rtl_delete_block): Likewise.
27988         (rtl_split_block): Likewise.
27989         (emit_nop_for_unique_locus_between): Likewise.
27990         (rtl_merge_blocks): Likewise.
27991         (block_label): Likewise.
27992         (try_redirect_by_replacing_jump): Likewise.
27993         (emit_barrier_after_bb): Likewise.
27994         (fixup_abnormal_edges): Likewise.
27995         (record_effective_endpoints): Likewise.
27996         (relink_block_chain): Likewise.
27997         (fixup_reorder_chain): Likewise.
27998         (fixup_fallthru_exit_predecessor): Likewise.
27999         (cfg_layout_duplicate_bb): Likewise.
28000         (cfg_layout_split_block): Likewise.
28001         (cfg_layout_delete_block): Likewise.
28002         (cfg_layout_merge_blocks): Likewise.
28003         * combine.c (update_cfg_for_uncondjump): Likewise.
28004         * emit-rtl.c (add_insn_after): Likewise.
28005         (remove_insn): Likewise.
28006         (reorder_insns): Likewise.
28007         (emit_insn_after_1): Likewise.
28008         * haifa-sched.c (get_ebb_head_tail): Likewise.
28009         (restore_other_notes): Likewise.
28010         (move_insn): Likewise.
28011         (sched_extend_bb): Likewise.
28012         (fix_jump_move): Likewise.
28013         * ifcvt.c (noce_process_if_block): Likewise.
28014         (dead_or_predicable): Likewise.
28015         * ira.c (update_equiv_regs): Likewise.
28016         * reg-stack.c (change_stack): Likewise.
28017         * sel-sched-ir.c (sel_move_insn): Likewise.
28018         * sel-sched.c (move_nop_to_previous_block): Likewise.
28019
28020         * config/c6x/c6x.c (hwloop_optimize): Likewise.
28021         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
28022
28023 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28024
28025         * rtl.h (for_each_rtx_in_insn): New function.
28026         * rtlanal.c (for_each_rtx_in_insn): Likewise.
28027
28028 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28029
28030         * coretypes.h (class rtx_insn): Add forward declaration.
28031
28032         * rtl.h: Include is-a.h.
28033         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
28034         workaround to ensure gengtype knows inheritance is occurring,
28035         whilst continuing to use the pre-existing special-casing for
28036         rtx_def.
28037         (class rtx_insn): New subclass of rtx_def, adding the
28038         invariant that we're dealing with something we can sanely use
28039         INSN_UID, NEXT_INSN, PREV_INSN on.
28040         (is_a_helper <rtx_insn *>::test): New.
28041         (is_a_helper <const rtx_insn *>::test): New.
28042
28043 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28044
28045         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
28046
28047 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
28048
28049         * ipa-visibility.c (update_visibility_by_resolution_info): Do no
28050         turn UNDEF comdats as extern.
28051
28052 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
28053
28054         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
28055         to BUILT_IN_UNREACHABLE.
28056
28057 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
28058
28059         PR target/62011
28060         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
28061         New tune flag.
28062         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
28063         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
28064         (ffs<mode>2): Do not expand with tzcnt for
28065         TARGET_AVOID_FALSE_DEP_FOR_BMI.
28066         (ffssi2_no_cmove): Ditto.
28067         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
28068         (ctz<mode>2): New expander.
28069         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
28070         (*ctz<mode>2_falsedep): New insn.
28071         (*ctz<mode>2): Rename from ctz<mode>2.
28072         (clz<mode>2_lzcnt): New expander.
28073         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
28074         (*clz<mode>2_lzcnt_falsedep): New insn.
28075         (*clz<mode>2): Rename from ctz<mode>2.
28076         (popcount<mode>2): New expander.
28077         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
28078         (*popcount<mode>2_falsedep): New insn.
28079         (*popcount<mode>2): Rename from ctz<mode>2.
28080         (*popcount<mode>2_cmp): Remove.
28081         (*popcountsi2_cmp_zext): Ditto.
28082
28083 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
28084
28085         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
28086         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
28087         * config/microblaze/microblaze.h
28088         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
28089
28090 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
28091
28092         PR other/62168
28093         * configure.ac: Set install_gold_as_default to no for
28094         --enable-gold=no.
28095         * configure: Regenerated.
28096
28097 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
28098
28099         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
28100         * config.in: Add undef of HAVE_isl.
28101         * configure: Regenerate.
28102         * configure.ac: Add definition of HAVE_isl.
28103         * graphite-blocking.c: Add checking of HAVE_isl.
28104         * graphite-dependences.c: Likewise.
28105         * graphite-interchange.c: Likewise.
28106         * graphite-isl-ast-to-gimple.c: Likewise.
28107         * graphite-optimize-isl.c: Likewise.
28108         * graphite-poly.c: Likewise.
28109         * graphite-scop-detection.c: Likewise.
28110         * graphite-sese-to-poly.c: Likewise.
28111         * graphite.c: Likewise.
28112         * toplev.c: Replace the checking of HAVE_cloog with the checking
28113         of HAVE_isl.
28114
28115 2014-08-18  Richard Biener  <rguenther@suse.de>
28116
28117         PR tree-optimization/62090
28118         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
28119         (fold_builtin_3): Do not fold snprintf.
28120         (fold_builtin_4): Likewise.
28121         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
28122         moved from builtins.c.
28123         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
28124         (gimple_fold_builtin): Do not fold sprintf here.
28125
28126 2014-08-18  Richard Biener  <rguenther@suse.de>
28127
28128         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
28129         code to ...
28130         (maybe_canonicalize_mem_ref_addr): ... this function.
28131         (fold_stmt_1): Apply it here before all simplification.
28132
28133 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
28134
28135         PR ipa/61800
28136         * cgraph.h (cgraph_node::create_indirect_edge): Add
28137         compute_indirect_info param.
28138         * cgraph.c (cgraph_node::create_indirect_edge): Compute
28139         indirect_info only when it is required.
28140         * cgraphclones.c (cgraph_clone_edge): Do not recompute
28141         indirect_info fore cloned indirect edge.
28142
28143 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28144             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28145             Anna Tikhonova  <anna.tikhonova@intel.com>
28146             Ilya Tocar  <ilya.tocar@intel.com>
28147             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28148             Ilya Verbin  <ilya.verbin@intel.com>
28149             Kirill Yukhin  <kirill.yukhin@intel.com>
28150             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28151
28152         * config/i386/sse.md
28153         (define_mode_iterator VI8_AVX2_AVX512BW): New.
28154         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
28155
28156 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28157             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28158             Anna Tikhonova  <anna.tikhonova@intel.com>
28159             Ilya Tocar  <ilya.tocar@intel.com>
28160             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28161             Ilya Verbin  <ilya.verbin@intel.com>
28162             Kirill Yukhin  <kirill.yukhin@intel.com>
28163             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28164
28165         * config/i386/sse.md
28166         (define_mode_iterator VF1_AVX512VL): New.
28167         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
28168         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
28169         New.
28170
28171 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28172             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28173             Anna Tikhonova  <anna.tikhonova@intel.com>
28174             Ilya Tocar  <ilya.tocar@intel.com>
28175             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28176             Ilya Verbin  <ilya.verbin@intel.com>
28177             Kirill Yukhin  <kirill.yukhin@intel.com>
28178             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28179
28180         * config/i386/i386.c: Rename ufloatv8siv8df_mask to
28181         ufloatv8siv8df2_mask.
28182         * config/i386/i386.md
28183         (define_code_iterator any_float): New.
28184         (define_code_attr floatsuffix): New.
28185         * config/i386/sse.md
28186         (define_mode_iterator VF1_128_256VL): New.
28187         (define_mode_iterator VF2_512_256VL): New.
28188         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove
28189         unnecessary TARGET check.
28190         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
28191         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
28192         New.
28193         (define_mode_attr qq2pssuff): New.
28194         (define_mode_attr sselongvecmode): New.
28195         (define_mode_attr sselongvecmodelower): New.
28196         (define_mode_attr sseintvecmode3): New.
28197         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
28198         New.
28199         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
28200         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
28201         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
28202         (define_insn "ufloatv2siv2df2<mask_name>"): New.
28203
28204 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28205             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28206             Anna Tikhonova  <anna.tikhonova@intel.com>
28207             Ilya Tocar  <ilya.tocar@intel.com>
28208             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28209             Ilya Verbin  <ilya.verbin@intel.com>
28210             Kirill Yukhin  <kirill.yukhin@intel.com>
28211             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28212
28213         * config/i386/sse.md
28214         (define_mode_iterator VF2_AVX512VL): New.
28215         (define_mode_attr sseintvecmode2): New.
28216         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
28217         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
28218         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
28219         (define_insn
28220         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
28221         Ditto.
28222         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
28223         Ditto.
28224         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
28225         Ditto.
28226
28227 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28228             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28229             Anna Tikhonova  <anna.tikhonova@intel.com>
28230             Ilya Tocar  <ilya.tocar@intel.com>
28231             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28232             Ilya Verbin  <ilya.verbin@intel.com>
28233             Kirill Yukhin  <kirill.yukhin@intel.com>
28234             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28235
28236         * config/i386/i386.md
28237         (define_insn "*movoi_internal_avx"): Add evex version.
28238         (define_insn "*movti_internal"): Ditto.
28239
28240 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28241             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28242             Anna Tikhonova  <anna.tikhonova@intel.com>
28243             Ilya Tocar  <ilya.tocar@intel.com>
28244             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28245             Ilya Verbin  <ilya.verbin@intel.com>
28246             Kirill Yukhin  <kirill.yukhin@intel.com>
28247             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28248
28249         * config/i386/i386.md
28250         (define_attr "isa"): Add avx512dq, noavx512dq.
28251         (define_attr "enabled"): Ditto.
28252         * config/i386/sse.md
28253         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
28254
28255 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28256             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28257             Anna Tikhonova  <anna.tikhonova@intel.com>
28258             Ilya Tocar  <ilya.tocar@intel.com>
28259             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28260             Ilya Verbin  <ilya.verbin@intel.com>
28261             Kirill Yukhin  <kirill.yukhin@intel.com>
28262             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28263
28264         * config/i386/i386.c
28265         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
28266         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
28267         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
28268         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
28269         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
28270         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
28271         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
28272         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
28273         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
28274         * config/i386/sse.md
28275         (define_mode_iterator VMOVE): Allow V4TI mode.
28276         (define_mode_iterator V_AVX512VL): New.
28277         (define_mode_iterator V): New handling for AVX512VL.
28278         (define_insn "avx512f_load<mode>_mask"): Delete.
28279         (define_insn "<avx512>_load<mode>_mask"): New.
28280         (define_insn "avx512f_store<mode>_mask"): Delete.
28281         (define_insn "<avx512>_store<mode>_mask"): New.
28282
28283
28284 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
28285
28286         PR sanitizer/62089
28287         * asan.c (instrument_derefs): Fix bitfield check.
28288
28289 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28290
28291         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
28292         * config/rs6000/htm.md (ttest): Remove clobber.
28293         * config/rs6000/predicates.md (any_mask_operand): New predicate.
28294         (and_operand): Reformat.
28295         (and_2rld_operand): New predicate.
28296         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
28297         parameter.
28298         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
28299         parameter.  Handle AND directly.
28300         (rs6000_split_logical_di): Remove last parameter.
28301         (rs6000_split_logical): Remove last parameter.  Remove obsolete
28302         comment.
28303         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
28304         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
28305         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
28306         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
28307         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
28308         and 5 anonymous splitters):  Delete.
28309         (and<mode>3): New expander.
28310         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
28311         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
28312         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
28313         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
28314         (floatdisf2_internal1): Remove clobbers.
28315         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
28316         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
28317         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
28318         (and<mode>3 for BOOL_128): Remove clobber.
28319         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
28320         rs6000_split_logical.
28321         (*bool<mode>3_internal for BOOL_128): Adjust call of
28322         rs6000_split_logical.
28323         (*boolc<mode>3_internal1 for BOOL_128,
28324         *boolc<mode>3_internal2 for BOOL_128,
28325         *boolcc<mode>3_internal1 for BOOL_128,
28326         *boolcc<mode>3_internal2 for BOOL_128,
28327         *eqv<mode>3_internal1 for BOOL_128,
28328         *eqv<mode>3_internal2 for BOOL_128,
28329         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
28330         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
28331         clobber.
28332         (*vec_reload_and_reg_<mptrsize>): Delete.
28333
28334 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28335
28336         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
28337         and split, *boolccsi3_internal3 and split): Delete.
28338         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
28339         *boolccdi3_internal3 and split): Delete.
28340         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
28341         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
28342
28343 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28344
28345         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
28346         and split, *boolcsi3_internal3 and split): Delete.
28347         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
28348         *boolcdi3_internal3 and split): Delete.
28349         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
28350
28351 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28352
28353         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
28354         <'u'>: Also support printing the low-order 16 bits.
28355         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
28356         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
28357         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
28358         *booldi3_internal3 and split): Delete.
28359         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
28360         *bool<mode>3_dot2): New.
28361         (two anonymous define_splits for non_logical_cint_operand): Merge.
28362
28363 2014-08-17  Marek Polacek  <polacek@redhat.com>
28364             Manuel López-Ibáñez  <manu@gcc.gnu.org>
28365
28366         PR c/62059
28367         * diagnostic.c (adjust_line): Add gcc_checking_assert.
28368         (diagnostic_show_locus): Don't print caret diagnostic
28369         if a column is larger than the line_width.
28370
28371 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
28372
28373         * common.opt: Make the ISL AST generator to be the main code generator
28374         of Graphite.
28375
28376 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
28377
28378         * wide-int.h (generic_wide_int): Declare as class instead of struct.
28379
28380 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
28381
28382         PR target/61641
28383         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
28384         Declare.
28385         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
28386         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
28387         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
28388         Define.
28389         * config/pa/pa.md (begin_brtab): Delete insn.
28390         (end_brtab): Likewise.
28391
28392 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28393
28394         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
28395
28396 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
28397
28398         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
28399         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
28400         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
28401         (get_dynamic_type): Remove.
28402         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
28403         (clear_speculation): Bring to ipa-deivrt.h
28404         (get_class_context): Rename to ...
28405         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
28406         (contains_type_p): Update.
28407         (get_dynamic_type): Rename to ...
28408         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
28409         (possible_polymorphic_call_targets): UPdate.
28410         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
28411         * ipa-prop.c (ipa_analyze_call_uses): Update.
28412
28413 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
28414
28415         * doc/invoke.texi (SH options): Document missing processor variant
28416         options.  Remove references to Hitachi.  Undocument deprecated mspace
28417         option.
28418
28419 2014-08-15  Jason Merrill  <jason@redhat.com>
28420
28421         * tree.c (type_hash_canon): Uncomment assert.
28422
28423 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28424
28425         * input.h (in_system_header_at): Add comment.
28426
28427 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28428
28429         PR fortran/44054
28430         * diagnostic.c (build_message_string): Make it extern.
28431         * diagnostic.h (build_message_string): Make it extern.
28432
28433 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
28434
28435         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
28436         load/store from/to non-floating class pseudo.
28437
28438 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28439
28440         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
28441
28442 2014-08-15  Richard Biener  <rguenther@suse.de>
28443
28444         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
28445         (get_constraint_for_ssa_var): Remove dead code.
28446         (get_constraint_for_1): Adjust.
28447         (find_what_var_points_to): Likewise.
28448         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
28449
28450 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
28451
28452         PR target/61878
28453         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
28454         (_mm512_mask_cmpge_epu32_mask): Ditto.
28455         (_mm512_cmpge_epu32_mask): Ditto.
28456         (_mm512_mask_cmpge_epi64_mask): Ditto.
28457         (_mm512_cmpge_epi64_mask): Ditto.
28458         (_mm512_mask_cmpge_epu64_mask): Ditto.
28459         (_mm512_cmpge_epu64_mask): Ditto.
28460         (_mm512_mask_cmple_epi32_mask): Ditto.
28461         (_mm512_cmple_epi32_mask): Ditto.
28462         (_mm512_mask_cmple_epu32_mask): Ditto.
28463         (_mm512_cmple_epu32_mask): Ditto.
28464         (_mm512_mask_cmple_epi64_mask): Ditto.
28465         (_mm512_cmple_epi64_mask): Ditto.
28466         (_mm512_mask_cmple_epu64_mask): Ditto.
28467         (_mm512_cmple_epu64_mask): Ditto.
28468         (_mm512_mask_cmplt_epi32_mask): Ditto.
28469         (_mm512_cmplt_epi32_mask): Ditto.
28470         (_mm512_mask_cmplt_epu32_mask): Ditto.
28471         (_mm512_cmplt_epu32_mask): Ditto.
28472         (_mm512_mask_cmplt_epi64_mask): Ditto.
28473         (_mm512_cmplt_epi64_mask): Ditto.
28474         (_mm512_mask_cmplt_epu64_mask): Ditto.
28475         (_mm512_cmplt_epu64_mask): Ditto.
28476         (_mm512_mask_cmpneq_epi32_mask): Ditto.
28477         (_mm512_mask_cmpneq_epu32_mask): Ditto.
28478         (_mm512_cmpneq_epu32_mask): Ditto.
28479         (_mm512_mask_cmpneq_epi64_mask): Ditto.
28480         (_mm512_cmpneq_epi64_mask): Ditto.
28481         (_mm512_mask_cmpneq_epu64_mask): Ditto.
28482         (_mm512_cmpneq_epu64_mask): Ditto.
28483         (_mm512_castpd_ps): Ditto.
28484         (_mm512_castpd_si512): Ditto.
28485         (_mm512_castps_pd): Ditto.
28486         (_mm512_castps_si512): Ditto.
28487         (_mm512_castsi512_ps): Ditto.
28488         (_mm512_castsi512_pd): Ditto.
28489         (_mm512_castpd512_pd128): Ditto.
28490         (_mm512_castps512_ps128): Ditto.
28491         (_mm512_castsi512_si128): Ditto.
28492         (_mm512_castpd512_pd256): Ditto.
28493         (_mm512_castps512_ps256): Ditto.
28494         (_mm512_castsi512_si256): Ditto.
28495         (_mm512_castpd128_pd512): Ditto.
28496         (_mm512_castps128_ps512): Ditto.
28497         (_mm512_castsi128_si512): Ditto.
28498         (_mm512_castpd256_pd512): Ditto.
28499         (_mm512_castps256_ps512): Ditto.
28500         (_mm512_castsi256_si512): Ditto.
28501         (_mm512_cmpeq_epu32_mask): Ditto.
28502         (_mm512_mask_cmpeq_epu32_mask): Ditto.
28503         (_mm512_mask_cmpeq_epu64_mask): Ditto.
28504         (_mm512_cmpeq_epu64_mask): Ditto.
28505         (_mm512_cmpgt_epu32_mask): Ditto.
28506         (_mm512_mask_cmpgt_epu32_mask): Ditto.
28507         (_mm512_mask_cmpgt_epu64_mask): Ditto.
28508         (_mm512_cmpgt_epu64_mask): Ditto.
28509         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
28510         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
28511         * config/i386/i386.c (enum ix86_builtins): Add
28512         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
28513         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
28514         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
28515         (bdesc_args): Add __builtin_ia32_si512_256si,
28516         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
28517         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
28518         __builtin_ia32_pd512_pd.
28519         (ix86_expand_args_builtin): Handle new FTYPEs.
28520         * config/i386/sse.md (castmode): Add 512-bit modes.
28521         (AVX512MODE2P): New.
28522         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
28523         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
28524
28525 2014-08-15  Richard Biener  <rguenther@suse.de>
28526
28527         * fold-const.c (tree_swap_operands_p): Put all constants
28528         last, also strip sign-changing NOPs when considering further
28529         canonicalization.  Canonicalize also when optimizing for size.
28530
28531 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28532
28533         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
28534         one_match > zero_match case to just before simple_sequence.
28535
28536 2014-08-15  Richard Biener  <rguenther@suse.de>
28537
28538         * data-streamer.h (streamer_string_index, string_for_index):
28539         Remove.
28540         * data-streamer-out.c (streamer_string_index): Make static.
28541         * data-streamer-in.c (string_for_index): Likewise.
28542         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
28543         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
28544
28545 2014-08-15  Richard Biener  <rguenther@suse.de>
28546
28547         PR tree-optimization/62031
28548         * tree-data-ref.c (dr_analyze_indices): Do not set
28549         DR_UNCONSTRAINED_BASE.
28550         (dr_may_alias_p): All indirect accesses have to go the
28551         formerly DR_UNCONSTRAINED_BASE path.
28552         * tree-data-ref.h (struct indices): Remove
28553         unconstrained_base member.
28554         (DR_UNCONSTRAINED_BASE): Remove.
28555
28556 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
28557
28558         PR middle-end/62092
28559         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
28560         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
28561         in OMP_CLAUSE_MAP in some outer target region.
28562
28563 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
28564
28565         * tree-ssa-loop-ivopts.c (ivopts_data): New field
28566         name_expansion_cache.
28567         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
28568         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
28569         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
28570         (difference_cannot_overflow_p): New parameter.  Use affine
28571         expansion for equality check.
28572         (iv_elimination_compare_lt): Pass new argument.
28573
28574 2014-08-14  DJ Delorie  <dj@redhat.com>
28575
28576         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28577         variables to the accumulator.
28578
28579         * config/rl78/predicates.md (rl78_near_mem_operand): New.
28580         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28581         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28582         with far-far moves.
28583
28584         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28585         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28586         (umulqihi3_virt): Likewise.
28587         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28588         (umulqihi3_real): Likewise.
28589
28590         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28591
28592 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28593
28594         PR tree-optimization/62091
28595         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28596         function_entry_reached.
28597         (walk_aliased_vdefs): Clear it here.
28598         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28599
28600 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28601
28602         * ipa-utils.h (compare_virtual_tables): Declare.
28603         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28604
28605 2014-08-14  Marek Polacek  <polacek@redhat.com>
28606
28607         DR 458
28608         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28609         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28610
28611 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28612
28613         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28614
28615 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28616
28617         PR rtl-optimization/62004
28618         PR rtl-optimization/62030
28619         * ifcvt.c (rtx_interchangeable_p): New function.
28620         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28621         * emit-rtl.h (mem_attrs_eq_p): Declare.
28622
28623 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
28624
28625         * graphite-scop-detection.c:
28626         Add inclusion of cp-tree.h.
28627         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28628         in case they are pointers to object types
28629
28630 2014-08-14  Richard Biener  <rguenther@suse.de>
28631
28632         * BASE-VER: Change to 5.0.0
28633
28634 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28635             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28636             Anna Tikhonova  <anna.tikhonova@intel.com>
28637             Ilya Tocar  <ilya.tocar@intel.com>
28638             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28639             Ilya Verbin  <ilya.verbin@intel.com>
28640             Kirill Yukhin  <kirill.yukhin@intel.com>
28641             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28642
28643         * config/i386/sse.md (define_mode_attr avx512): New.
28644         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28645         V4DI modes.
28646         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28647         (define_mode_attr ssse3_avx2): Ditto.
28648         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28649         (define_mode_attr avx2_avx512bw): New.
28650         (define_mode_attr ssedoublemodelower): New.
28651         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28652         V32HI, V64QI modes.
28653         (define_mode_attr ssebytemode): Allow V8DI modes.
28654         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28655         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28656         (define_mode_attr ssePSmode2): New.
28657         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28658         V16HI, V32HI modes.
28659         (define_mode_attr dbpsadbwmode): New.
28660         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28661         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28662         (vi8_sse4_1_avx2_avx512): New.
28663         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28664         mode attribute.
28665         (define_mode_attr blendbits): Move before its immediate use.
28666
28667 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28668             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28669             Anna Tikhonova  <anna.tikhonova@intel.com>
28670             Ilya Tocar  <ilya.tocar@intel.com>
28671             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28672             Ilya Verbin  <ilya.verbin@intel.com>
28673             Kirill Yukhin  <kirill.yukhin@intel.com>
28674             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28675
28676         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28677         * config/i386/subst.md
28678         (define_mode_iterator SUBST_V): Update.
28679         (define_mode_iterator SUBST_A): Ditto.
28680         (define_subst_attr "mask_operand7"): New.
28681         (define_subst_attr "mask_operand10"): New.
28682         (define_subst_attr "mask_operand_arg34") : New.
28683         (define_subst_attr "mask_expand_op3"): New.
28684         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28685         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28686         (define_subst_attr "mask_avx512vl_condition"): New.
28687         (define_subst_attr "round_mask_operand4"): Ditto.
28688         (define_subst_attr "round_mask_scalar_op3"): Delete.
28689         (define_subst_attr "round_mask_op4"): New.
28690         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28691         V16SImode.
28692         (define_subst_attr "round_modev8sf_condition"): New.
28693         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28694         <MODE>mode.
28695         (define_subst_attr "round_saeonly_mask_operand4"): New.
28696         (define_subst_attr "round_saeonly_mask_op4"): New.
28697         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28698         V8DImode, V16SImode.
28699         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28700         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28701         (define_subst_attr "mask_expand4_args"): New.
28702         (define_subst "mask_expand4"): New.
28703
28704 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28705             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28706             Anna Tikhonova  <anna.tikhonova@intel.com>
28707             Ilya Tocar  <ilya.tocar@intel.com>
28708             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28709             Ilya Verbin  <ilya.verbin@intel.com>
28710             Kirill Yukhin  <kirill.yukhin@intel.com>
28711             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28712
28713         * config/i386/i386.md
28714         (define_attr "isa"): Add avx512bw,noavx512bw.
28715         (define_attr "enabled"): Ditto.
28716         (define_split): Add 32/64-bit mask logic.
28717         (define_insn "*k<logic>qi"): New.
28718         (define_insn "*k<logic>hi"): New.
28719         (define_insn "*anddi_1"): Add mask version.
28720         (define_insn "*andsi_1"): Ditto.
28721         (define_insn "*<code><mode>_1"): Ditto.
28722         (define_insn "*<code>hi_1"): Ditto.
28723         (define_insn "kxnor<mode>"): New.
28724         (define_insn "kunpcksi"): New.
28725         (define_insn "kunpckdi"): New.
28726         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28727         (define_insn "*one_cmplhi2_1"): Ditto.
28728
28729 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28730             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28731             Anna Tikhonova  <anna.tikhonova@intel.com>
28732             Ilya Tocar  <ilya.tocar@intel.com>
28733             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28734             Ilya Verbin  <ilya.verbin@intel.com>
28735             Kirill Yukhin  <kirill.yukhin@intel.com>
28736             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28737
28738         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28739         V32HImode.
28740
28741 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28742             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28743             Anna Tikhonova  <anna.tikhonova@intel.com>
28744             Ilya Tocar  <ilya.tocar@intel.com>
28745             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28746             Ilya Verbin  <ilya.verbin@intel.com>
28747             Kirill Yukhin  <kirill.yukhin@intel.com>
28748             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28749
28750         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
28751         registers.
28752         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28753         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28754         xmm/ymm16+ when availble.
28755         * config/i386/i386.h
28756         (HARD_REGNO_NREGS): Add mask regs.
28757         (VALID_AVX512F_REG_MODE): Ditto.
28758         (VALID_AVX512F_REG_MODE) : Define.
28759         (VALID_MASK_AVX512BW_MODE): Ditto.
28760         (reg_class) (MASK_REG_P(X)): Define.
28761         * config/i386/i386.md: Do not split long moves with mask register,
28762         use kmovb if avx512bw is availible.
28763         (movdi_internal): Handle mask registers.
28764
28765 2014-08-14  Richard Biener  <rguenther@suse.de>
28766
28767         PR tree-optimization/62081
28768         * tree-ssa-loop.c (pass_fix_loops): New pass.
28769         (pass_tree_loop::gate):  Do not fixup loops here.
28770         * tree-pass.h (make_pass_fix_loops): Declare.
28771         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28772
28773 2014-08-14  Richard Biener  <rguenther@suse.de>
28774
28775         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28776         (type_hash_canon): ... this and avoid 2nd lookup for the add.
28777
28778 2014-08-14  Richard Biener  <rguenther@suse.de>
28779
28780         PR tree-optimization/62090
28781         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28782         (fold_builtin_2): Do not fold sprintf.
28783         (fold_builtin_3): Likewise.
28784         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28785         moved from builtins.c.
28786         (gimple_fold_builtin): Fold sprintf.
28787
28788 2014-08-14  Richard Biener  <rguenther@suse.de>
28789
28790         PR rtl-optimization/62079
28791         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28792         run cleanup_cfg.
28793
28794 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28795
28796         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28797         current_function_decl.
28798
28799 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28800
28801         * cgraph.c (cgraph_node::function_symbol): Fix wrong
28802         cgraph_function_node to cgraph_node::function_symbol
28803         refactoring.
28804
28805 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28806
28807         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28808         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28809
28810 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
28811
28812         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28813         warning.
28814
28815 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
28816
28817         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28818         generator.
28819
28820 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
28821
28822         PR target/62025
28823         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28824         any registers that are used in mem_insn.
28825
28826 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28827
28828         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28829
28830 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28831
28832         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28833         (MULTILIB_DIRNAMES): Ditto.
28834         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28835         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28836         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28837         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28838         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28839         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28840
28841 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28842
28843         PR target/61413
28844         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28845         of __ARM_SIZEOF_WCHAR_T.
28846
28847 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28848
28849         PR target/62098
28850         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28851         Remove unnecessary attributes.
28852
28853 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
28854
28855         * internal-fn.c (init_internal_fns): Fix off-by-one.
28856
28857 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28858             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28859             Anna Tikhonova  <anna.tikhonova@intel.com>
28860             Ilya Tocar  <ilya.tocar@intel.com>
28861             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28862             Ilya Verbin  <ilya.verbin@intel.com>
28863             Kirill Yukhin  <kirill.yukhin@intel.com>
28864             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28865
28866         * config/i386/i386.c (standard_sse_constant_opcode): Use
28867         vpxord/vpternlog if avx512 is availible.
28868
28869 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28870
28871         PR middle-end/62103
28872         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28873         bitfields, that is when size doesn't match the size of type or the
28874         size of the constructor.
28875
28876 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28877
28878         * config/rs6000/constraints.md (wh constraint): New constraint,
28879         for FP registers if direct move is available.
28880         (wi constraint): New constraint, for VSX/FP registers that can
28881         handle 64-bit integers.
28882         (wj constraint): New constraint for VSX/FP registers that can
28883         handle 64-bit integers for direct moves.
28884         (wk constraint): New constraint for VSX/FP registers that can
28885         handle 64-bit doubles for direct moves.
28886         (wy constraint): Make documentation match implementation.
28887
28888         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28889         scalar_in_vmx_p field to simplify tests of whether SFmode or
28890         DFmode can go in the Altivec registers.
28891         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28892         (rs6000_setup_reg_addr_masks): Likewise.
28893         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28894         field, and wh/wi/wj/wk constraints.
28895         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28896         the wh/wi/wj/wk constraints.
28897         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28898         upper registers, prefer VSX registers unless the operation is a
28899         memory operation with REG+OFFSET addressing.
28900
28901         * config/rs6000/vsx.md (VSr mode attribute): Add support for
28902         DImode.  Change SFmode to use ww constraint instead of d to allow
28903         SF registers in the upper registers.
28904         (VSr2): Likewise.
28905         (VSr3): Likewise.
28906         (VSr5): Fix thinko in comment.
28907         (VSa): New mode attribute that is an alternative to wa, that
28908         returns the VSX register class that a mode can go in, but may not
28909         be the preferred register class.
28910         (VS_64dm): New mode attribute for appropriate register classes for
28911         referencing 64-bit elements of vectors for direct moves and normal
28912         moves.
28913         (VS_64reg): Likewise.
28914         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28915         register allocator to only registers the data type can handle.
28916         (vsx_le_perm_load_<mode>): Likewise.
28917         (vsx_le_perm_store_<mode>): Likewise.
28918         (vsx_xxpermdi2_le_<mode>): Likewise.
28919         (vsx_xxpermdi4_le_<mode>): Likewise.
28920         (vsx_lxvd2x2_le_<mode>): Likewise.
28921         (vsx_lxvd2x4_le_<mode>): Likewise.
28922         (vsx_stxvd2x2_le_<mode>): Likewise.
28923         (vsx_add<mode>3): Likewise.
28924         (vsx_sub<mode>3): Likewise.
28925         (vsx_mul<mode>3): Likewise.
28926         (vsx_div<mode>3): Likewise.
28927         (vsx_tdiv<mode>3_internal): Likewise.
28928         (vsx_fre<mode>2): Likewise.
28929         (vsx_neg<mode>2): Likewise.
28930         (vsx_abs<mode>2): Likewise.
28931         (vsx_nabs<mode>2): Likewise.
28932         (vsx_smax<mode>3): Likewise.
28933         (vsx_smin<mode>3): Likewise.
28934         (vsx_sqrt<mode>2): Likewise.
28935         (vsx_rsqrte<mode>2): Likewise.
28936         (vsx_tsqrt<mode>2_internal): Likewise.
28937         (vsx_fms<mode>4): Likewise.
28938         (vsx_nfma<mode>4): Likewise.
28939         (vsx_eq<mode>): Likewise.
28940         (vsx_gt<mode>): Likewise.
28941         (vsx_ge<mode>): Likewise.
28942         (vsx_eq<mode>_p): Likewise.
28943         (vsx_gt<mode>_p): Likewise.
28944         (vsx_ge<mode>_p): Likewise.
28945         (vsx_xxsel<mode>): Likewise.
28946         (vsx_xxsel<mode>_uns): Likewise.
28947         (vsx_copysign<mode>3): Likewise.
28948         (vsx_float<VSi><mode>2): Likewise.
28949         (vsx_floatuns<VSi><mode>2): Likewise.
28950         (vsx_fix_trunc<mode><VSi>2): Likewise.
28951         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28952         (vsx_x<VSv>r<VSs>i): Likewise.
28953         (vsx_x<VSv>r<VSs>ic): Likewise.
28954         (vsx_btrunc<mode>2): Likewise.
28955         (vsx_b2trunc<mode>2): Likewise.
28956         (vsx_floor<mode>2): Likewise.
28957         (vsx_ceil<mode>2): Likewise.
28958         (vsx_<VS_spdp_insn>): Likewise.
28959         (vsx_xscvspdp): Likewise.
28960         (vsx_xvcvspuxds): Likewise.
28961         (vsx_float_fix_<mode>2): Likewise.
28962         (vsx_set_<mode>): Likewise.
28963         (vsx_extract_<mode>_internal1): Likewise.
28964         (vsx_extract_<mode>_internal2): Likewise.
28965         (vsx_extract_<mode>_load): Likewise.
28966         (vsx_extract_<mode>_store): Likewise.
28967         (vsx_splat_<mode>): Likewise.
28968         (vsx_xxspltw_<mode>): Likewise.
28969         (vsx_xxspltw_<mode>_direct): Likewise.
28970         (vsx_xxmrghw_<mode>): Likewise.
28971         (vsx_xxmrglw_<mode>): Likewise.
28972         (vsx_xxsldwi_<mode>): Likewise.
28973         (vsx_xscvdpspn): Tighten constraints to only use register classes
28974         the types use.
28975         (vsx_xscvspdpn): Likewise.
28976         (vsx_xscvdpspn_scalar): Likewise.
28977
28978         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28979         wj, and wk constraints.
28980         (GPR_REG_CLASS_P): New helper macro for register classes targeting
28981         general purpose registers.
28982
28983         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28984         direct moves.
28985         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28986         DImode instead of wm.  Use wk constraint for direct move of DFmode
28987         instead of wm.
28988         (extendsidi2_lfiwax): Likewise.
28989         (lfiwax): Likewise.
28990         (lfiwzx): Likewise.
28991         (movdi_internal64): Likewise.
28992
28993         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28994         wk constraints. Make the wy constraint documentation match them
28995         implementation.
28996
28997 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
28998
28999         Replacement of isl_int by isl_val
29000         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
29001         (compute_bounds_for_param): use isl_val instead of isl_int
29002         (compute_bounds_for_loop): likewise
29003         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
29004         (build_linearized_memory_access): use isl_val instead of isl_int
29005         (pdr_stride_in_loop): likewise
29006         * graphite-optimize-isl.c:
29007         (getPrevectorMap): use isl_val instead of isl_int
29008         * graphite-poly.c:
29009         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
29010         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
29011         (extern the_isl_ctx): declare
29012         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
29013         (extract_affine_gmp): likewise
29014         (wrap): likewise
29015         (build_loop_iteration_domains): likewise
29016         (add_param_constraints): likewise
29017
29018 2014-08-11  Richard Biener  <rguenther@suse.de>
29019
29020         PR tree-optimization/62075
29021         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
29022         handle uses in patterns.
29023
29024 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29025             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29026             Anna Tikhonova  <anna.tikhonova@intel.com>
29027             Ilya Tocar  <ilya.tocar@intel.com>
29028             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29029             Ilya Verbin  <ilya.verbin@intel.com>
29030             Kirill Yukhin  <kirill.yukhin@intel.com>
29031             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29032
29033         * common/config/i386/i386-common.c
29034         (OPTION_MASK_ISA_AVX512VL_SET): Define.
29035         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
29036         (ix86_handle_option): Handle OPT_mavx512vl.
29037         * config/i386/cpuid.h (bit_AVX512VL): Define.
29038         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
29039         set -mavx512vl accordingly.
29040         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29041         OPTION_MASK_ISA_AVX512VL.
29042         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
29043         (ix86_option_override_internal): Define PTA_AVX512VL, handle
29044         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
29045         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
29046         * config/i386/i386.h (TARGET_AVX512VL): Define.
29047         (TARGET_AVX512VL_P(x)): Ditto.
29048         * config/i386/i386.opt: Add mavx512vl.
29049
29050 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
29051
29052         PR tree-optimization/62073
29053         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
29054         a basic block.
29055
29056 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29057             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29058             Anna Tikhonova  <anna.tikhonova@intel.com>
29059             Ilya Tocar  <ilya.tocar@intel.com>
29060             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29061             Ilya Verbin  <ilya.verbin@intel.com>
29062             Kirill Yukhin  <kirill.yukhin@intel.com>
29063             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29064
29065         * common/config/i386/i386-common.c
29066         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
29067         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
29068         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
29069         (ix86_handle_option): Handle OPT_mavx512bw.
29070         * config/i386/cpuid.h (bit_AVX512BW): Define.
29071         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
29072         set -mavx512bw accordingly.
29073         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29074         OPTION_MASK_ISA_AVX512BW.
29075         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
29076         (ix86_option_override_internal): Define PTA_AVX512BW, handle
29077         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
29078         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
29079         * config/i386/i386.h (TARGET_AVX512BW): Define.
29080         (TARGET_AVX512BW_P(x)): Ditto.
29081         * config/i386/i386.opt: Add mavx512bw.
29082
29083 2014-08-11  Richard Biener  <rguenther@suse.de>
29084
29085         PR tree-optimization/62070
29086         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
29087         Remove SSA checking.
29088
29089 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
29090
29091         * asan.c (asan_check_flags): New enum.
29092         (build_check_stmt_with_calls): Removed function.
29093         (build_check_stmt): Split inlining logic to
29094         asan_expand_check_ifn.
29095         (instrument_derefs): Rename parameter.
29096         (instrument_mem_region_access): Rename parameter.
29097         (instrument_strlen_call): Likewise.
29098         (asan_expand_check_ifn): New function.
29099         (asan_instrument): Remove old code.
29100         (pass_sanopt::execute): Change handling of
29101         asan-instrumentation-with-call-threshold.
29102         (asan_clear_shadow): Fix formatting.
29103         (asan_function_start): Likewise.
29104         (asan_emit_stack_protection): Likewise.
29105         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
29106         Update description.
29107         * internal-fn.c (expand_ASAN_CHECK): New function.
29108         * internal-fn.def (ASAN_CHECK): New internal function.
29109         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
29110         Update description.
29111         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
29112         * tree.c: Small comment fix.
29113
29114 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
29115
29116         * gimple.c (gimple_call_fnspec): Support internal functions.
29117         (gimple_call_return_flags): Use const.
29118         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
29119         * internal-fn.def: Add fnspec information.
29120         * internal-fn.h (internal_fn_fnspec): New function.
29121         (init_internal_fns): Declare new function.
29122         * internal-fn.c (internal_fn_fnspec_array): New global variable.
29123         (init_internal_fns): New function.
29124         * tree-core.h: Update macro call.
29125         * tree.c (build_common_builtin_nodes): Initialize internal fns.
29126
29127 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
29128
29129         * lto-streamer.h (struct output_block::symbol): Change from
29130         struct symtab_node to plain symtab_node.
29131         (referenced_from_this_partition_p): Change first parameter
29132         from struct symtab_node to plain symtab_node.
29133
29134 2014-08-10  Marek Polacek  <polacek@redhat.com>
29135
29136         PR c/51849
29137         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
29138
29139 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
29140
29141         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
29142         DECL correctly; do not give up on types in static storage.
29143
29144 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
29145
29146         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
29147
29148 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
29149
29150         * graphite-isl-ast-to-gimple.c:
29151         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
29152
29153         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
29154
29155 2014-08-08  Guozhi Wei  <carrot@google.com>
29156
29157         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
29158
29159 2014-08-08  Cary Coutant  <ccoutant@google.com>
29160
29161         * dwarf2out.c (get_skeleton_type_unit): Remove.
29162         (output_skeleton_debug_sections): Remove skeleton type units.
29163         (output_comdat_type_unit): Likewise.
29164         (dwarf2out_finish): Likewise.
29165
29166 2014-08-07  Yi Yang  <ahyangyi@google.com>
29167
29168         * predict.c (expr_expected_value_1): Remove the redundant assignment.
29169
29170 2014-08-08  Richard Biener  <rguenther@suse.de>
29171
29172         * lto-streamer.h (struct lto_input_block): Make it a class
29173         with a constructor.
29174         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
29175         (struct lto_function_header, struct lto_simple_header,
29176         struct lto_simple_header_with_strings,
29177         struct lto_decl_header, struct lto_function_header): Make
29178         a simple inheritance hieararchy.  Remove unused fields.
29179         (struct lto_asm_header): Remove.
29180         * lto-streamer-out.c (produce_asm): Adjust.
29181         (lto_output_toplevel_asms): Likewise.
29182         (produce_asm_for_decls): Likewise.
29183         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
29184         * data-streamer-in.c (string_for_index): Likewise.
29185         * ipa-inline-analysis.c (inline_read_section): Likewise.
29186         * ipa-prop.c (ipa_prop_read_section): Likewise.
29187         (read_replacements_section): Likewise.
29188         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
29189         * lto-section-in.c (lto_create_simple_input_block): Likewise.
29190         (lto_destroy_simple_input_block): Likewise.
29191         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
29192         (lto_input_toplevel_asms): Likewise.
29193
29194 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29195             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29196             Anna Tikhonova  <anna.tikhonova@intel.com>
29197             Ilya Tocar  <ilya.tocar@intel.com>
29198             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29199             Ilya Verbin  <ilya.verbin@intel.com>
29200             Kirill Yukhin  <kirill.yukhin@intel.com>
29201             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29202
29203         * common/config/i386/i386-common.c
29204         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
29205         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
29206         (ix86_handle_option): Handle OPT_mavx512dq.
29207         * config/i386/cpuid.h (bit_AVX512DQ): Define.
29208         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
29209         set -mavx512dq accordingly.
29210         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29211         OPTION_MASK_ISA_AVX512DQ.
29212         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
29213         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
29214         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
29215         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
29216         * config/i386/i386.h (TARGET_AVX512DQ): Define.
29217         (TARGET_AVX512DQ_P(x)): Ditto.
29218         * config/i386/i386.opt: Add mavx512dq.
29219
29220 2014-08-08  Richard Biener  <rguenther@suse.de>
29221
29222         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
29223         target_percent, target_percent_s): Export.
29224         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
29225         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
29226         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
29227         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
29228         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
29229         Move to gimple-fold.c.
29230         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
29231         strcat and strcpy.
29232         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
29233         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
29234         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
29235         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
29236         (rewrite_call_expr_array): Remove.
29237         (fold_builtin_sprintf_chk): Likewise.
29238         (fold_builtin_snprintf_chk): Likewise.
29239         (fold_builtin_varargs): Remove handling of sprintf_chk,
29240         vsprintf_chk, snprintf_chk and vsnprintf_chk.
29241         (gimple_fold_builtin_sprintf_chk): Remove.
29242         (gimple_fold_builtin_snprintf_chk): Likewise.
29243         (gimple_fold_builtin_varargs): Likewise.
29244         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
29245         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
29246         * gimple.c (gimple_seq_add_seq_without_update): New function.
29247         * gimple.h (gimple_seq_add_seq_without_update): Declare.
29248         * gimple-fold.c: Include output.h.
29249         (gsi_replace_with_seq_vops): New function, split out from ...
29250         (gimplify_and_update_call_from_tree): ... here.
29251         (replace_call_with_value): New function.
29252         (replace_call_with_call_and_fold): Likewise.
29253         (var_decl_component_p): Moved from builtins.c.
29254         (gimple_fold_builtin_memory_op): Moved from builtins.c
29255         fold_builtin_memory_op and rewritten to GIMPLE.
29256         (gimple_fold_builtin_memset): Likewise.
29257         (gimple_fold_builtin_strcpy): Likewise.
29258         (gimple_fold_builtin_strncpy): Likewise.
29259         (gimple_fold_builtin_strcat): Likewise.
29260         (gimple_fold_builtin_fputs): Likewise.
29261         (gimple_fold_builtin_memory_chk): Likewise.
29262         (gimple_fold_builtin_stxcpy_chk): Likewise.
29263         (gimple_fold_builtin_stxncpy_chk): Likewise.
29264         (gimple_fold_builtin_snprintf_chk): Likewise.
29265         (gimple_fold_builtin_sprintf_chk): Likewise.
29266         (gimple_fold_builtin_strlen): New function.
29267         (gimple_fold_builtin_with_strlen): New function split out from
29268         gimple_fold_builtin.
29269         (gimple_fold_builtin): Change signature and handle
29270         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
29271         here.  Call gimple_fold_builtin_with_strlen.
29272         (gimple_fold_call): Adjust.
29273
29274 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
29275
29276         * calls.c (precompute_arguments): Check
29277         promoted_for_signed_and_unsigned_p and set the promoted mode.
29278         (promoted_for_signed_and_unsigned_p): New function.
29279         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
29280         and set the promoted mode.
29281         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
29282         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
29283         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
29284
29285
29286 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
29287
29288         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
29289         instead of SUBREG_PROMOTED_UNSIGNED_SET.
29290         (expand_call): Likewise.
29291         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
29292         to get promoted mode.
29293         * combine.c (record_promoted_value): Skip > 0 comparison with
29294         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
29295         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
29296         of SUBREG_PROMOTED_UNSIGNED_P.
29297         (convert_modes): Likewise.
29298         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
29299         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
29300         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
29301         SUBREG_PROMOTED_UNSIGNED_SET.
29302         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
29303         instead of SUBREG_PROMOTED_UNSIGNED_SET.
29304         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
29305         SUBREG_PROMOTED_SET.
29306         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
29307         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
29308         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
29309         of SUBREG_PROMOTED_UNSIGNED_P.
29310         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
29311         (SUBREG_PROMOTED_SET): New define.
29312         (SUBREG_PROMOTED_GET): Likewise.
29313         (SUBREG_PROMOTED_SIGN): Likewise.
29314         (SUBREG_PROMOTED_SIGNED_P): Likewise.
29315         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
29316         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
29317         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
29318         instead of SUBREG_PROMOTED_UNSIGNED_GET.
29319         (nonzero_bits1): Skip > 0 comparison with the results as
29320         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
29321         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
29322         of !SUBREG_PROMOTED_UNSIGNED_P.
29323         * simplify-rtx.c (simplify_unary_operation_1): Use new
29324         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
29325         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
29326         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
29327         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
29328
29329 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
29330
29331         * ipa-devirt.c: Include gimple-pretty-print.h
29332         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
29333         further tests.
29334         (decl_maybe_in_construction_p): Fix conditional on cdtor check
29335         (get_polymorphic_call_info): Fix return value
29336         (type_change_info): New sturcture based on ipa-prop
29337         variant.
29338         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
29339         based on ipa-prop variant.
29340         (extr_type_from_vtbl_ptr_store): New function
29341         based on ipa-prop variant.
29342         (record_known_type): New function.
29343         (check_stmt_for_type_change): New function.
29344         (get_dynamic_type): New function.
29345         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
29346         * tree-ssa-pre.c: ipa-utils.h
29347         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
29348         machinery; sanity check with ipa-prop devirtualization.
29349         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
29350         polymorphic flag.
29351
29352 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
29353
29354         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
29355         * alias.c, cfgexpand.c, cgraphbuild.c,
29356         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
29357         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
29358         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
29359         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
29360         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
29361         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
29362         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
29363         dse.c, except.c, gengtype.c, gimple-expr.c,
29364         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
29365         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
29366         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
29367         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
29368         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
29369         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
29370         pointer-set.h.
29371         * pointer-set.c: Remove file.
29372         * pointer-set.h: Remove file.
29373
29374 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29375
29376         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
29377         * config/arm/types.md (f_sels, f_seld): Delete.
29378
29379 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29380
29381         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
29382         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
29383         (aarch64_movdi_<mode>high): Likewise.
29384         (aarch64_mov<mode>high_di): Likewise.
29385         (aarch64_movdi_<mode>low): Likewise.
29386         (aarch64_mov<mode>low_di): Likewise.
29387         (aarch64_movtilow_tilow): Likewise.
29388         Add comment explaining usage of fp,simd attributes and of
29389         TARGET_FLOAT and TARGET_SIMD.
29390
29391 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
29392             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29393
29394         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
29395         Use MOVN when one of the half-words is 0xffff.
29396
29397 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29398
29399         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
29400
29401 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29402
29403         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
29404         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
29405         (rfs_str): String corresponding to RFS_* constants.
29406         (rank_for_schedule_stats_t): New typedef.
29407         (rank_for_schedule_stats): New static variable.
29408         (rfs_result): New static function.
29409         (rank_for_schedule): Track statistics for deciding heuristics.
29410         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
29411         static functions.
29412         (ready_sort): Use them for debug printouts.
29413         (schedule_block): Init statistics state.  Print statistics on
29414         rank_for_schedule decisions.
29415
29416 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29417
29418         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
29419
29420 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
29421
29422         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
29423         constraint.
29424
29425 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
29426
29427         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
29428         function to not conflict.
29429         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
29430         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
29431         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
29432         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
29433         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
29434         of pointer_map.
29435
29436 2014-08-07  Marek Polacek  <polacek@redhat.com>
29437
29438         * fold-const.c (fold_binary_loc): Add folding of
29439         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
29440
29441 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
29442
29443         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
29444         instead of type size.
29445         (ASM_FINISH_DECLARE_OBJECT): Likewise.
29446
29447 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29448
29449         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
29450         (*thumb1_movqi_insn): Likewise.
29451         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
29452
29453 2014-08-07  Tom de Vries  <tom@codesourcery.com>
29454
29455         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29456         (glibc_2_11_or_earlier): Remove effective-target keywords.
29457
29458 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
29459
29460         * config/arm/arm.c (bdesc_2arg): Fix typo.
29461         (arm_atomic_assign_expand_fenv): Remove The default implementation.
29462
29463 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29464
29465         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
29466
29467 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
29468
29469         PR debug/61923
29470         * haifa-sched.c (advance_one_cycle): Fix dump.
29471         (schedule_block): Don't advance cycle if we are already at the
29472         beginning of the cycle.
29473
29474 2014-08-06  Martin Jambor  <mjambor@suse.cz>
29475
29476         PR ipa/61393
29477         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
29478
29479 2014-08-06  Richard Biener  <rguenther@suse.de>
29480
29481         PR lto/62034
29482         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
29483         SCCs here.
29484         (lto_input_tree): Pop SCCs here.
29485
29486 2014-08-06  Richard Biener  <rguenther@suse.de>
29487
29488         PR tree-optimization/61320
29489         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
29490         handle misaligned loads.
29491
29492 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
29493
29494         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
29495         (aarch64_expand_vec_perm_const): Check for dup before zip.
29496
29497 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29498
29499         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
29500         CONST_INT_P instead of GET_CODE and compare.
29501         (aarch64_select_cc_mode): Likewise.
29502         (aarch64_print_operand): Likewise.
29503         (aarch64_rtx_costs): Likewise.
29504         (aarch64_simd_valid_immediate): Likewise.
29505         (aarch64_simd_check_vect_par_cnst_half): Likewise.
29506         (aarch64_simd_emit_pair_result_insn): Likewise.
29507
29508 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
29509
29510         * gdbhooks.py (find_gcc_source_dir): New helper function.
29511         (class PassNames): New class, locating and parsing passes.def.
29512         (class BreakOnPass): New command "break-on-pass".
29513
29514 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
29515
29516         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
29517         getting olde.
29518
29519 2014-08-05  Richard Biener  <rguenther@suse.de>
29520
29521         PR rtl-optimization/61672
29522         * emit-rtl.h (mem_attrs_eq_p): Declare.
29523         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
29524         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
29525         * cfgcleanup.c (merge_memattrs): Likewise.
29526         Include emit-rtl.h.
29527
29528 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29529
29530         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
29531         rather than singleton vectors.
29532         (vqdmlsls_lane_s32): Likewise.
29533
29534 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29535
29536         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
29537         Use VSDQ_HSI mode iterator.
29538         (aarch64_sqrdmulh_laneq<mode>): Likewise.
29539         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
29540         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
29541         Use BUILTIN_VDQHS macro.
29542         (sqrdmulh_laneq): Likewise.
29543         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
29544         (vqdmlals_laneq_s32): Likewise.
29545         (vqdmlslh_laneq_s16): Likewise.
29546         (vqdmlsls_laneq_s32): Likewise.
29547         (vqdmulhh_laneq_s16): Likewise.
29548         (vqdmulhs_laneq_s32): Likewise.
29549         (vqrdmulhh_laneq_s16): Likewise.
29550         (vqrdmulhs_laneq_s32): Likewise.
29551
29552 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29553
29554         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
29555         (vmuld_laneq_f64): Likewise.
29556         (vmuls_laneq_f32): Likewise.
29557         (vmul_n_f64): Likewise.
29558         (vmuld_lane_f64): Reimplement in C.
29559         (vmuls_lane_f32): Likewise.
29560
29561 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29562
29563         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
29564         to reservation.
29565         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
29566
29567 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29568
29569         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
29570         (rbitsi2): Likewise.
29571         (*arm_rev): Set predicable and predicable_short_it attributes.
29572
29573 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29574
29575         * convert.c (convert_to_integer): Guard transformation to lrint by
29576         -fno-math-errno.
29577
29578 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
29579
29580         * config/aarch64/aarch64-builtins.c
29581         (aarch64_simd_builtin_type_mode): Delete.
29582         (v8qi_UP): Remap to V8QImode.
29583         (v4hi_UP): Remap to V4HImode.
29584         (v2si_UP): Remap to V2SImode.
29585         (v2sf_UP): Remap to V2SFmode.
29586         (v1df_UP): Remap to V1DFmode.
29587         (di_UP): Remap to DImode.
29588         (df_UP): Remap to DFmode.
29589         (v16qi_UP):V16QImode.
29590         (v8hi_UP): Remap to V8HImode.
29591         (v4si_UP): Remap to V4SImode.
29592         (v4sf_UP): Remap to V4SFmode.
29593         (v2di_UP): Remap to V2DImode.
29594         (v2df_UP): Remap to V2DFmode.
29595         (ti_UP): Remap to TImode.
29596         (ei_UP): Remap to EImode.
29597         (oi_UP): Remap to OImode.
29598         (ci_UP): Map to CImode.
29599         (xi_UP): Remap to XImode.
29600         (si_UP): Remap to SImode.
29601         (sf_UP): Remap to SFmode.
29602         (hi_UP): Remap to HImode.
29603         (qi_UP): Remap to QImode.
29604         (aarch64_simd_builtin_datum): Make mode a machine_mode.
29605         (VAR1): Build builtin name.
29606         (aarch64_init_simd_builtins): Remove dead code.
29607
29608 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29609
29610         * graphite-isl-ast-to-gimple.c:
29611         (set_options): New function.
29612         (scop_to_isl_ast): Add calling of set_options.
29613
29614 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
29615
29616         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29617         (analyze_iv_to_split_insn): Don't initialize them.
29618         (get_ivts_expr): Removed.
29619         (allocate_basic_variable, insert_base_initialization): Use
29620         SET_SRC instead of *get_ivts_expr.
29621         (split_iv): Use &SET_SRC instead of get_ivts_expr.
29622
29623 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29624
29625         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29626         (translate_isl_ast_for_loop): Add checking of the
29627         flag_loop_parallelize_all.
29628         (ast_build_before_for): New function.
29629         (scop_to_isl_ast): Add checking of the
29630         flag_loop_parallelize_all.
29631         * graphite-dependences.c: Move the defenition of the
29632         scop_get_dependences from graphite-optimize-isl.c to this file.
29633         (apply_schedule_on_deps): Add checking of the ux's emptiness.
29634         (carries_deps): Add checking of the x's value.
29635         * graphite-optimize-isl.c: Move the defenition of the
29636         scop_get_dependences to graphite-dependences.c.
29637         * graphite-poly.h: Add declarations of scop_get_dependences
29638         and carries_deps.
29639
29640 2014-08-04  Rohit  <rohitarulraj@freescale.com>
29641
29642         PR target/60102
29643         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29644         names.
29645         (alt_reg_names): Likewise.
29646         (rs6000_dwarf_register_span): For SPE high registers, replace
29647         dwarf register numbers with GCC hard register numbers.
29648         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29649         (rs6000_dbx_register_number): For SPE high registers, return dwarf
29650         register number for the corresponding GCC hard register number.
29651         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29652         newly added GCC hard register numbers for SPE high registers.
29653         (DWARF_FRAME_REGISTERS):  Likewise.
29654         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29655         (DWARF_FRAME_REGNUM): Likewise.
29656         (FIXED_REGISTERS): Likewise.
29657         (CALL_USED_REGISTERS): Likewise.
29658         (CALL_REALLY_USED_REGISTERS): Likewise.
29659         (REG_ALLOC_ORDER): Likewise.
29660         (enum reg_class): Likewise.
29661         (REG_CLASS_NAMES): Likewise.
29662         (REG_CLASS_CONTENTS): Likewise.
29663         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29664
29665 2014-08-04  Richard Biener  <rguenther@suse.de>
29666
29667         * gimple-fold.h (gimple_fold_builtin): Remove.
29668         * gimple-fold.c (gimple_fold_builtin): Make static.
29669         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29670         fold_stmt, not gimple_fold_builtin.
29671
29672 2014-08-04  Martin Liska <mliska@suse.cz>
29673
29674         * cgraph.h (csi_end_p): Removed.
29675         (csi_next): Likewise.
29676         (csi_node): Likewise.
29677         (csi_start): Likewise.
29678         (cgraph_node_in_set_p): Likewise.
29679         (cgraph_node_set_size): Likewise.
29680         (vsi_end_p): Likewise.
29681         (vsi_next): Likewise.
29682         (vsi_node): Likewise.
29683         (vsi_start): Likewise.
29684         (varpool_node_set_size): Likewise.
29685         (cgraph_node_set_nonempty_p): Likewise.
29686         (varpool_node_set_nonempty_p): Likewise.
29687         * cgraphunit.c (cgraph_process_new_functions): vec replaces
29688         cgraph_node_set.
29689         * ipa-inline-transform.c: Likewise.
29690         * ipa-utils.c (cgraph_node_set_new): Removed.
29691         (cgraph_node_set_add): Likewise.
29692         (cgraph_node_set_remove): Likewise.
29693         (cgraph_node_set_find): Likewise.
29694         (dump_cgraph_node_set): Likewise.
29695         (debug_cgraph_node_set): Likewise.
29696         (free_cgraph_node_set): Likewise.
29697         (varpool_node_set_new): Likewise.
29698         (varpool_node_set_add): Likewise.
29699         (varpool_node_set_remove): Likewise.
29700         (varpool_node_set_find): Likewise.
29701         (dump_varpool_node_set): Likewise.
29702         (free_varpool_node_set): Likewise.
29703         (debug_varpool_node_set): Likewise.
29704         * tree-emutls.c (struct tls_var_data):
29705         (emutls_index): Removed.
29706         (emutls_decl): Likewise.
29707         (gen_emutls_addr): Function implementation uses newly added
29708         hash_map<varpool_node *, tls_var_data>.
29709         (clear_access_vars): Likewise.
29710         (create_emultls_var): Likewise.
29711         (ipa_lower_emutls): Likewise.
29712         (reset_access): New function.
29713
29714 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29715
29716         * config/i386/i386.c (ix86_option_override_internal): Add
29717         PTA_RDRND and PTA_MOVBE for bdver4.
29718
29719 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29720             James Greenhalgh  <james.greenhalgh@arm.com>
29721
29722         * doc/md.texi (clrsb): Document.
29723         (clz): Change reference to x into operand 1.
29724         (ctz): Likewise.
29725         (popcount): Likewise.
29726
29727 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29728
29729         PR target/61713
29730         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29731         move to subtarget in serial version if result is ignored.
29732
29733 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29734             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29735
29736         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29737         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
29738         (sched_analyze_insn): Update use of try_group_insn to
29739         sched_macro_fuse_insns.
29740         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29741         arguments that are not conditional jumps.
29742
29743 2014-08-04  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29744
29745         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
29746         extended family information. Handle BTVER2 cpu with cpuid family value.
29747
29748 2014-08-04  Tom de Vries  <tom@codesourcery.com>
29749
29750         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29751         (glibc_2_11_or_earlier): Document effective-target keywords.
29752
29753 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29754
29755         * ipa-devirt.c (odr_type_warn_count): Add type.
29756         (possible_polymorphic_call_targets): Set it.
29757         (ipa_devirt): Use it.
29758
29759 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29760
29761         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29762         Document.
29763         * ipa-devirt.c: Include hash-map.h
29764         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29765         (clear_speculation): Break out of ...
29766         (get_class_context): ... here; speed up handling obviously useless
29767         speculations.
29768         (odr_type_warn_count, decl_warn_count): New structures.
29769         (final_warning_record): New structure.
29770         (final_warning_records): New static variable.
29771         (possible_polymorphic_call_targets): Cleanup handling of
29772         speculative info; do not build speculation when user do not care;
29773         record info about warnings when asked for.
29774         (add_decl_warning): New function.
29775         (type_warning_cmp): New function.
29776         (decl_warning_cmp): New function.
29777         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29778         (gate): Enable pass when warnings are requested.
29779         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29780         options.
29781
29782 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29783
29784         * hash-map.h (default_hashmap_traits::mark_key_deleted):
29785         Fix cast.
29786         (hash_map::remove): New method.
29787         (hash_map::traverse): New method.
29788         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29789         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29790         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29791         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29792         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29793         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29794         pointer_map.
29795
29796 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29797
29798         * hash-set.h: new File.
29799         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29800         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29801         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29802         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29803         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29804         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29805         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29806         varpool.c: Use hash_set instead of pointer_set.
29807
29808 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
29809
29810         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29811
29812 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29813
29814         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29815         for frame access when strict_p is false.
29816
29817 2014-08-01  Renlin Li <renlin.li@arm.com>
29818 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29819
29820         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29821         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29822         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29823         Declaration.
29824         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29825         predicate.
29826         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29827         aarch64_mem_pair_offset.
29828
29829 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29830
29831         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29832         offset.
29833         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29834         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29835
29836 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
29837
29838         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29839
29840 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
29841
29842         PR regression/61510
29843         * cgraphunit.c (analyze_functions): Use get_create rather than get
29844         for decls which are clones of abstract functions.
29845
29846 2014-08-01  Martin Liska  <mliska@suse.cz>
29847
29848         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29849         * ipa-prop.h (count_formal_params): Global function created from static.
29850         * ipa-prop.c (count_formal_params): Likewise.
29851         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29852         profiles for semantically equivalent functions.
29853         * passes.c (do_per_function): If we load body of a function
29854         during WPA, this condition should behave same.
29855         * varpool.c (ctor_for_folding): More tolerant assert for variable
29856         aliases created during WPA.
29857
29858 2014-08-01  Martin Liska  <mliska@suse.cz>
29859
29860         * doc/invoke.texi (Options That Control Optimization): Documentation
29861         for -foptimize-strlen introduced. Optimization levels default options
29862         fixed.
29863
29864 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
29865
29866         * opts.c (common_handle_option): Handle -fsanitize=alignment.
29867         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29868         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29869         type to bool.
29870         * stor-layout.h (min_align_of_type): New prototype.
29871         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29872         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
29873         check.
29874         * ubsan.c: Include builtins.h.
29875         (ubsan_expand_bounds_ifn): Change return type to bool,
29876         always return true.
29877         (ubsan_expand_null_ifn): Change return type to bool, change
29878         argument to gimple_stmt_iterator *.  Handle both null and alignment
29879         sanitization, take type from ckind argument's type rather than
29880         first argument.
29881         (instrument_member_call): Removed.
29882         (instrument_mem_ref): Remove t argument, add mem and base arguments.
29883         Handle both null and alignment sanitization, don't say whole
29884         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
29885         call instead of 2 argument.
29886         (instrument_null): Adjust instrument_mem_ref caller.  Don't
29887         instrument calls here.
29888         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29889         like SANITIZE_NULL.
29890         * stor-layout.c (min_align_of_type): New function.
29891         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29892         Or it into SANITIZE_UNDEFINED.
29893         * doc/invoke.texi (-fsanitize=alignment): Document.
29894
29895 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29896
29897         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29898
29899 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29900
29901         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29902         inchash.
29903         (vn_reference_compute_hash): Dito.
29904         (vn_nary_op_compute_hash): Dito.
29905         (vn_phi_compute_hash): Dito.
29906         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29907
29908 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29909
29910         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29911         Rename to inchash:add_expr_commutative. Convert to inchash.
29912         (iterative_hash_hashable_expr): Rename to
29913         inchash:add_hashable_expr. Convert to inchash.
29914         (avail_expr_hash): Dito.
29915
29916 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29917
29918         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29919         Convert to inchash.
29920
29921 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29922
29923         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29924
29925 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29926
29927         * Makefile.in (OBJS): Add rtlhash.o
29928         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29929         (loc_checksum): Dito.
29930         (loc_checksum_ordered): Dito.
29931         (hash_loc_operands): Dito.
29932         (hash_locs): Dito.
29933         (hash_loc_list): Dito.
29934         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29935         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29936         * rtlhash.c: New file.
29937         * rtlhash.h: New file.
29938
29939 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29940
29941         * inchash.h (inchash): Change inchash class to namespace.
29942         (class hash): ... Rename from inchash.
29943         (add_object): Move from macro to class template.
29944         * lto-streamer-out.c (hash_tree): Change inchash
29945         to inchash::hash.
29946         * tree.c (build_type_attribute_qual_variant): Dito.
29947         (type_hash_list): Dito.
29948         (attribute_hash_list): Dito.
29949         (iterative_hstate_expr): Rename to inchash::add_expr
29950         (build_range_type_1): Change inchash to inchash::hash
29951         and use hash::add_expr.
29952         (build_array_type_1): Dito.
29953         (build_function_type): Dito
29954         (build_method_type_directly): Dito.
29955         (build_offset_type): Dito.
29956         (build_complex_type): Dito.
29957         (make_vector_type): Dito.
29958         * tree.h (iterative_hash_expr): Dito.
29959
29960 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
29961
29962         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29963
29964 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29965
29966         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29967         correct alphabetical position.
29968         (vpaddd_f64): Rewrite using builtins.
29969         (vpaddd_s64): Move to correct alphabetical position.
29970         (vpaddd_u64): New.
29971
29972 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
29973
29974         PR target/61844
29975         * config/sh/sh.c (sh_legitimate_address_p,
29976         sh_legitimize_reload_address): Handle reg+reg address modes when
29977         ALLOW_INDEXED_ADDRESS is false.
29978         * config/sh/predicates.md (general_movsrc_operand,
29979         general_movdst_operand): Likewise.
29980
29981 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29982
29983         * config/aarch64/aarch64-builtins.c
29984         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29985         BYTES_BIG_ENDIAN.
29986
29987 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29988
29989         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29990         the generated mask based on BYTES_BIG_ENDIAN.
29991         (aarch64_simd_check_vect_par_cnst_half): New.
29992         * config/aarch64/aarch64-protos.h
29993         (aarch64_simd_check_vect_par_cnst_half): New.
29994         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29995         the check out to aarch64_simd_check_vect_par_cnst_half.
29996         (vect_par_cnst_lo_half): Likewise.
29997         * config/aarch64/aarch64-simd.md
29998         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29999         (move_hi_quad_<mode>): Always generate a low mask.
30000
30001 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
30002
30003         * doc/invoke.texi (AVR Options): Add documentation about
30004         __AVR_DEVICE_NAME__ built-in macro.
30005
30006 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
30007
30008         PR target/61948
30009         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
30010         constraints are satisfied.
30011         (<shift>di3_neon): Likewise.
30012
30013 2014-07-31  Richard Biener  <rguenther@suse.de>
30014
30015         PR tree-optimization/61964
30016         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
30017         by structural equality.
30018
30019 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
30020
30021         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
30022         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
30023         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
30024         New enums.
30025         * gcc.c (sanitize_spec_function): Support new option.
30026         (SANITIZER_SPEC): Remove now redundant check.
30027         * opts.c (common_handle_option): Support new option.
30028         (finish_options): Check for incompatibilities.
30029         * toplev.c (process_options): Split userspace-specific checks.
30030
30031 2014-07-31  Richard Biener  <rguenther@suse.de>
30032
30033         * lto-streamer.h (struct output_block): Remove global.
30034         (struct data_in): Remove labels, num_named_labels and
30035         num_unnamed_labels.
30036         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
30037         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
30038
30039 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
30040
30041         PR c++/60517
30042         * common.opt (-Wreturn-local-addr): Moved from c.opt.
30043         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
30044         (isolate_path): New argument to avoid inserting a trap.
30045         (find_implicit_erroneous_behaviour): Handle returning the address
30046         of a local variable.
30047         (find_explicit_erroneous_behaviour): Likewise.
30048
30049 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
30050
30051         PR lto/61868
30052         * toplev.c (init_random_seed): Move piece of code never called to
30053         set_random_seed.
30054         (set_random_seed): see above.
30055
30056 2014-07-31  Tom de Vries  <tom@codesourcery.com>
30057
30058         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
30059
30060 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
30061
30062         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
30063         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
30064
30065 2014-07-31  Richard Biener  <rguenther@suse.de>
30066
30067         * data-streamer.h (streamer_write_data_stream): Declare here,
30068         renamed from ...
30069         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
30070         * lto-cgraph.c (lto_output_node): Adjust.
30071         (lto_output_varpool_node): Likewise.
30072         * data-streamer-out.c (streamer_string_index): Likewise.
30073         (streamer_write_data_stream, lto_append_block): Move from ...
30074         * lto-section-out.c (lto_output_data_stream,
30075         lto_append_block): ... here.
30076
30077 2014-07-30  Mike Stump  <mikestump@comcast.net>
30078
30079         * configure.ac: Also check for popen.
30080         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
30081         * configure: Regenerate.
30082         * config.in:  Regenerate.
30083
30084 2014-07-30  Martin Jambor  <mjambor@suse.cz>
30085
30086         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
30087         parameter to gimple.
30088
30089 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30090
30091         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
30092         address as second parameter to __tpf_eh_return routine.
30093
30094 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
30095
30096         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
30097         Thumb2.
30098
30099 2014-07-30  Tom Tromey  <tromey@redhat.com>
30100
30101         PR c/59855
30102         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
30103         * doc/extend.texi (Type Attributes): Document designated_init
30104         attribute.
30105
30106 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
30107
30108         * graphite-isl-ast-to-gimple.c:
30109         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
30110         (gcc_expression_from_isl_expression): Pass type to
30111         gcc_expression_from_isl_ast_expr_id.
30112
30113 2014-07-30  Richard Biener  <rguenther@suse.de>
30114
30115         * lto-streamer.h (lto_write_data): New function.
30116         * langhooks.c (lhd_append_data): Do not free block.
30117         * lto-section-out.c (lto_write_data): New function writing
30118         raw data to the current section.
30119         (lto_write_stream): Adjust for langhook semantic change.
30120         (lto_destroy_simple_output_block): Write header directly.
30121         * lto-opts.c (lto_write_options): Write options directly.
30122         * lto-streamer-out.c (produce_asm): Write heaeder directly.
30123         (lto_output_toplevel_asms): Likewise.
30124         (copy_function_or_variable): Copy data directly.
30125         (write_global_references): Output index table directly.
30126         (lto_output_decl_state_refs): Likewise.
30127         (write_symbol): Write data directly.
30128         (produce_symtab): Adjust.
30129         (produce_asm_for_decls): Output header and refs directly.
30130
30131 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
30132
30133         * ipa-devirt.c (polymorphic_call_target_d): Rename
30134         nonconstruction_targets to speculative_targets
30135         (get_class_context): Fix handling of contextes without outer type;
30136         avoid matching non-polymorphic types in LTO.
30137         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
30138         parameter to speculative_targetsp; handle speculation.
30139         (dump_possible_polymorphic_call_targets): Update dumping.
30140
30141 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
30142
30143         * common.opt (Wodr): Enable by default.
30144
30145 2014-07-29  Olivier Hainque  <hainque@adacore.com>
30146
30147         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
30148
30149 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
30150
30151         PR bootstrap/61914
30152         * gengtype.c (strtoken): New function.
30153         (create_user_defined_type): Replace strtok with strtoken.
30154
30155 2014-07-29  Nathan Sidwell  <nathan@acm.org>
30156
30157         * gcov-io.c (gcov_var): Make hidden.
30158         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
30159         (gcov_do_dump): Declare.
30160         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
30161
30162 2014-07-29  Martin Jambor  <mjambor@suse.cz>
30163
30164         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
30165         parameter to gimple.
30166         (sra_modify_assign): Likewise.
30167
30168 2014-07-29  Richard Biener  <rguenther@suse.de>
30169
30170         PR middle-end/52478
30171         * expr.c (expand_expr_real_2): Revert last change.
30172
30173 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
30174
30175         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
30176         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
30177         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
30178         call.
30179         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
30180         (contains_type_p): Forward declare.
30181         (polymorphic_call_target_hasher::hash): Hash speculative info.
30182         (polymorphic_call_target_hasher::equal): Compare speculative info.
30183         (get_class_context): Handle speuclation.
30184         (contains_type_p): Update.
30185         (get_polymorphic_call_info_for_decl): Update.
30186         (walk_ssa_copies): Break out from ...
30187         (get_polymorphic_call_info): ... here; set speculative context
30188         before giving up.
30189         * ipa-prop.c (ipa_write_indirect_edge_info,
30190         ipa_read_indirect_edge_info): Stream speculative context.
30191         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
30192         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
30193         SPECULATIVE_MAYBE_DERIVED_TYPE).
30194         (possible_polymorphic_call_targets overriders): Update.
30195         (dump_possible_polymorphic_call_targets overriders): Update.
30196         (dump_possible_polymorphic_call_target_p overriders): Update.
30197
30198 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
30199
30200         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
30201         ipa-devirt path; fix thinko there.
30202
30203 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
30204
30205         * config/i386/i386.c (ix86_return_in_memory): Replace one
30206         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
30207
30208 2014-07-28  Marek Polacek  <polacek@redhat.com>
30209
30210         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
30211
30212 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
30213
30214         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
30215         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
30216         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
30217         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
30218         (USE_LD_AS_NEEDED): Likewise.
30219         (ASM_APP_ON): Likewise.
30220         (ASM_APP_OFF): Likewise.
30221         (TARGET_POSIX_IO): Likewise.
30222         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
30223         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
30224         (USE_LD_AS_NEEDED): Likewise.
30225         (ASM_APP_ON): Likewise.
30226         (ASM_APP_OFF): Likewise.
30227         (TARGET_POSIX_IO): Likewise.
30228
30229 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
30230
30231         PR middle-end/61734
30232         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
30233         operators other than the equality operators.
30234
30235 2014-07-28  Richard Biener  <rguenther@suse.de>
30236
30237         PR middle-end/52478
30238         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
30239         sure to register SImode ones, not only >= word_mode ones.
30240         * expr.c (expand_expr_real_2): When expanding -ftrapv
30241         binops do not use OPTAB_LIB_WIDEN.
30242
30243 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
30244
30245         PR middle-end/61919
30246         * tree-outof-ssa.c (insert_partition_copy_on_edge)
30247         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
30248         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
30249         inserting them in the insn stream.
30250
30251 2014-07-28  Marek Polacek  <polacek@redhat.com>
30252
30253         PR middle-end/61913
30254         * common.opt (Wodr): Add Var.
30255
30256 2014-07-28  Richard Biener  <rguenther@suse.de>
30257
30258         PR tree-optimization/61921
30259         * tree-ssa-structalias.c (create_variable_info_for_1): Check
30260         if there is a varpool node before dereferencing it.
30261
30262 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
30263
30264         * graphite-sese-to-poly.c:
30265         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
30266         id of the pbb), which contains pointer to the pbb1.
30267
30268         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
30269
30270 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
30271
30272         * graphite-isl-ast-to-gimple.c:
30273         (graphite_create_new_guard): New function.
30274         (translate_isl_ast_node_if): New function.
30275         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
30276
30277         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
30278
30279 2014-07-27  Anthony Green  <green@moxielogic.com>
30280
30281         * config.gcc: Add moxie-*-moxiebox* configuration.
30282         * config/moxie/moxiebox.h: New file.
30283
30284 2014-07-26  Andrew Pinski  <apinski@cavium.com>
30285
30286         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
30287         from the read only register.
30288
30289 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
30290
30291         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
30292         as the allocation class if it isn't likely to be spilled.
30293
30294 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
30295
30296         * rtl.h (tls_referenced_p): Declare.
30297         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
30298         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
30299         (mips_cannot_force_const_mem): Use tls_referenced_p.
30300         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
30301         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
30302         instead of pa_tls_referenced_p.
30303         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
30304         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
30305         (pa_legitimate_constant_p): Likewise.
30306         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
30307         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
30308         (rs6000_cannot_force_const_mem, rs6000_emit_move)
30309         (rs6000_address_for_altivec): Use tls_referenced_p instead of
30310         rs6000_tls_referenced_p.
30311         (rs6000_tls_symbol_ref_1): Delete.
30312
30313 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
30314
30315         PR target/44551
30316         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
30317         Optimize inverse of a VEC_CONCAT.
30318
30319 2014-07-25  Xinliang David Li  <davidxl@google.com>
30320
30321         * params.def: New parameter.
30322         * coverage.c (get_coverage_counts): Check new flag.
30323         (coverage_compute_profile_id): Check new flag.
30324         (coverage_begin_function): Check new flag.
30325         (coverage_end_function): Check new flag.
30326         * value-prof.c (coverage_node_map_initialized_p): New function.
30327         (init_node_map): Populate map with all functions.
30328         * doc/invoke.texi: Document new parameter.
30329
30330 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
30331             Richard Biener <rguenther@suse.de>
30332
30333         * lto-streamer-out.c (struct sccs): Turn to ...
30334         (class DFS): ... this one; refactor the DFS walk so it can
30335         be re-done on per-SCC basis.
30336         (DFS::DFS): New constructor.
30337         (DFS::~DFS): New destructor.
30338         (hash_tree): Add new MAP argument holding in-SCC hash values;
30339         remove POINTER_TYPE hashing hack.
30340         (scc_entry_compare): Rename to ...
30341         (DFS::scc_entry_compare): ... this one.
30342         (hash_scc): Rename to ...
30343         (DFS::hash_scc): ... this one; pass output_block instead
30344         of streamer_cache; work harder to get unique and stable SCC
30345         hashes.
30346         (DFS_write_tree): Rename to ...
30347         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
30348         (lto_output_tree): Update.
30349
30350 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30351
30352         * lto-streamer-out.c (hash_tree): Convert to inchash.
30353
30354 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30355
30356         * tree.c (build_type_attribute_qual_variant): Use inchash.
30357         (type_hash_list): Dito.
30358         (attribute_hash_list): Dito
30359         (iterative_hstate_expr): Dito.
30360         (iterative_hash_expr): Dito.
30361         (build_range_type_1): Dito.
30362         (build_array_type_1): Dito.
30363         (build_function_type): Dito.
30364         (build_method_type_directly): Dito.
30365         (build_offset_type): Dito.
30366         (build_complex_type): Dito.
30367         (make_vector_type): Dito.
30368         * tree.h (iterative_hash_expr): Add compat wrapper.
30369         (iterative_hstate_expr): Add.
30370
30371 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30372
30373         * Makefile.in (OBJS): Add inchash.o.
30374         (PLUGIN_HEADERS): Add inchash.h.
30375         * ipa-devirt.c: Include inchash.h.
30376         * lto-streamer-out.c: Dito.
30377         * tree-ssa-dom.c: Dito.
30378         * tree-ssa-pre.c: Dito.
30379         * tree-ssa-sccvn.c: Dito.
30380         * tree-ssa-tail-merge.c: Dito.
30381         * asan.c: Dito.
30382         * tree.c (iterative_hash_hashval_t): Move to ...
30383         (iterative_hash_host_wide_int): Move to ...
30384         * inchash.c: Here. New file.
30385         * tree.h (iterative_hash_hashval_t): Move to ...
30386         (iterative_hash_host_wide_int): Move to ...
30387         * inchash.h: Here. New file.
30388
30389 2014-07-25  Richard Biener  <rguenther@suse.de>
30390
30391         PR middle-end/61762
30392         PR middle-end/61894
30393         * fold-const.c (native_encode_int): Add and handle offset
30394         parameter to do partial encodings of expr.
30395         (native_encode_fixed): Likewise.
30396         (native_encode_real): Likewise.
30397         (native_encode_complex): Likewise.
30398         (native_encode_vector): Likewise.
30399         (native_encode_string): Likewise.
30400         (native_encode_expr): Likewise.
30401         * fold-const.c (native_encode_expr): Add offset parameter
30402         defaulting to -1.
30403         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
30404         (fold_ctor_reference): Handle all reads from tcc_constant
30405         ctors.
30406
30407 2014-07-25  Richard Biener  <rguenther@suse.de>
30408
30409         * tree-inline.c (estimate_move_cost): Mark speed_p argument
30410         as possibly unused.
30411
30412 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
30413
30414         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
30415
30416 2014-07-24  Kyle McMartin  <kyle@redhat.com>
30417
30418         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
30419
30420 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30421
30422         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
30423         Add prototype.
30424         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
30425         function.
30426         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
30427         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
30428         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
30429
30430 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30431
30432         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
30433         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
30434         aggregate types.  Instead, *all* aggregate types, except for single-
30435         element or homogeneous float/vector aggregates, are quadword-aligned
30436         if required by their type alignment.  Issue -Wpsabi note when a type
30437         is now treated differently than before.
30438
30439 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30440
30441         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
30442         does not fit fully into floating-point registers, and there is still
30443         space in the register parameter area, use GPRs to pass those parts
30444         of the argument.  Issue -Wpsabi note if any parameter is now treated
30445         differently than before.
30446         (rs6000_arg_partial_bytes): Update.
30447
30448 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
30449
30450         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
30451
30452 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30453
30454         * rtl.h (target_rtl): Remove lang_dependent_initialized.
30455         * toplev.c (initialize_rtl): Don't use it.  Move previously
30456         "language-dependent" calls to...
30457         (backend_init): ...here.
30458         (lang_dependent_init_target): Don't set lang_dependent_initialized.
30459         Assert that RTL initialization hasn't happend yet.
30460
30461 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30462
30463         PR rtl-optimization/61629
30464         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
30465         they have already been initialized.
30466
30467 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30468
30469         PR middle-end/61268
30470         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
30471         DECL_INCOMING_RTL and entry_parm.
30472         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
30473         * calls.c (load_register_parameters): Likewise argument values.
30474         (emit_library_call_value_1, store_one_arg): Likewise argument
30475         save areas.
30476         * config/i386/i386.c (assign_386_stack_local): Likewise the local
30477         stack slot.
30478         * explow.c (validize_mem): Modify the argument in-place.
30479
30480 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30481
30482         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
30483         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
30484
30485 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30486
30487         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
30488         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
30489
30490 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30491
30492         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
30493         (aarch64_save_callee_saves): New parameter "skip_wb".
30494         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
30495
30496 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30497
30498         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
30499         "wb_candidate2".
30500         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
30501
30502 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30503
30504         * graphite-isl-ast-to-gimple.c:
30505         (graphite_create_new_loop): Add calling of isl_id_free to properly
30506         decrement reference counts.
30507
30508         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
30509
30510 2014-07-24  Martin Liska  <mliska@suse.cz>
30511         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
30512         function used.
30513         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
30514         (rs6000_code_end): Likewise.
30515
30516 2014-07-24  Martin Liska  <mliska@suse.cz>
30517
30518         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
30519         symtab_node funtion used.
30520         (rs6000_xcoff_declare_object_name): Likewise.
30521
30522 2014-07-24  Martin Liska  <mliska@suse.cz>
30523
30524         * cgraphunit.c (compile): Correct function used.
30525
30526 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30527
30528         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
30529         as non-indexable.
30530
30531 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30532
30533         PR lto/61802
30534         * varasm.c (bss_initializer_p): Handle offlined ctors.
30535         (align_variable, get_variable_align): Likewise.
30536         (make_decl_one_only): Likewise.
30537         (default_binds_local_p_1): Likewise.
30538         (decl_binds_to_current_def_p): Likewise.
30539         (get_variable_section): Get constructor if it is offlined.
30540         (assemble_variable_contents): Sanity check that the caller
30541         streamed in the ctor in LTO.
30542
30543 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30544
30545         * graphite-isl-ast-to-gimple.c:
30546         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
30547         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
30548         isl_ast_op_pdiv_r to the different case.
30549
30550         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
30551
30552 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30553
30554         PR middle-end/61876
30555         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
30556         when flag_errno_math is on.
30557
30558 2014-07-24  Martin Liska  <mliska@suse.cz>
30559
30560         * cgraph.h (varpool_node):
30561         (availability get_availability (void)):
30562         created from cgraph_variable_initializer_availability
30563         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
30564         created from: cgraph_variable_initializer_availability
30565         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
30566         (void finalize_named_section_flags (void)):
30567         created from varpool_finalize_named_section_flags
30568         (bool assemble_decl (void)): created from varpool_assemble_decl
30569         (void analyze (void)): created from varpool_analyze_node
30570         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30571         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30572         (void remove_initializer (void)): created from varpool_remove_initializer
30573         (tree get_constructor (void)): created from varpool_get_constructor
30574         (bool externally_visible_p (void)): created from varpool_externally_visible_p
30575         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30576         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30577         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30578         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30579         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30580         (static bool output_variables (void)): created from varpool_output_variables
30581         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30582         created from varpool_extra_name_alias
30583         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30584         (static void dump_varpool (FILE *f)): created from dump_varpool
30585         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30586         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30587         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30588         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30589         (void assemble_aliases (void)): created from assemble_aliases
30590
30591 2014-07-24  Martin Liska  <mliska@suse.cz>
30592
30593         * cgraph.h (symtab_node):
30594         (void register_symbol (void)): created from symtab_register_node
30595         (void remove (void)): created from symtab_remove_node
30596         (void dump (FILE *f)): created from dump_symtab_node
30597         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30598         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30599         (struct ipa_ref *add_reference (symtab_node *referred_node,
30600         enum ipa_ref_use use_type)): created from add_reference
30601         (struct ipa_ref *add_reference (symtab_node *referred_node,
30602         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30603         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30604         gimple stmt)): created from maybe_add_reference
30605         (bool semantically_equivalent_p (symtab_node *target)): created from
30606         symtab_semantically_equivalent_p
30607         (void remove_from_same_comdat_group (void)): created from
30608         remove_from_same_comdat_group
30609         (void add_to_same_comdat_group (symtab_node *old_node)): created from
30610         symtab_add_to_same_comdat_group
30611         (void dissolve_same_comdat_group_list (void)): created from
30612         symtab_dissolve_same_comdat_group_list
30613         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30614         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30615         created from symtab_alias_ultimate_target
30616         (inline symtab_node *next_defined_symbol (void)): created from
30617         symtab_next_defined_symbol
30618         (bool resolve_alias (symtab_node *target)): created from
30619         symtab_resolve_alias
30620         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30621         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30622         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30623         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30624         (void set_section (const char *section)): created from set_section_1
30625         (enum availability get_availability (void)): created from symtab_node_availability
30626         (void make_decl_local (void)): created from symtab_make_decl_local
30627         (bool real_symbol_p (void)): created from symtab_read_node
30628         (can_be_discarded_p (void)): created from symtab_can_be_discarded
30629         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30630         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30631         symtab_in_same_comdat_p;
30632         (bool address_taken_from_non_vtable_p (void)): created from
30633         address_taken_from_non_vtable_p
30634         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30635         (static void dump_table (FILE *)): created from dump_symtab
30636         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30637         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30638         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30639         symtab_used_from_object_file_p
30640         (void dump_base (FILE *)): created from dump_symtab_base
30641         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30642         (void unregister (void)): created from symtab_unregister_node
30643         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30644         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30645         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30646         symtab_nonoverwritable_alias_1
30647         * cgraph.h (cgraph_node):
30648         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30649         created from cgraph_remove_node_and_inline_clones
30650         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30651         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30652         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30653         (cgraph_node *function_symbol (enum availability *avail = NULL)):
30654         created from cgraph_function_node
30655         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30656         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30657         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30658         created from cgraph_create_clone
30659         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30660         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30661         created from cgraph_create_virtual_clone
30662         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30663         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30664         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30665         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30666         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30667         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30668         created from cgraph_function_version_info
30669         (struct cgraph_function_version_info *insert_new_function_version (void)):
30670         created from insert_new_cgraph_node_version
30671         (struct cgraph_function_version_info *function_version (void)): created from
30672         get_cgraph_node_version
30673         (void analyze (void)): created from analyze_function
30674         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30675         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30676         tree real_alias) cgraph_add_thunk
30677         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30678         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30679         created from cgraph_function_or_thunk_node
30680         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30681         created from expand_thunk
30682         (void reset (void)): created from cgraph_reset_node
30683         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30684         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30685         (void remove (void)): created from cgraph_remove_node
30686         (void dump (FILE *f)): created from dump_cgraph_node
30687         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30688         (bool get_body (void)): created from cgraph_get_body
30689         (void release_body (void)): created from cgraph_release_function_body
30690         (void unnest (void)): created from cgraph_unnest_node
30691         (void make_local (void)): created from cgraph_make_node_local
30692         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30693         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30694         gcov_type count, int freq)): created from cgraph_create_edge
30695         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30696         gcov_type count, int freq)): created from cgraph_create_indirect_edge
30697         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30698         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30699         created from cgraph_create_edge_including_clones
30700         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30701         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30702         (void remove_callers (void)): created from cgraph_node_remove_callers
30703         (void remove_callees (void)): created from cgraph_node_remove_callees
30704         (enum availability get_availability (void)): created from cgraph_function_body_availability
30705         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30706         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30707         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30708         (void call_duplication_hooks (cgraph_node *node2)): created from
30709         cgraph_call_node_duplication_hooks
30710         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30711         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30712         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30713         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30714         (void call_function_insertion_hooks (void)):
30715         created from cgraph_call_function_insertion_hooks
30716         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30717         (bool local_p (void)): created from cgraph_local_node
30718         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30719         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30720         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30721         (inline bool only_called_directly_or_aliased_p (void)):
30722         created from cgraph_only_called_directly_or_aliased_p
30723         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30724         created from cgraph_will_be_removed_from_program_if_no_direct_calls
30725         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30726         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30727         (bool can_remove_if_no_direct_calls_p (void)):
30728         created from cgraph_can_remove_if_no_direct_calls_p
30729         (inline bool has_gimple_body_p (void)):
30730         created from cgraph_function_with_gimple_body_p
30731         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30732         (static void dump_cgraph (FILE *f)): created from dump_cgraph
30733         (static inline void debug_cgraph (void)): created from debug_cgraph
30734         (static void record_function_versions (tree decl1, tree decl2)):
30735         created from record_function_versions
30736         (static void delete_function_version (tree decl)):
30737         created from delete_function_version
30738         (static void add_new_function (tree fndecl, bool lowered)):
30739         created from cgraph_add_new_function
30740         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30741         (static cgraph_node * create (tree decl)): created from cgraph_create_node
30742         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30743         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30744         (static cgraph_node *get_for_asmname (tree asmname)):
30745         created from cgraph_node_for_asm
30746         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30747         created from cgraph_same_body_alias
30748         (static bool used_from_object_file_p_worker (cgraph_node *node,
30749         void *): new function
30750         (static bool non_local_p (cgraph_node *node, void *)):
30751         created from cgraph_non_local_node_p_1
30752         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30753         created from verify_cgraph
30754         (static bool make_local (cgraph_node *node, void *)):
30755         created from cgraph_make_node_local
30756         (static cgraph_node *create_alias (tree alias, tree target)):
30757         created from cgraph_create_function_alias
30758         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30759         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30760         created from cgraph_create_edge_1
30761         * cgraph.h (varpool_node):
30762         (void remove (void)): created from varpool_remove_node
30763         (void dump (FILE *f)): created from dump_varpool_node
30764
30765 2014-07-24  Richard Biener  <rguenther@suse.de>
30766
30767         PR ipa/61823
30768         * tree-ssa-structalias.c (create_variable_info_for_1):
30769         Use varpool_get_constructor.
30770         (create_variable_info_for): Likewise.
30771
30772 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30773
30774         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30775         subtract outgoing area size when restoring stack_pointer_rtx.
30776
30777 2014-07-24  Nick Clifton  <nickc@redhat.com>
30778
30779         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30780         that operations are taking place in parallel.
30781         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30782
30783 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
30784
30785         * omp-low.c (extract_omp_for_data): Add missing break statement.
30786
30787 2014-07-24  Richard Biener  <rguenther@suse.de>
30788
30789         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30790         * tree-inline.c (estimate_move_cost): Add speed_p parameter
30791         and adjust MOVE_RATIO query accordingly.
30792         (estimate_num_insns): Adjust callers.
30793         * ipa-prop.c (ipa_populate_param_decls): Likewise.
30794         * ipa-cp.c (gather_context_independent_values,
30795         estimate_local_effects): Likewise.
30796         * ipa-split.c (consider_split): Likewise.
30797
30798 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
30799
30800         * config/i386/driver-i386.c: Remove names of unused arguments and
30801         unnecessary unused attributes.
30802         * config/i386/host-mingw32.c: Likewise.
30803         * config/i386/i386.c: Likewise.
30804         * config/i386/winnt-stubs.c: Likewise.
30805         * config/i386/winnt.c: Likewise.
30806
30807 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30808
30809         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30810         (aarch64_gen_loadwb_pair): New helper function.
30811         (aarch64_expand_epilogue): Simplify code using new helper functions.
30812         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30813
30814 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30815
30816         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30817         (aarch64_gen_storewb_pair): New helper function.
30818         (aarch64_expand_prologue): Simplify code using new helper functions.
30819         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30820
30821 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30822
30823         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30824         Rename to aarch64_save_callee_saves, remove restore code.
30825         (aarch64_restore_callee_saves): New function.
30826
30827 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30828
30829         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30830         (aarch64_save_callee_saves): New function to handle reg save
30831         for both core and vectore regs.
30832
30833 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30834
30835         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30836         (aarch64_gen_store_pair): New helper function.
30837         (aarch64_save_or_restore_callee_save_registers)
30838         (aarch64_save_or_restore_fprs): Use new helper functions.
30839
30840 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30841
30842         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30843         (aarch64_save_or_restore_callee_save_registers)
30844         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30845
30846 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30847
30848         * config/aarch64/aarch64.c
30849         (aarch64_save_or_restore_callee_save_registers)
30850         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30851
30852 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30853
30854         * config/aarch64/aarch64.c
30855         (aarch64_save_or_restore_callee_save_registers)
30856         (aarch64_save_or_restore_fprs): Remove 'increment'.
30857
30858 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30859
30860         * config/aarch64/aarch64.c
30861         (aarch64_save_or_restore_callee_save_registers)
30862         (aarch64_save_or_restore_fprs): Use register offset in
30863         cfun->machine->frame.reg_offset.
30864
30865 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30866
30867         * config/aarch64/aarch64.c
30868         (aarch64_save_or_restore_callee_save_registers)
30869         (aarch64_save_or_restore_fprs): Remove base_rtx.
30870
30871 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30872
30873         * config/aarch64/aarch64.c
30874         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30875         to 'start_offset'.  Remove local variable 'start_offset'.
30876
30877 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30878
30879         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30880         type to HOST_WIDE_INT.
30881
30882 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30883
30884         * config/aarch64/aarch64.c (aarch64_expand_prologue)
30885         (aarch64_save_or_restore_fprs)
30886         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30887
30888 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30889
30890         * config/arm/t-rtems-eabi: Add
30891         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30892         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30893         mbig-endian/mthumb/march=armv7-r, and
30894         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30895         multilibs.
30896
30897 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30898             Chris Johns <chrisj@rtems.org>
30899             Joel Sherrill <joel.sherrill@oarcorp.com>
30900
30901         * config.gcc: Add nios2-*-rtems*.
30902         * config/nios2/rtems.h: New file.
30903         * gcc/config/nios2/t-rtems: New file.
30904
30905 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
30906
30907         PR target/61396
30908         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30909         constant numbers, not general constants.
30910         (rs6000_expand_vector_init): Ditto.
30911
30912 2014-07-23  Nathan Sidwell  <nathan@acm.org>
30913
30914         * gcov-tool.c (gcov_list): Declare here.
30915         (set_gcov_list): Remove.
30916         (gcov_output_files): Set gcov_list directly.
30917
30918 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
30919
30920         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30921
30922 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30923
30924         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30925         callee-saved registers are available for padding purpose
30926         and r3 is not mandatory, then prefer use those callee-saved
30927         instead of r3.
30928
30929 2014-07-23  Richard Biener  <rguenther@suse.de>
30930
30931         * params.def (PARAM_MAX_COMBINE_INSNS): New.
30932         * combine.c: Include statistics.h and params.h.
30933         (combine_instructions): Guard three and four insn combines
30934         with max-combine-insns value.  Record statistics for combines
30935         performed.
30936         * doc/invoke.texi (max-combine-insns): Document new param.
30937
30938 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30939
30940         * graphite-isl-ast-to-gimple.c:
30941         (translate_isl_ast_node_block): New function.
30942         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30943
30944         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30945         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30946
30947 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30948
30949         * graphite-isl-ast-to-gimple.c:
30950         (get_max_schedule_dimensions): New function.
30951         (extend_schedule): Likewise.
30952         (generate_isl_schedule): Add calling of extend_schedule and
30953         get_max_schedule_dimensions.
30954
30955 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30956
30957         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30958         (case UNSPEC): Handle UNSPEC_RBIT.
30959
30960 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30961
30962         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30963         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30964
30965 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30966
30967         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30968
30969 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
30970
30971         * graphite-isl-ast-to-gimple.c:
30972         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30973         (ivs_params_clear):
30974         (build_iv_mapping): New function.
30975         (translate_isl_ast_node_user): Likewise.
30976         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30977
30978         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30979         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30980         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30981
30982 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30983
30984         PR target/55701
30985         * config/arm/arm.md (setmem): New pattern.
30986         * config/arm/arm-protos.h (struct tune_params): New fields.
30987         (arm_gen_setmem): New prototype.
30988         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30989         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30990         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30991         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30992         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30993         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30994         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30995         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30996         (arm_const_inline_cost): New function.
30997         (arm_block_set_max_insns): New function.
30998         (arm_block_set_non_vect_profit_p): New function.
30999         (arm_block_set_vect_profit_p): New function.
31000         (arm_block_set_unaligned_vect): New function.
31001         (arm_block_set_aligned_vect): New function.
31002         (arm_block_set_unaligned_non_vect): New function.
31003         (arm_block_set_aligned_non_vect): New function.
31004         (arm_block_set_vect, arm_gen_setmem): New functions.
31005
31006 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
31007
31008         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
31009
31010 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
31011
31012         PR target/61855
31013         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
31014         out of #ifdef __OPTIMIZE__.
31015
31016 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
31017
31018         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
31019         different trapping status if -fnon-call-exceptions is enabled.
31020
31021 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
31022
31023         * expr.c (store_field): Handle VOIDmode for calls that return values
31024         in multiple locations.
31025
31026 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31027
31028         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
31029         (altivec_vsldoi_<mode>): Likewise.
31030
31031 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
31032
31033         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
31034         to the number of characters in the line.
31035
31036 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
31037
31038         * graphite-isl-ast-to-gimple.c: Add using of
31039         build_nonstandard_integer_type instead of int128_integer_type_node.
31040
31041 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
31042
31043         * toplev.c (output_stack_usage): Adjust the location of the warning.
31044
31045 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
31046
31047         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
31048         (*membar_storeload): Disable for LEON3.
31049
31050 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31051
31052         PR rtl-optimization/61461
31053         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
31054
31055 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
31056
31057         PR target/61794
31058         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
31059         Fix instruction constraint.
31060         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
31061
31062 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
31063
31064         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
31065
31066 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
31067
31068         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
31069         GNU coding standards.
31070         (nds32_register_move_cost): Likewise.
31071         (nds32_memory_move_cost): Likewise.
31072         (nds32_address_cost): Likewise.
31073
31074 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31075
31076         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
31077
31078 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
31079
31080         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
31081         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
31082         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
31083         (HAVE_sync_compare_and_swapqi): Define.
31084         (HAVE_sync_compare_and_swaphi): Likewise.
31085         (HAVE_sync_compare_and_swapsi): Likewise.
31086
31087 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
31088
31089         * config/mips/p5600.md: Add missing cpu tests.
31090
31091 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31092
31093         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
31094         (vmla_f64): Likewise.
31095         (vfms_f64): Likewise.
31096         (vmls_f64): Likewise.
31097
31098 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31099
31100         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
31101         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
31102
31103 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31104
31105         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
31106         (vmlal_high_lane_s32): Likewise.
31107         (vmlal_high_lane_u16): Likewise.
31108         (vmlal_high_lane_u32): Likewise.
31109         (vmlsl_high_lane_s16): Likewise.
31110         (vmlsl_high_lane_s32): Likewise.
31111         (vmlsl_high_lane_u16): Likewise.
31112         (vmlsl_high_lane_u32): Likewise.
31113
31114 2014-07-17  Terry Guo  <terry.guo@arm.com>
31115
31116         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
31117         (alus_reg): Renamed to alus_sreg.
31118         * config/arm/arm-fixed.md: Change type of non-dsp instructions
31119         from alu_reg to alu_sreg.  Change type of dsp instructions from
31120         alu_reg to alu_dsp_reg.
31121         * config/arm/thumb1.md: Likewise.
31122         * config/arm/thumb2.md: Likewise.
31123         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
31124         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
31125         with alu_sreg and alus_sreg.
31126         * config/arm/arm1026ejs.md (alu_op): Likewise.
31127         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
31128         * config/arm/arm926ejs.md (9_alu_op): Likewise.
31129         * config/arm/fa526.md (526_alu_op): Likewise.
31130         * config/arm/fa606te.md (606te_alu_op): Likewise.
31131         * config/arm/fa626te.md (626te_alu_op): Likewise.
31132         * config/arm/fa726te.md (726te_alu_op): Likewise.
31133         * config/arm/fmp626.md (mp626_alu_op): Likewise.
31134         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
31135         alu_sreg, alu_dsp_reg and alus_sreg.
31136         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
31137         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
31138         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
31139         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
31140         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
31141         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
31142         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
31143         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
31144         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
31145         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
31146         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
31147         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
31148         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
31149         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
31150         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
31151         alus_reg to alus_sreg.
31152
31153 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
31154
31155         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
31156         infinity format.
31157
31158 2014-07-17  Richard Biener  <rguenther@suse.de>
31159
31160         PR rtl-optimization/61801
31161         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
31162         don't set reg_pending_barrier if it appears in a debug-insn.
31163
31164 2014-07-16  DJ Delorie  <dj@redhat.com>
31165
31166         * config/rx/rx.c (rx_option_override): Fix alignment values.
31167         (rx_align_for_label): Likewise.
31168
31169 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
31170
31171         PR target/61737.
31172         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
31173         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
31174         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
31175         functions.
31176         (cris_print_index, cris_print_operand, cris_constant_index_p)
31177         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
31178         (cris_address_cost): Ditto last CONSTANT_P.
31179         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
31180         callers changed.  Yield cris_offsettable_symbol for non-PIC
31181         constant symbolic expressions including labels.  Yield cris_unspec
31182         for all unspecs.
31183         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
31184         target to pic_offset_table_rtx for calls that will likely go
31185         through PLT, const0_rtx when they can't.  All callers changed.
31186         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
31187         symbolic expressions to be PICified.  Remove second, redundant,
31188         assert on can_create_pseudo_p returning non-zero.  Use
31189         replace_equiv_address_nv, not replace_equiv_address, for final
31190         operand update.
31191         * config/cris/cris.md ("movsi"): Move variable t to pattern
31192         toplevel. Adjust assert for new cris_symbol_type member.  Use
31193         CONSTANT_P instead of CONSTANT_ADDRESS_P.
31194         ("*movsi_internal") <case 9>: Make check for valid unspec operands
31195         for lapc stricter.
31196         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
31197         ("call", "call_value"): Use second incoming operand as a marker
31198         for pic-offset-table-register being used.
31199         ("*expanded_call_non_v32", "*expanded_call_v32")
31200         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
31201         second incoming operand to CALL, match cris_call_type_marker.
31202         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
31203         ("*expanded_call_side"): Ditto.  Fix typo in comment.
31204         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
31205         CONSTANT_P.
31206         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
31207         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
31208         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
31209         users changed.  Add members cris_offsettable_symbol and cris_unspec.
31210         (cris_symbol_type): Rename from cris_pic_symbol_type.
31211         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
31212         just CONSTANT_P.
31213         * config/cris/cris-protos.h (cris_symbol_type_of,
31214         cris_expand_pic_call_address): Adjust prototypes.
31215         (cris_legitimate_constant_p): New prototype.
31216
31217         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
31218         an existing tmake_file.  Don't add t-slibgcc and t-linux.
31219
31220 2014-07-17  Jason Merrill  <jason@redhat.com>
31221
31222         PR c++/61623
31223         * symtab.c (symtab_remove_from_same_comdat_group): Also
31224         set_comdat_group to NULL_TREE.
31225         (verify_symtab): Fix diagnostic.
31226
31227 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
31228
31229         PR target/61662
31230         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
31231
31232 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
31233
31234         Support location tracking for built-in macro tokens
31235         * input.h (is_location_from_builtin_token): New function declaration.
31236         * input.c (is_location_from_builtin_token): New function definition.
31237         * toplev.c (general_init): Tell libcpp what the pre-defined
31238         spelling location for built-in tokens is.
31239
31240 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
31241
31242         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
31243         on the FUNCTION_DECL.
31244
31245 2014-07-16  Richard Biener  <rguenther@suse.de>
31246
31247         PR other/61782
31248         * doc/extend.texi (always_inline): Clarify.
31249
31250 2014-07-15  Eric Christopher  <echristo@gmail.com>
31251
31252         * doc/invoke.texi (Link Options): Document -z option.
31253
31254 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
31255
31256         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
31257         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
31258
31259 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
31260
31261         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
31262
31263 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
31264
31265         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
31266         varpool_assemble_decl.
31267         * varpool.c (varpool_assemble_decl): Assert that node->definition is
31268         true.
31269
31270 2014-07-15  Michael Matz  <matz@suse.de>
31271
31272         PR rtl-optimization/61772
31273         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
31274
31275 2014-07-15  Richard Biener  <rguenther@suse.de>
31276
31277         * opts.c (default_options_table): Disable bit-ccp at -Og.
31278
31279 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
31280
31281         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
31282
31283 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
31284
31285         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
31286         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
31287         call langhook for unknown declaration.
31288         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
31289         * tree.h (DECL_ARGUMENTS): Update.
31290         * print-tree.c (print_node): Update.
31291         * tree-core.h (tree_decl_non_common): Remove arguments.
31292         (tree_function_decl): Add arguments.
31293
31294 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
31295
31296         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
31297
31298 2014-07-14  Richard Biener  <rguenther@suse.de>
31299
31300         PR tree-optimization/61779
31301         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
31302         simplifying a condition.
31303
31304 2014-07-14  Richard Biener  <rguenther@suse.de>
31305
31306         * builtins.c (c_strlen): Make only_value == 2 really only
31307         affect warning generation.
31308
31309 2014-07-14  Richard Biener  <rguenther@suse.de>
31310
31311         PR tree-optimization/61757
31312         PR tree-optimization/61783
31313         PR tree-optimization/61787
31314         * tree-ssa-dom.c (record_equality): Revert canonicalization
31315         change and add comment.
31316         (propagate_rhs_into_lhs): Revert previous fix, removing
31317         loop depth restriction again.
31318
31319 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31320
31321         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
31322         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
31323         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
31324         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
31325         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
31326         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
31327         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
31328
31329 2014-07-14  Richard Biener  <rguenther@suse.de>
31330
31331         * cgraph.h (decl_in_symtab_p): Make inline.
31332
31333 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
31334
31335         PR middle-end/61294
31336         * doc/invoke.texi (-Wmemset-transposed-args): Document.
31337
31338         PR target/61656
31339         * config/i386/i386.c (classify_argument): Don't merge classes above
31340         number of words.
31341
31342 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
31343
31344         * cgraph.h (symtab_node): Add nonzero_address.
31345         (decl_in_symtab_p): Break out from ...
31346         (symtab_get_node): ... here.
31347         * fold-const.c: Include cgraph.h
31348         (tree_single_nonzero_warnv_p): Use symtab to determine
31349         if symbol is non-zero.
31350         * symtab.c (symtab_node::nonzero_address): New method.
31351
31352 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31353
31354         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
31355         forgotten in previous commit.
31356
31357 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31358
31359         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
31360         on builtin types.
31361         * ipa-devirt.c: Include stor-layout.h and intl.h
31362         (odr_subtypes_equivalent_p): New function.
31363         (warn_odr): New function.
31364         (warn_type_mismatch): New function.
31365         (odr_types_equivalent_p): New function.
31366         (add_type_duplicate): Use it.
31367         * common.opt (Wodr): New flag.
31368         * doc/invoke.texi (Wodr): Document new warning.
31369
31370 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31371
31372         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
31373         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
31374         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
31375         (varpool_get_constructor): Push CTORS_IN timevar.
31376         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
31377
31378 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
31379
31380         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
31381         Remove VOID_FTYPE_PUSHORT.
31382         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
31383         Change code to USHORT_FTYPE_VOID.
31384         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
31385         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
31386         (ix86_atomic_assign_expand_fenv): Update for
31387         __builtin_ia32_fnstsw changes.
31388         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
31389         (fnstsw): Change operand 0 to nonimmediate operand.
31390
31391 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31392
31393         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
31394         (varpool_get_constructor): New function.
31395         (varpool_ctor_useable_for_folding_p): Break out from ...
31396         (ctor_for_folding): ... here; use varpool_get_constructor.
31397         (varpool_assemble_decl): Likewise.
31398         * lto-streamer.h (struct output_block): Turn cgraph_node
31399         to symbol filed.
31400         (lto_input_variable_constructor): Declare.
31401         * ipa-visibility.c (function_and_variable_visibility): Use
31402         varpool_get_constructor.
31403         * cgraph.h (varpool_get_constructor): Declare.
31404         (varpool_ctor_useable_for_folding_p): New function.
31405         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
31406         parameter; return error_mark_node for non-trivial constructors.
31407         (lto_write_tree_1, DFS_write_tree): Update use of
31408         get_symbol_initial_value.
31409         (output_function): Update initialization of symbol.
31410         (output_constructor): New function.
31411         (copy_function): Rename to ..
31412         (copy_function_or_variable): ... this one; handle vars too.
31413         (lto_output): Output variable sections.
31414         * lto-streamer-in.c (input_constructor): New function.
31415         (lto_read_body): Rename from ...
31416         (lto_read_body_or_constructor): ... this one; handle vars too.
31417         (lto_input_variable_constructor): New function.
31418         * ipa-prop.c (ipa_prop_write_jump_functions,
31419         ipa_prop_write_all_agg_replacement): Update.
31420         * lto-cgraph.c (compute_ltrans_boundary): Use it.
31421         (output_cgraph_opt_summary): Set symbol to NULL.
31422
31423 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31424
31425         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
31426         non-polymorphic types.
31427         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
31428         * ipa-devirt.c (types_same_for_odr): Do not explode when one
31429         of types is not polymorphic.
31430
31431 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
31432
31433         * lra-constraints.c (remove_inheritance_pseudos): Process
31434         destination pseudo too.
31435
31436 2014-07-11  Rong Xu  <xur@google.com>
31437
31438         * gcov-tool.c (gcov_output_files): Fix build error introduced in
31439         commit r212448.
31440
31441 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
31442
31443         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
31444         * config/avr/avr-devices.c (AVR_MCU): Same.
31445         (avr_mcu_types): add text start value to end of device list.
31446         * config/avr/avr-mcus.def: Add text section start for all devices.
31447         (ata5782): Add new avr5 device.
31448         (ata5831): Same.
31449         * config/avr/avr-tables.opt: Regenerate.
31450         * config/avr/avr.h: Add declaration for text section start handler.
31451         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
31452         SPEC functions.
31453         (LINK_SPEC): Include text section start handler to linker spec.
31454         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
31455         pass -Ttext option to linker if the text section start for the device
31456         is not zero.
31457         * config/avr/t-multilib: Regenerate.
31458         * doc/avr-mmcu.texi: Regenerate.
31459
31460 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
31461
31462         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
31463         * config/rs6000/aix52.h (LINK_SPEC): Same.
31464         * config/rs6000/aix53.h (LINK_SPEC): Same.
31465         * config/rs6000/aix61.h (LINK_SPEC): Same.
31466         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
31467
31468 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
31469
31470         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
31471         (graphite_verify): New function.
31472         (ivs_params_clear): New function.
31473         (gcc_expression_from_isl_ast_expr_id): New function.
31474         (gcc_expression_from_isl_expr_int): New function.
31475         (binary_op_to_tree): New function.
31476         (ternary_op_to_tree): New function.
31477         (unary_op_to_tree): New function.
31478         (nary_op_to_tree): New function.
31479         (gcc_expression_from_isl_expr_op): New function.
31480         (gcc_expression_from_isl_expression): New function.
31481         (graphite_create_new_loop): New function.
31482         (translate_isl_ast_for_loop): New function.
31483         (get_upper_bound): New function.
31484         (graphite_create_new_loop_guard): New function.
31485         (translate_isl_ast_node_for): New function.
31486         (translate_isl_ast): New function.
31487         (add_parameters_to_ivs_params): New function.
31488         (scop_to_isl_ast): New parameter ip.
31489         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
31490
31491 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31492
31493         * config/xtensa/predicates.md (call expander): Update for
31494         DECL_SECTION_NAME being string.
31495
31496 2014-07-11  Richard Biener  <rguenther@suse.de>
31497
31498         PR middle-end/61473
31499         * builtins.c (fold_builtin_memory_op): Inline memory moves that
31500         can be implemented with a single load followed by a single store.
31501         (c_strlen): Only warn when only_value is not 2.
31502
31503 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
31504
31505         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
31506
31507 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
31508
31509         PR target/61561
31510         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
31511         (*movhi_bytes): Likewise.
31512         (*arm_movqi_insn): Likewise.
31513
31514 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
31515
31516         PR target/56858
31517         * config/alpha/alpha.c: Include tree-pass.h, context.h
31518         and pass_manager.h.
31519         (pass_data_handle_trap_shadows): New pass.
31520         (pass_handle_trap_shadows::gate): New pass gate function.
31521         (make_pass_handle_trap_shadows): New function.
31522         (rest_of_handle_trap_shadows): Ditto.
31523
31524         (alpha_align_insns_1): Rename from alpha_align_insns.
31525         (pass_data_align_insns): New pass.
31526         (pass_align_insns::gate): New pass gate function.
31527         (make_pass_aling_insns): New function.
31528         (rest_of_align_insns): Ditto.
31529         (alpha_align_insns): Ditto.
31530
31531         (alpha_option_override): Declare handle_trap_shadows info
31532         and align_insns_info.  Register handle_trap_shadows and align_insns
31533         passes here.
31534         (alpha_reorg): Do not call alpha_trap_shadows and
31535         alpha_align_insn from here.
31536
31537         (alpha_pad_function_end): Do not skip BARRIERs.
31538
31539 2014-07-10  Rong Xu  <xur@google.com>
31540
31541         Add gcov-tool: an offline gcda profile processing tool support.
31542         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
31543         (gcov_is_error): Ditto.
31544         (gcov_read_string): Ditto.
31545         (gcov_read_sync): Ditto.
31546         * gcov-io.h: Move counter defines to gcov-counter.def.
31547         * gcov-dump.c (tag_counters): Use gcov-counter.def.
31548         * coverage.c: Ditto.
31549         * gcov-tool.c: Offline gcda profile processing tool.
31550         (unlink_gcda_file): Remove one gcda file.
31551         (unlink_profile_dir): Remove gcda files from the profile path.
31552         (gcov_output_files): Output gcda files to an output dir.
31553         (profile_merge): Merge two profiles in directory.
31554         (print_merge_usage_message): Print merge usage.
31555         (merge_usage): Print merge usage and exit.
31556         (do_merge): Driver for profile merge sub-command.
31557         (profile_rewrite): Rewrite profile.
31558         (print_rewrite_usage_message): Print rewrite usage.
31559         (rewrite_usage): Print rewrite usage and exit.
31560         (do_rewrite): Driver for profile rewrite sub-command.
31561         (print_usage): Print gcov-info usage and exit.
31562         (print_version): Print gcov-info version.
31563         (process_args): Process arguments.
31564         (main): Main routine for gcov-tool.
31565         * Makefile.in: Build and install gcov-tool.
31566         * gcov-counter.def: New file split from gcov-io.h.
31567         * doc/gcc.texi: Include gcov-tool.texi.
31568         * doc/gcov-tool.texi: Document for gcov-tool.
31569
31570 2014-07-10  Richard Biener  <rguenther@suse.de>
31571
31572         PR tree-optimization/61757
31573         * tree-ssa-dom.c (loop_depth_of_name): Restore.
31574         (propagate_rhs_into_lhs): Revert part of last change.
31575
31576 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
31577
31578         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31579         FUNCTION_DECLs.
31580
31581 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
31582
31583         PR middle-end/53590
31584         * function.c (allocate_struct_function): Revert r188667 change.
31585
31586         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31587
31588 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
31589
31590         * doc/install.texi: Remove links to defunct package providers for
31591         Solaris.
31592
31593 2014-07-09  Tom de Vries  <tom@codesourcery.com>
31594
31595         * final.c (get_call_fndecl): Declare.
31596         (self_recursive_call_p): New function.
31597         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31598
31599 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31600
31601         * ipa-devirt.c (record_node): Walk through aliases.
31602
31603 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31604
31605         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31606
31607 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31608
31609         Revert:
31610         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31611
31612 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31613
31614         * ipa-visibility.c (function_and_variable_visibility): Remove
31615         temporary hack disabling local aliases on AIX.
31616
31617 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31618
31619         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31620         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31621
31622 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31623
31624         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31625         * rs6000/rs6000.c: Inline output of .set instruction.
31626         (declare_alias_data): New struct.
31627         (rs6000_declare_alias): New function.
31628         (rs6000_xcoff_declare_function_name): Use it.
31629         (rs6000_xcoff_declare_object_name): New function.
31630         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31631         (ASM_OUTPUT_DEF): Turn to empty definition.
31632
31633 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31634
31635         PR bootstrap/61679
31636         * hash-table.h: use hash_table::value_type instead of
31637         Descriptor::value_type in the return types of several methods.
31638
31639 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31640
31641         * tree-pass.h (pass_data): Remove has_execute member.
31642         * passes.c (execute_one_pass): Don't check pass->has_execute.
31643         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31644         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31645         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31646         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31647         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31648         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31649         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31650         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31651         gimple-low.c, gimple-ssa-isolate-paths.c,
31652         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31653         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31654         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31655         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31656         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31657         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31658         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31659         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31660         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31661         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31662         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31663         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31664         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31665         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31666         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31667         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31668         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31669         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31670         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31671         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31672         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31673         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31674         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31675         web.c: Remove initializer for pass_data::has_execute.
31676
31677 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31678
31679         * graphite-htab.h: Use hash_map instead of hash_table.
31680         * graphite-clast-to-gimple.c: Adjust.
31681         * passes.c: Use hash_map instead of hash_table.
31682         * sese.c: Likewise.
31683         * sese.h: Remove now unused code.
31684
31685 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
31686
31687         PR target/61599
31688         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31689         than zero.
31690
31691 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31692
31693         PR rtl-optimization/61673
31694         * combine.c (simplify_comparison): Test just mode's sign bit
31695         in tmode rather than the sign bit and any bits above it.
31696
31697 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
31698
31699         * graphite-isl-ast-to-gimple.c (generate_isl_context):
31700         Add __isl_give to the declaration.
31701         (generate_isl_schedule): Likewise.
31702         (scop_to_isl_ast): Likewise.
31703
31704 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31705
31706         * config/arm/arm.c (cortexa5_extra_costs): New table.
31707         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31708
31709 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31710
31711         PR tree-optimization/61725
31712         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31713         range, use range_includes_zerop_p instead of integer_zerop on
31714         vr0->min, only use log2 of max if min is not negative.
31715
31716 2014-07-08  Richard Biener  <rguenther@suse.de>
31717
31718         * tree-ssa-dom.h (loop_depth_of_name): Remove.
31719         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31720         restriction on loop depth difference.
31721         (record_equality): Likewise.
31722         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
31723         (loop_depth_of_name): Remove.
31724         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31725         restriction on loop depth difference.
31726         (init_copy_prop): Likewise.
31727
31728 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31729
31730         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31731         parameter.
31732         (walk_aliased_vdefs): Likewise.
31733         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31734         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31735         (detect_type_change_from_memory_writes): Check if entry was reached.
31736
31737 2014-07-08  Richard Biener  <rguenther@suse.de>
31738
31739         PR tree-optimization/61681
31740         * tree-ssa-structalias.c (find_what_var_points_to): Expand
31741         NONLOCAL inside ESCAPED.
31742
31743 2014-07-08  Richard Biener  <rguenther@suse.de>
31744
31745         PR tree-optimization/61680
31746         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31747         Handle properly all read-write dependences with group accesses.
31748
31749 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
31750
31751         PR tree-optimization/61576
31752         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31753         block containing reduction statement is predecessor of phi basi block.
31754
31755 2014-07-08  Marek Polacek  <polacek@redhat.com>
31756
31757         PR c/60226
31758         * fold-const.c (round_up_loc): Change the parameter type.
31759         Remove assert.
31760         * fold-const.h (round_up_loc): Adjust declaration.
31761         * stor-layout.c (finalize_record_size): Check for too large types.
31762
31763 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
31764
31765         * symtab.c: Include calls.h.
31766         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31767
31768 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
31769
31770         * config/rs6000/rs6000.c (output_vec_const_move): Handle
31771         little-endian code generation.
31772         * config/rs6000/spe.md (spe_evmergehi): Rename to...
31773         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
31774         (spe_evmergehilo): Rename to...
31775         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
31776         (spe_evmergelo): Rename to...
31777         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
31778         (spe_evmergelohi): Rename to...
31779         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
31780         (spe_evmergehi, spe_evmergehilo): New expanders.
31781         (spe_evmergelo, spe_evmergelohi): Likewise.
31782         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31783         (*frob_tf_ti): Likewise.
31784         (*frob_<mode>_di_2): Likewise.
31785         (*frob_tf_di_8_2): Likewise.
31786         (*frob_di_<mode>): Likewise.
31787         (*frob_ti_tf): Likewise.
31788         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31789         (*frob_ti_<mode>_8_2): Likewise.
31790         (*frob_ti_tf_2): Likewise.
31791         (mov_si<mode>_e500_subreg0): Rename to...
31792         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
31793         endianness only.
31794         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31795         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31796         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
31797         the big endianness only.
31798         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31799         (*mov_si<mode>_e500_subreg0_2): Rename to...
31800         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
31801         big big endianness only.
31802         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31803         (*mov_si<mode>_e500_subreg4): Rename to...
31804         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
31805         endianness only.
31806         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31807         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31808         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
31809         the big endianness only.
31810         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31811         pattern.
31812         (*mov_si<mode>_e500_subreg4_2): Rename to...
31813         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
31814         endianness only.
31815         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31816         (*mov_sitf_e500_subreg8): Rename to...
31817         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
31818         endianness only.
31819         (*mov_sitf_e500_subreg8_le): New instruction pattern.
31820         (*mov_sitf_e500_subreg8_2): Rename to...
31821         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
31822         endianness only.
31823         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31824         (*mov_sitf_e500_subreg12): Rename to...
31825         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
31826         endianness only.
31827         (*mov_sitf_e500_subreg12_le): New instruction pattern.
31828         (*mov_sitf_e500_subreg12_2): Rename to...
31829         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
31830         endianness only.
31831         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31832
31833 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31834
31835         * asan.c (instrument_strlen_call): Do not instrument first byte
31836         in strlen if already instrumented.
31837
31838 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31839
31840         * config/arm/arm.opt (mwords-little-endian): Delete.
31841         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31842         of TARGET_LITTLE_WORDS.
31843         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31844         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31845         warning.
31846         * doc/invoke.texi: Remove references to -mwords-little-endian.
31847
31848 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
31849
31850         * expmed.c (struct init_expmed_rtl): Change all fields but
31851         pow2 and cint from struct rtx_def to rtx.
31852         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31853         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
31854         at the end again.
31855
31856 2014-07-06  Marek Polacek  <polacek@redhat.com>
31857
31858         PR c/6940
31859         * doc/invoke.texi: Document -Wsizeof-array-argument.
31860
31861 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
31862
31863         * wide-int.h (wide_int_storage): Change declaration from struct
31864         to class.
31865
31866 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
31867
31868         * cgraph.c (cgraph_create_indirect_edge): Update call of
31869         get_polymorphic_call_info.
31870         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31871         (possible_polymorphic_call_targets): Add parameter call.
31872         (decl_maybe_in_construction_p): New predicate.
31873         (get_polymorphic_call_info): Add parameter call;
31874         use decl_maybe_in_construction_p.
31875         * gimple-fold.c (fold_gimple_assign): Update use of
31876         possible_polymorphic_call_targets.
31877         (gimple_fold_call): Likewise.
31878         * ipa-prop.c: Inlcude calls.h
31879         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31880         (param_type_may_change_p): New predicate.
31881         (detect_type_change_from_memory_writes): Break out from ...
31882         (detect_type_change): ... this one; use param_type_may_change_p.
31883         (detect_type_change_ssa): Use param_type_may_change_p.
31884         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31885
31886 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
31887
31888         PR target/49423
31889         * config/arm/arm-protos.h (arm_legitimate_address_p,
31890         arm_is_constant_pool_ref): Add prototypes.
31891         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31892         (arm_is_constant_pool_ref) New function.
31893         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31894         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31895         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31896         operand. Remove pool_range and neg_pool_range attributes.
31897         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31898         pool_range and neg_pool_range attributes.
31899         * config/arm/constraints.md (Uh): New constraint.
31900         (Uq): Don't allow constant pool references.
31901
31902 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
31903
31904         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31905         (move_lo_quad_internal_be_<mode>): Likewise.
31906         (move_lo_quad_<mode>): Convert to define_expand.
31907         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31908         (aarch64_simd_move_hi_quad_be_<mode>): New.
31909         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31910         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31911         (aarch64_combinez_be<mode>): New.
31912         (aarch64_combine<mode>): Convert to define_expand.
31913         (aarch64_combine_internal<mode>): New.
31914         (aarch64_simd_combine<mode>): Remove bogus RTL description.
31915
31916 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31917
31918         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31919         combination of earlyclobber and read/write modifiers.
31920
31921 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31922
31923         * config/aarch64/aarch64-simd.md
31924         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31925
31926 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
31927
31928         PR target/61714
31929         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31930
31931 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
31932
31933         PR middle-end/61654
31934         * cgraphunit.c (expand_thunk): Call free_dominance_info.
31935
31936         PR tree-optimization/61684
31937         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31938         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31939
31940 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31941             Kito Cheng  <kito@0xlab.org>
31942             Monk Chiang  <sh.chiang04@gmail.com>
31943
31944         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31945         (nds32_symbol_load_store_p): Move to ...
31946         (nds32_fp_as_gp_check_available): Move to ...
31947         * config/nds32/nds32-fp-as-gp.c: ... here.
31948         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31949         extern declaration.
31950
31951 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31952             Kito Cheng  <kito@0xlab.org>
31953             Monk Chiang  <sh.chiang04@gmail.com>
31954
31955         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31956         (nds32_expand_store_multiple): Move to ...
31957         (nds32_expand_movmemqi): Move to ...
31958         * config/nds32/nds32-memory-manipulation.c: ... here.
31959
31960 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31961             Kito Cheng  <kito@0xlab.org>
31962             Monk Chiang  <sh.chiang04@gmail.com>
31963
31964         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31965         (nds32_output_casesi_pc_relative): Move to ...
31966         (nds32_output_casesi): Move to ...
31967         (nds32_mem_format): Move to ...
31968         (nds32_output_16bit_store): Move to ...
31969         (nds32_output_16bit_load): Move to ...
31970         (nds32_output_32bit_store): Move to ...
31971         (nds32_output_32bit_load): Move to ...
31972         (nds32_output_32bit_load_s): Move to ...
31973         (nds32_output_stack_push): Move to ...
31974         (nds32_output_stack_pop): Move to ...
31975         * config/nds32/nds32-md-auxiliary.c: ... here.
31976
31977 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31978             Ling-Hua Tseng  <uranus@tinlans.org>
31979
31980         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31981         the purpose of this file.
31982
31983 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31984             Kito Cheng  <kito@0xlab.org>
31985             Monk Chiang  <sh.chiang04@gmail.com>
31986
31987         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31988         (nds32_address_cost): Move implementation to ...
31989         * config/nds32/nds32-cost.c: ... here.
31990         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31991         (nds32_address_cost_impl): Declare.
31992
31993 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31994             Kito Cheng  <kito@0xlab.org>
31995             Monk Chiang  <sh.chiang04@gmail.com>
31996
31997         * config/nds32/nds32.c
31998         (nds32_consecutive_registers_load_store_p): Move to ...
31999         (nds32_valid_multiple_load_store): Move to ...
32000         (nds32_valid_stack_push_pop): Move to ...
32001         (nds32_can_use_bclr_p): Move to ...
32002         (nds32_can_use_bset_p): Move to ...
32003         (nds32_can_use_btgl_p): Move to ...
32004         (nds32_can_use_bitci_p): Move to ...
32005         * config/nds32/nds32-predicates.c: ... here.
32006
32007 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32008             Kito Cheng  <kito@0xlab.org>
32009             Monk Chiang  <sh.chiang04@gmail.com>
32010
32011         * config/nds32/nds32.c
32012         (nds32_expand_builtin_null_ftype_reg): Move to ...
32013         (nds32_expand_builtin_reg_ftype_imm): Move to ...
32014         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
32015         (nds32_init_builtins): Move implementation to ...
32016         (nds32_expand_builtin): Move implementation to ...
32017         * config/nds32/nds32-intrinsic.c: ... here.
32018         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
32019         (nds32_expand_builtin_impl): Declare.
32020
32021 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32022             Kito Cheng  <kito@0xlab.org>
32023             Monk Chiang  <sh.chiang04@gmail.com>
32024
32025         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
32026         (nds32_emit_section_tail_template): Move to ...
32027         (nds32_emit_isr_jmptbl_section): Move to ...
32028         (nds32_emit_isr_vector_section): Move to ...
32029         (nds32_emit_isr_reset_conten): Move to ...
32030         (nds32_check_isr_attrs_conflict): Move to ...
32031         (nds32_construct_isr_vectors_information): Move to ...
32032         (nds32_asm_file_start): Move implementation to ...
32033         (nds32_asm_file_end): Move implementation to ...
32034         * config/nds32/nds32-isr.c: ... here.
32035         * config/nds32/nds32-protos.h
32036         (nds32_check_isr_attrs_conflict): Declare.
32037         (nds32_construct_isr_vectors_information): Declare.
32038         (nds32_asm_file_start_for_isr): Declare.
32039         (nds32_asm_file_end_for_isr): Declare.
32040
32041 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32042             Kito Cheng  <kito@0xlab.org>
32043             Monk Chiang  <sh.chiang04@gmail.com>
32044
32045         * config.gcc (nds32*): Add new modules to extra_objs.
32046         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
32047         (nds32be-*-*): Likewise.
32048         * config/nds32/nds32-cost.c: New file.
32049         * config/nds32/nds32-fp-as-gp.c: New file.
32050         * config/nds32/nds32-intrinsic.c: New file.
32051         * config/nds32/nds32-isr.c: New file.
32052         * config/nds32/nds32-md-auxiliary.c: New file.
32053         * config/nds32/nds32-memory-manipulation.c: New file.
32054         * config/nds32/nds32-pipelines-auxiliary.c: New file.
32055         * config/nds32/nds32-predicates.c: New file.
32056         * config/nds32/t-nds32: New file.
32057
32058 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
32059
32060         PR tree-optimization/61682
32061         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
32062         using cases and when one of the operands is equal to 1.
32063
32064 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
32065
32066         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
32067         ashr<mode>3): Correct mode of operands[2].
32068         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
32069         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
32070         Correct mode of operands[2].  Fix split condition.
32071
32072 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
32073
32074         * arm.md (arch): Add armv6_or_vfpv3.
32075         (arch_enabled): Add test for the above.
32076         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
32077         on VFP9.
32078         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
32079
32080 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
32081
32082         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
32083         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
32084         HWI 1 and negate the unsigned value.
32085         * expmed.c (expand_sdiv_pow2): For modes wider than word always
32086         use AND instead of shift.
32087         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
32088
32089 2014-07-03  Marek Polacek  <polacek@redhat.com>
32090
32091         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
32092         (-fsanitize=float-divide-by-zero): Move to the table with
32093         -fsanitize=undefined suboptions.
32094         (-fsanitize=float-cast-overflow): Likewise.
32095
32096 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
32097
32098         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
32099         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
32100         endianness.
32101
32102 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32103
32104         * loop-invariant.c (struct invariant): Add a new member: eqno;
32105         (find_identical_invariants): Update eqno;
32106         (create_new_invariant): Init eqno;
32107         (get_inv_cost): Compute comp_cost with eqno;
32108
32109 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
32110
32111         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
32112         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
32113         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
32114         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
32115         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
32116
32117 2014-07-02  Christian Bruel  <christian.bruel@st.com>
32118
32119         PR target/29349
32120         PR target/53513
32121         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
32122         (make_preds_opaque): Delete.
32123         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
32124         (commit_mode_sets): New function.
32125         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
32126         Process all modes at once.
32127         * basic-block.h (pre_edge_lcm_avs): Declare.
32128         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
32129         Call clear_aux_for_edges. Fix comments.
32130         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
32131         (pre_edge_rev_lcm): Idem.
32132         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
32133         parameter.
32134         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
32135         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
32136         Idem.
32137         * config/i386/i386.c (x96_emit_mode_set): Idem.
32138         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
32139         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
32140         (fpscr_toggle) Disallow from delay slot.
32141         * target.def (emit_mode_set): Add prev_mode parameter.
32142         * doc/tm.texi: Regenerate.
32143
32144 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32145
32146         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
32147         variable i.
32148
32149 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
32150
32151         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
32152         vtable_pointer_value_to_vtable): Constify.
32153         (contains_polymorphic_type_p): Declare.
32154         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
32155         vtable_pointer_value_to_vtable): Constify.
32156         (contains_polymorphic_type_p): New predicate.
32157         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
32158         polymorphic types.
32159         (ipa_set_ancestor_jf): Likewise.
32160         (detect_type_change): Return false in easy cases.
32161         (compute_complex_assign_jump_func): Require type to contain
32162         polymorphic type.
32163         (compute_known_type_jump_func): Likewise.
32164
32165 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
32166
32167         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
32168         Remove.
32169         (type_in_anonymous_namespace_p): Constify argument.
32170         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
32171         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
32172         (main_odr_variant): New function.
32173         (hash_type_name): Make static; update assert; do not ICE on
32174         non-records.
32175         (types_same_for_odr): Bring here from tree.c; simplify and remove
32176         old structural comparing code that doesn't work for templates.
32177         (odr_hasher::equal): Update assert.
32178         (add_type_duplicate): Return true when bases should be computed;
32179         replace incomplete loader by complete; do not output duplicated
32180         warnings; do not ICE on non-records; set odr_violated flag.
32181         (get_odr_type): Be ready to replace incomplete type by complete
32182         one; work on ODR variants instead of main variants; reorder item
32183         in array so bases have still smaller indexes.
32184         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
32185         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
32186
32187 2014-07-01  Cary Coutant  <ccoutant@google.com>
32188
32189         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
32190         lookup.
32191         (resolve_addr_in_expr): When replacing the rtx in a location list
32192         entry, get a new address table entry.
32193         (dwarf2out_finish): Call index_location_lists even if there are no
32194         addr_index_table entries yet.
32195
32196 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
32197
32198         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
32199         change for not being obvious.
32200
32201 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
32202
32203         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
32204         unused argument.
32205
32206 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32207
32208         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
32209         (vcagt_f64): Likewise.
32210         (vcale_f64): Likewise.
32211         (vcaled_f64): Likewise.
32212         (vcales_f32): Likewise.
32213         (vcalt_f64): Likewise.
32214         (vcaltd_f64): Likewise.
32215         (vcalts_f32): Likewise.
32216
32217 2014-07-01  Marek Polacek  <polacek@redhat.com>
32218
32219         * doc/invoke.texi: Document -Wint-conversion.
32220
32221 2014-07-01  Marek Polacek  <polacek@redhat.com>
32222
32223         PR c/58286
32224         * doc/invoke.texi: Document -Wincompatible-pointer-types.
32225
32226 2014-07-01  Martin Liska  <mliska@suse.cz>
32227
32228         IPA REF alias refactoring
32229         * cgraph.h (iterate_direct_aliases): New function.
32230         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
32231         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
32232         FOR_EACH_ALIAS added.
32233         (cgraph_for_node_and_aliases): Likewise.
32234         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
32235         * ipa-inline.c (reset_edge_caches): Likewise.
32236         (update_caller_keys): Likewise.
32237         * trans-mem.c (ipa_tm_execute): Likewise.
32238         *varpool.c (varpool_analyze_node): Likewise.
32239         (varpool_for_node_and_aliases): Likewise.
32240         * ipa-ref.h (first_alias): New function.
32241         (last_alias): Likewise.
32242         (has_aliases_p): Likewise.
32243         * ipa-ref.c (ipa_ref::remove_reference): Removal function
32244         is sensitive to IPA_REF_ALIASes.
32245         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
32246         are put at the beginning of the list.
32247         (symtab_node::iterate_direct_aliases): New function.
32248
32249 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32250
32251         Revert:
32252         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
32253         type is complete.
32254         (write_ts_type_common_tree_pointers): Do not stream fields not set
32255         for incomplete types; do not stream duplicated fields for variants;
32256         sanity check that variant and type match.
32257         (write_ts_type_non_common_tree_pointers): Likewise.
32258         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
32259         TYPE_SIZE whether type is complete.
32260         (lto_input_ts_type_common_tree_pointers): Do same changes as in
32261         write_ts_type_common_tree_pointers
32262         (lto_input_ts_type_non_common_tree_pointers): Likewise.
32263
32264 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
32265
32266         * var-tracking.c (add_stores): Return instead of asserting if old
32267         and new values for conditional store are the same.
32268
32269 2014-06-30  Richard Henderson  <rth@redhat.com>
32270
32271         PR rtl-opt/61608
32272         PR target/39284
32273         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
32274         the cfg if there were any changes.
32275         * passes.def: Revert move of peephole2 after reorder_blocks;
32276         move duplicate_computed_gotos before peephole2.
32277
32278 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
32279
32280         * except.c (emit_note_eh_region_end): New helper function.
32281         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
32282         emit EH_REGION_END note.
32283         * jump.c (cleanup_barriers): Do not split a call and its
32284         corresponding CALL_ARG_LOCATION note.
32285
32286 2014-06-30  Jeff Law  <law@redhat.com>
32287
32288         PR tree-optimization/61607
32289         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
32290         deeper into the SSA_NAME_VALUE chain.
32291
32292 2014-06-30  Marek Polacek  <polacek@redhat.com>
32293
32294         * convert.c (convert_to_integer): Don't instrument conversions if the
32295         function has no_sanitize_undefined attribute.
32296         * ubsan.c: Don't run the ubsan pass if the function has
32297         no_sanitize_undefined attribute.
32298
32299 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
32300
32301         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
32302         -fsanitize=undefined suboptions.
32303
32304 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
32305
32306         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
32307         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
32308         against bigendian and adjust indices.
32309
32310 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
32311
32312         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
32313
32314 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32315
32316         PR target/61633
32317         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
32318         Add alternative; make early clobber.  Adjust both split patterns
32319         to use operand 0 as the working register.
32320
32321 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
32322
32323         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
32324         as ira_object_id_map might be NULL, or 1.
32325
32326 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32327
32328         * loop-invariant.c (get_inv_cost): Handle register class.
32329         (gain_for_invariant): Check the register pressure of the inv
32330         and its overlapped register class, other than all.
32331
32332 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
32333
32334         * doc/invoke.texi (Optimize Options): Fix descriptions of
32335         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
32336
32337 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
32338
32339         * doc/extend.texi (Function Attributes): Update 'naked' attribute
32340         documentation.
32341
32342 2014-06-29  Tobias Grosser <tobias@grosser.es>
32343
32344         PR bootstrap/61650
32345         * graphite-isl-ast-to-gimple.c: Add missing guards.
32346
32347 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
32348
32349         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
32350         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
32351         * flag-types.h: Add new enum fgraphite_generator.
32352         * graphite-isl-ast-to-gimple.c: New.
32353         * graphite-isl-ast-to-gimple.h: New.
32354         * graphite.c (graphite_transform_loops): Add choice of Graphite
32355         code generator, which depends on flag_graphite_code_gen.
32356
32357 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
32358
32359         * graphite-dependences.c (subtract_commutative_associative_deps):
32360         Add NULL checking of the following variables: must_raw_no_source,
32361         may_raw_no_source, must_war_no_source, may_war_no_source,
32362         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
32363         must_war, may_war, must_waw, may_waw.
32364
32365 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
32366
32367         * graphite-clast-to-gimple.c: gloog is renamed to
32368         graphite_regenerate_ast_cloog.  gloog_error is renamed to
32369         graphite_regenerate_error.
32370         * graphite-clast-to-gimple.h: The definition of the struct
32371         bb_pbb_def is moved to graphite-htab.h.
32372         Add inclusion of the hash-table.h.
32373         * graphite-htab.h: The declaration of the function gloog is moved
32374         to graphite-clast-to-gimple.h and renamed to
32375         graphite_regenerate_ast_cloog.
32376         * graphite.c (graphite_transform_loops): gloog is renamed
32377         to graphite_regenerate_ast_cloog.
32378
32379 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32380
32381         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
32382         type is complete.
32383         (write_ts_type_common_tree_pointers): Do not stream fields not set
32384         for incomplete types; do not stream duplicated fields for variants;
32385         sanity check that variant and type match.
32386         (write_ts_type_non_common_tree_pointers): Likewise.
32387         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
32388         TYPE_SIZE whether type is complete.
32389         (lto_input_ts_type_common_tree_pointers): Do same changes as in
32390         write_ts_type_common_tree_pointers
32391         (lto_input_ts_type_non_common_tree_pointers): Likewise.
32392
32393 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32394
32395         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
32396
32397 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32398
32399         * tree-inline.c (remap_type_1): Do not duplicate fields
32400         that are shared in between type and its main variant.
32401
32402 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32403
32404         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
32405         of the type.
32406         (ipa_set_ancestor_jf) Likewise.
32407         (check_stmt_for_type_change): Check that we work on main variant.
32408         (detect_type_change): Look into main variant.
32409         (compute_known_type_jump_func): Check that main variant has BINFO.
32410
32411 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32412
32413         * ipa-devirt.c (set_type_binfo): New function.
32414         (add_type_duplicate): Use it.
32415         (get_odr_type): Sanity check that binfos points to main variants.
32416         (get_class_context): Be sure the context's outer_type is main variant.
32417         (contains_type_p): Walk main variant.
32418         (get_polymorphic_call_info_for_decl): Set outer_type to be
32419         main variant.
32420         (get_polymorphic_call_info): Likewise.
32421         (possible_polymorphic_call_targets): Sanity check that we operate
32422         on main variant.
32423
32424 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32425
32426         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
32427
32428 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32429
32430         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
32431         accidental change due to wide-int branch merge.
32432
32433 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32434
32435         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
32436         compressed debug support.
32437         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
32438         * configure: Regenerate.
32439         * config.in: Regenerate.
32440         * common.opt (compressed_debug_sections): New enum.
32441         (gz, gz=): New options.
32442         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
32443         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
32444         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
32445         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
32446         LINK_COMPRESS_DEBUG_SPEC.
32447         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
32448         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
32449         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
32450         (Debugging Options): Document -gz[=type].
32451
32452 2014-06-27  Martin Jambor  <mjambor@suse.cz>
32453
32454         PR ipa/61160
32455         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
32456         args_to_skip, use those from node instead.  Copy args_to_skip and
32457         combined_args_to_skip from node to the new thunk.
32458         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
32459         (cgraph_create_virtual_clone): Moved computation of
32460         combined_args_to_skip...
32461         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
32462
32463 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
32464
32465         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
32466         redundant diagnostic machinary.
32467
32468 2014-06-27  Richard Biener  <rguenther@suse.de>
32469
32470         * tree-ssa-math-opts.c (bswap_replace): Fix
32471         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
32472
32473 2014-06-27  Martin Liska  <mliska@suse.cz>
32474
32475         * gimple.h (gimple_location_safe): New function introduced.
32476         * cgraphunit.c (walk_polymorphic_call_targets): Usage
32477         of gimple_location_safe replaces gimple_location.
32478         (gimple_fold_call): Likewise.
32479         * ipa-devirt.c (ipa_devirt): Likewise.
32480         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
32481         * ipa.c (walk_polymorphic_call_targets): Likewise.
32482         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32483
32484 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
32485
32486         PR tree-optimization/57233
32487         PR tree-optimization/61299
32488         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
32489         functions.
32490         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
32491         would be lowered to scalar shifts, check if corresponding
32492         shifts and vector BIT_IOR_EXPR are supported and don't lower
32493         or lower just to narrower vector type in that case.
32494         * expmed.c (expand_shift_1): Fix up handling of vector
32495         shifts and rotates.
32496
32497 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
32498
32499         PR target/61586
32500         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
32501
32502 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
32503
32504         * doc/invoke.texi (-fsemantic-interposition): Document.
32505         * common.opt (fsemantic-interposition): New flag.
32506         * varasm.c (decl_replaceable_p): Use it.
32507
32508 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32509
32510         PR target/61542
32511         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
32512         extraction other than index 3.
32513
32514 2014-06-26  Teresa Johnson  <tejohnson@google.com>
32515
32516         * doc/invoke.texi: Fix typo.
32517         * dumpfile.c: Add support for documented -fdump-* options
32518         optimized/missed/note/optall.
32519
32520 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32521
32522         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
32523         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
32524         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
32525         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
32526         * opts.c (default_options_optimization): Set
32527         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
32528         * doc/invoke.texi (allow-load-data-races)
32529         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
32530         (allow-store-data-races): Document the new default.
32531
32532 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32533
32534         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
32535         renamed to ipa_impossible_devirt_target.  Fix typo.
32536         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
32537         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
32538         ipa_impossible_devirt_target.
32539
32540 2014-06-26  Richard Biener  <rguenther@suse.de>
32541
32542         PR tree-optimization/61607
32543         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
32544         explaining why we restrict copies on loop depth.
32545         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32546         on loop depth.
32547         (record_equivalences_from_phis): Instead add it here.
32548
32549 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
32550
32551         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
32552         (LTO_WRAPPER_OBJS): New variable.
32553         (lto-wrapper$(exeext)): Use it.
32554         * collect2.c: Include "collect-utils.h".
32555         (verbose, debug): Remove variables.
32556         (at_file_supplied): No longer static.
32557         (tool_name): New variable.
32558         (do_wait, fork_execute, maybe_unlink): Don't declare.
32559         (tool_cleanup): No longer static.
32560         (notice): Remove function.
32561         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
32562         fork_execute calls.
32563         (collect_wait, do_wait, collect_execute): Remove functions.
32564         (maybe_unlink): No longer static.
32565         * collect2.h (verbose, debug): Don't declare.
32566         (at_file_supplied): Declare.
32567         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
32568         changed.
32569         (collect_execute): Replace with implementation from collect2, plus a
32570         new arg use_atfile.  All callers changed.
32571         (collect_wait): Replace with implementation from collect2.
32572         (maybe_unlink_file): Remove function.
32573         (fork_execute): Replace with implementation from collect2, plus a
32574         new arg use_atfile.  All callers changed.
32575         (do_wait): Add call to utils_cleanup to the error path.
32576         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32577         (tool_cleanup): Adjust declarations.
32578         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32579         * tlink.c: Include "collect-utils.h".
32580         (tlink_execute): New arg use_atfile.  All callers changed.
32581         (tlink_init, tlink_execute): Remove declarations.
32582
32583         * collect-utils.c (save_temps): New variable.
32584         (do_wait): Use it instead of debug.  Use fatal_error.
32585         * collect-utils.h (save_temps): Declare.
32586         * collect2.c (verbose): Rename from vflag.  All uses changed.
32587         (tool_cleanup): New function, copied from collect_atexit.
32588         (collect_atexit, handler): Just call it.
32589         * collect2.h (verbose): Declaration renamed from vflag.
32590         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32591         debug.
32592
32593         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32594         (lto-wrapper$(exeext)): Link with collect-utils.o.
32595         * collect-utils.c: New file.
32596         * collect-utils.h: New file.
32597         * lto-wrapper.c: Include "collect-utils.h".
32598         (args_name): Delete variable.
32599         (tool_name): New variable.
32600         (tool_cleanup): New function.
32601         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
32602         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32603         (fork_execute): Remove functions.
32604
32605 2014-06-26  Nick Clifton  <nickc@redhat.com>
32606
32607         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32608
32609         * doc/extend.texi (Function Attributes): Fix typo in description
32610         of RX vector attribute.
32611
32612 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
32613
32614         * config.gcc (supported_defaults): Error when passing either
32615         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32616
32617 2014-06-26  Richard Biener  <rguenther@suse.de>
32618
32619         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32620         propagating volatile pointers.
32621
32622 2014-06-26  Richard Biener  <rguenther@suse.de>
32623
32624         PR tree-optimization/61607
32625         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32626         loop if we redirected its latch edge.
32627         (thread_block_1): Do not cancel loops prematurely.
32628
32629 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
32630
32631         * toplev.c (backend_init_target): Move init_emit_regs and
32632         init_regs to...
32633         (backend_init) ... here; skip ira_init_once and backend_init_target.
32634         (target_reinit) ... and here; clear
32635         this_target_rtl->lang_dependent_initialized.
32636         (lang_dependent_init_target): Clear
32637         this_target_rtl->lang_dependent_initialized;
32638         break out rtl initialization to ...
32639         (initialize_rtl): ... here; call also backend_init_target
32640         and ira_init_once.
32641         * toplev.h (initialize_rtl): New function.
32642         * function.c: Include toplev.h
32643         (init_function_start): Call initialize_rtl.
32644         * rtl.h (target_rtl): Add target_specific_initialized,
32645         lang_dependent_initialized.
32646
32647 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
32648             Jakub Jelinek  <jakub@redhat.com>
32649
32650         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32651
32652 2014-06-25  Tom de Vries  <tom@codesourcery.com>
32653
32654         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32655
32656 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32657
32658         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32659         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32660         Issue a strict overflow warning if appropriate.
32661
32662 2014-06-25  Martin Liska  <mliska@suse.cz>
32663
32664         IPA REF refactoring
32665         * Makefile.in: Removed header file (ipa-ref-inline.h).
32666         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32667         called.
32668         (cgraph_speculative_call_info): Likewise.
32669         (cgraph_for_node_thunks_and_aliases): Likewise.
32670         (cgraph_for_node_and_aliases): Likewise.
32671         (verify_cgraph_node): Likewise.
32672         * cgraph.h: Batch of IPA REF functions become member functions of
32673         symtab_node: add_reference, maybe_add_reference, clone_references,
32674         clone_referring, clone_reference, find_reference,
32675         remove_stmt_references, remove_all_references,
32676         remove_all_referring, dump_references, dump_referring,
32677         has_alias_p, iterate_reference, iterate_referring.
32678         * cgraphbuild.c (record_reference): New IPA REF function used.
32679         (record_type_list): Likewise.
32680         (record_eh_tables): Likewise.
32681         (mark_address): Likewise.
32682         (mark_load): Likewise.
32683         (mark_store): Likewise.
32684         (pass_build_cgraph_edges): Likewise.
32685         (rebuild_cgraph_edge): Likewise.
32686         (cgraph_rebuild_references): Likewise.
32687         (pass_remove_cgraph_callee_edges): Likewise.
32688         * cgraphclones.c (cgraph_clone_node): Likewise.
32689         (cgraph_create_virtual_clone): Likewise.
32690         (cgraph_materialize_clone): Likewise.
32691         (cgraph_materialize_all_clones): Likewise.
32692         * cgraphunit.c (cgraph_reset_node): Likewise.
32693         (cgraph_reset_node): Likewise.
32694         (analyze_function): Likewise.
32695         (assemble_thunks_and_aliases): Likewise.
32696         (expand_function): Likewise.
32697         * ipa-comdats.c (propagate_comdat_group): Likewise.
32698         (enqueue_references): Likewise.
32699         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32700         (create_specialized_node): Likewise.
32701         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32702         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32703         * ipa-inline.c (reset_edge_caches): Likewise.
32704         (update_caller_keys): Likewise.
32705         (execute): Likewise.
32706         * ipa-prop.c (remove_described_reference): Likewise.
32707         (propagate_controlled_uses): Likewise.
32708         (ipa_edge_duplication_hook): Likewise.
32709         (ipa_modify_call_arguments): Likewise.
32710         * ipa-pure-const.c (propagate_pure_const): Likewise.
32711         * ipa-ref-inline.h: Header file removed, functions moved
32712         to symtab_node class.
32713         * ipa-ref.c (remove_reference): New class member function.
32714         (cannot_lead_to_return): New class member function.
32715         (referring_ref_list): Likewise.
32716         (referred_ref_list): Likewise.
32717         Rest of functions moved to symtab_node class.
32718         * ipa-ref.h: New member functions remove_reference,
32719         cannot_lead_to_return, referring_ref_list, referred_ref_list added
32720         to ipa_ref class.
32721         ipa_ref_list class has new member functions: first_reference,
32722         first_referring, clear, nreferences.
32723         * ipa-reference.c (analyze_function): New IPA REF function used.
32724         (write_node_summary_p): Likewise.
32725         (ipa_reference_write_optimization_summary): Likewise.
32726         * ipa-split.c (split_function): Likewise.
32727         * ipa-utils.c (ipa_reverse_postorder): Likewise.
32728         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32729         (function_and_variable_visibility): Likewise.
32730         * ipa.c (has_addr_references_p): Likewise.
32731         (process_references): Argument type changed.
32732         (symtab_remove_unreachable_nodes): New IPA REF function used.
32733         (process_references): Likewise.
32734         (set_writeonly_bit): Likewise.
32735         * lto-cgraph.c: Implementation of new symtab_node member functions
32736         that uses new IPA REF functions.
32737         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32738         function used.
32739         * lto-streamer-out.c (output_symbol_p): Likewise.
32740         * lto-streamer.h (referenced_from_this_partition_p): Argument type
32741         changed.
32742         * symtab.c: Implementation of new IPA REF API.
32743         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32744         (ipa_tm_create_version): Likewise.
32745         (ipa_tm_execute): Likewise.
32746         * tree-emutls.c (gen_emutls_addr): Likewise.
32747         * tree-inline.c (copy_bb): Likewise.
32748         (delete_unreachable_blocks_update_callgraph): Likewise.
32749         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32750         (varpool_for_node_and_aliases): Likewise.
32751
32752 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32753
32754         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32755
32756 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32757
32758         PR bootstrap/61598
32759         * fold-const.c (fold_checksum_tree): Use a hash_table of const
32760         tree_node * instead of tree_node *.
32761         (fold): Adjust.
32762         (print_fold_checksum): Likewise.
32763         (fold_check_failed): Likewise.
32764         (debug_fold_checksum): Likewise.
32765         (fold_build1_stat_loc): Likewise.
32766         (fold_build2_stat_loc): Likewise.
32767         (fold_build3_stat_loc): Likewise.
32768         (fold_build_call_array_loc): Likewise.
32769
32770 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
32771
32772         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32773         implementation with call to...
32774         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32775         function.
32776         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32777         Declare.
32778
32779 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
32780
32781         PR tree-optimization/57742
32782         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32783         after replacing the statement.
32784
32785 2014-06-25  Nick Clifton  <nickc@redhat.com>
32786
32787         * config/v850/v850.c (GHS_default_section_names): Change to const
32788         char * type.
32789         (GHS_current_section_names): Likewise.
32790         (v850_insert_attributes): Do not build strings, just assign the
32791         names directly.  Change the type of 'chosen_section' to const
32792         char*.
32793         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32794         directly to the array entry.
32795         * config/v850/v850.h (GHS_default_section_names): Change to const
32796         char * type.
32797         (GHS_current_section_names): Likewise.
32798
32799 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
32800
32801         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32802         (LANG_HOOKS_DECLS): Add it.
32803         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32804         has correct type.
32805         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32806         * langhooks.h (struct lang_hooks_for_decls): Add
32807         omp_clause_linear_ctor hook.
32808         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32809         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
32810         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
32811         combined simd loop use omp_clause_linear_ctor hook.
32812
32813 2014-06-24  Cong Hou  <congh@google.com>
32814
32815         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32816         pattern recognition.
32817         (type_conversion_p): PROMOTION is true if it's a type promotion
32818         conversion, and false otherwise.  Return true if the given expression
32819         is a type conversion one.
32820         * tree-vectorizer.h: Adjust the number of patterns.
32821         * tree.def: Add SAD_EXPR.
32822         * optabs.def: Add sad_optab.
32823         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32824         * expr.c (expand_expr_real_2): Likewise.
32825         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32826         * gimple.c (get_gimple_rhs_num_ops): Likewise.
32827         * optabs.c (optab_for_tree_code): Likewise.
32828         * tree-cfg.c (estimate_operator_cost): Likewise.
32829         * tree-ssa-operands.c (get_expr_operands): Likewise.
32830         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32831         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32832         * doc/generic.texi: Add document for SAD_EXPR.
32833         * doc/md.texi: Add document for ssad and usad.
32834
32835 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32836
32837         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32838         qualification in cast.
32839
32840 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
32841
32842         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32843         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32844         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32845         (tree_function_decl): ... here.
32846         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32847         streaming of vindex to ...
32848         (write_ts_function_decl_tree_pointers): ... here.
32849         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32850         Do not stream DECL_VINDEX.
32851         (lto_input_ts_function_decl_tree_pointers): Stream it here.
32852
32853 2014-06-24  Catherine Moore  <clm@codesourcery.com>
32854             Sandra Loosemore  <sandra@codesourcery.com>
32855
32856         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32857         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32858         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32859
32860 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32861
32862         * doc/invoke.texi (Warning Options): Remove duplicated
32863         -Wmaybe-uninitialized.
32864
32865 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32866
32867         PR tree-optimization/57742
32868         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32869         (handle_builtin_malloc, handle_builtin_memset): New functions.
32870         (strlen_optimize_stmt): Call them.
32871         * passes.def: Move strlen after loop+dom but before vrp.
32872
32873 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32874
32875         PR target/61570
32876         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32877         model family 6 CPU with has_longmode never use a CPU without
32878         64-bit support.
32879
32880 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
32881
32882         PR target/61570
32883         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32884         the last change.
32885
32886 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32887
32888         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32889         * dominance.c (iterate_fix_dominators): Use hash_map instead of
32890         pointer_map.
32891         * hash-map.h: New file.
32892         * ipa-comdats.c: Use hash_map instead of pointer_map.
32893         * ipa.c: Likewise.
32894         * lto-section-out.c: Adjust.
32895         * lto-streamer.h: Replace pointer_map with hash_map.
32896         * symtab.c (verify_symtab): Likewise.
32897         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32898         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32899         * tree-streamer.h: Likewise.
32900         * tree-streamer.c: Adjust.
32901         * pointer-set.h: Remove pointer_map.
32902
32903 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32904
32905         * hash-table.h: Add a template arg to choose between storing values
32906         and storing pointers to values, and then provide partial
32907         specializations for both.
32908         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32909         should store, not the type values should point to.
32910         * tree-into-ssa.c (var_info_hasher): Likewise.
32911         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32912         * tree-complex.c: Adjust.
32913         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32914         table instead of int_tree_map *.
32915         * tree-parloops.c: Adjust.
32916         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32917         type is being stored.
32918         * tree-vectorizer.c: Adjust.
32919
32920 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32921
32922         * hash-table.h: Remove a layer of indirection from hash_table so that
32923         it contains the hash table's data instead of a pointer to the data.
32924         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32925         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32926         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32927         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32928         fold-const.c, gcse.c, ggc-common.c,
32929         gimple-ssa-strength-reduction.c, gimplify.c,
32930         graphite-clast-to-gimple.c, graphite-dependences.c,
32931         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32932         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32933         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32934         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32935         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32936         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32937         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32938         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32939         tree-ssa-live.c, tree-ssa-loop-im.c,
32940         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32941         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32942         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32943         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32944         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32945         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32946         vtable-verify.c, vtable-verify.h: Adjust.
32947
32948 2014-06-24  Richard Biener  <rguenther@suse.de>
32949
32950         PR tree-optimization/61572
32951         * tree-ssa-sink.c (statement_sink_location): Do not sink
32952         loads from hard registers.
32953
32954 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32955
32956         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32957         not mentioned in clauses use private clause if the iterator is
32958         declared in #pragma omp for simd, and when adding lastprivate
32959         instead, add it to the outer #pragma omp for too.  Diagnose
32960         if the variable is private in outer context.  For simd collapse > 1
32961         loops, replace all iterators with temporaries.
32962         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32963         same even in collapse > 1 loops.
32964
32965         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32966         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32967         non-NULL.
32968         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32969         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32970         non-NULL.
32971         (gimplify_adjust_omp_clauses): Likewise.
32972         * omp-low.c (lower_rec_simd_input_clauses,
32973         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32974         safelen the same as safelen(1).
32975         * tree-nested.c (convert_nonlocal_omp_clauses,
32976         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
32977         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32978         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32979         Fixup handling of GIMPLE_OMP_TARGET.
32980         (convert_tramp_reference_stmt, convert_gimple_call): Handle
32981         GIMPLE_OMP_TARGET.
32982
32983 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
32984
32985         PR tree-optimization/61554
32986         * tree-ssa-propagate.c: Include "bitmap.h".
32987         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32988         properly update constructor/destructor.
32989         (substitute_and_fold_dom_walker::before_dom_children):
32990         Remove call to gimple_purge_dead_eh_edges, add bb->index to
32991         need_eh_cleaup instead.
32992         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32993         need_eh_cleanup.
32994
32995 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32996
32997         * varpool.c (dump_varpool_node): Dump used_by_single_function.
32998         * tree-pass.h (make_pass_ipa_single_use): New pass.
32999         * cgraph.h (used_by_single_function): New flag.
33000         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
33001         Stream it.
33002         * passes.def (pass_ipa_single_use): Scedule.
33003         * ipa.c (BOTTOM): New macro.
33004         (meet): New function
33005         (propagate_single_user): New function.
33006         (ipa_single_use): New function.
33007         (pass_data_ipa_single_use): New pass.
33008         (pass_ipa_single_use): New pass.
33009         (pass_ipa_single_use::gate): New gate.
33010         (make_pass_ipa_single_use): New function.
33011
33012 2014-06-23  Kai Tietz  <ktietz@redhat.com>
33013
33014         PR target/39284
33015         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
33016         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
33017
33018 2014-06-23  Richard Biener  <rguenther@suse.de>
33019
33020         * tree-ssa-loop.c (gate_loop): New function.
33021         (pass_tree_loop::gate): Call it.
33022         (pass_data_tree_no_loop, pass_tree_no_loop,
33023         make_pass_tree_no_loop): New.
33024         * tree-vectorizer.c: Include tree-scalar-evolution.c
33025         (pass_slp_vectorize::execute): Initialize loops and SCEV if
33026         required.
33027         (pass_slp_vectorize::clone): New method.
33028         * timevar.def (TV_TREE_NOLOOP): New.
33029         * tree-pass.h (make_pass_tree_no_loop): Declare.
33030         * passes.def (pass_tree_no_loop): New pass group with
33031         SLP vectorizer.
33032
33033 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
33034
33035         PR target/61570
33036         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
33037         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
33038
33039 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
33040
33041         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
33042         "yes" where needed.
33043
33044 2014-06-23  Alan Modra  <amodra@gmail.com>
33045
33046         PR bootstrap/61583
33047         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
33048         to zero on debug statements.
33049
33050 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
33051
33052         PR target/60825
33053         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
33054         Ignore third operand if present by marking qualifier_internal.
33055
33056         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
33057
33058         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
33059         vector extension.
33060         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
33061         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
33062         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
33063         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
33064         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
33065         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
33066         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
33067         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
33068         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
33069         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
33070         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
33071         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
33072         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
33073         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
33074         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
33075         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
33076         logic in GCC vector extensions
33077
33078         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
33079         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
33080         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
33081         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
33082         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
33083         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
33084         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
33085         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
33086         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
33087         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
33088
33089         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
33090
33091         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
33092         extensions.
33093
33094         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
33095         (vget_low_s64): Use __GET_LOW macro.
33096         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
33097         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
33098         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
33099         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
33100         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
33101
33102         (vcombine_s64): Use GCC vector extensions; remove cast.
33103         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
33104         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
33105         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
33106         Fix type signature; remove cast.
33107
33108 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
33109
33110         PR target/60825
33111         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
33112         V1DFmode.
33113         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
33114         add V1DFmode
33115         (BUILTIN_VD1): New.
33116         (BUILTIN_VD_RE): Remove.
33117         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
33118         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
33119         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
33120         variant but not df.
33121         (vreinterpretv1df*, vreinterpret*v1df): New.
33122         (vreinterpretdf*, vreinterpret*df): Remove.
33123         * config/aarch64/aarch64-simd.md (aarch64_create,
33124         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
33125         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
33126         (VD1): New.
33127         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
33128         (vcreate_f64): Remove cast, use v1df builtin.
33129         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
33130         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
33131         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
33132         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
33133         vmov_n_f64, vst1_f64): Use gcc vector extensions.
33134         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
33135         add range check using __builtin_aarch64_im_lane_boundsi.
33136         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
33137         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
33138         type signature, use gcc vector extensions.
33139         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
33140         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
33141         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
33142         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
33143         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
33144         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
33145         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
33146         vreinterpret_u64_f64): Use v1df builtin not df.
33147
33148 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
33149
33150         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
33151         vector registers.
33152
33153 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
33154
33155         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
33156         priority directly.
33157
33158 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33159
33160         * loop-invariant.c (pre_check_invariant_p): New function.
33161         (find_invariant_insn): Call pre_check_invariant_p.
33162
33163 2014-06-22  Richard Henderson  <rth@redhat.com>
33164
33165         PR target/61565
33166         * compare-elim.c (struct comparison): Add eh_note.
33167         (find_comparison_dom_walker::before_dom_children): Don't eliminate
33168         a redundant comparison in a different EH region.  Purge EH edges if
33169         necessary.
33170
33171 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33172
33173         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
33174         (var_shift): Use it.
33175         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
33176         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
33177         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
33178         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
33179         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
33180         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
33181         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
33182         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
33183         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
33184         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
33185         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
33186         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
33187         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
33188         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
33189         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
33190         *rotldi3_internal15be): Use the new attribute.  Merge register and
33191         integer alternatives.
33192
33193 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33194
33195         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
33196         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
33197         split, *ashrdi3_internal3 and split): Delete, merge into...
33198         (ashr<mode>3): New expander.
33199         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
33200         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
33201
33202 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33203
33204         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
33205         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
33206         *rotldi3_internal3 and split): Delete, merge into...
33207         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
33208         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
33209         Use "rotlw" extended mnemonic.
33210
33211 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33212
33213         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
33214         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
33215         and split, *ashldi3_internal3 and split): Delete, merge into...
33216         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
33217         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
33218
33219 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33220
33221         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
33222         (lshrsi3, two anonymous define_insns and define_splits,
33223         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
33224         *lshrdi3_internal3 and split): Delete, merge into...
33225         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
33226         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
33227
33228 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33229
33230         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
33231         Remove "O" alternative.
33232
33233 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
33234
33235         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
33236         (mips_move_from_gpr_cost): Likewise.
33237         (mips_register_move_cost): Update accordingly.
33238         (mips_secondary_reload_class): Remove name of in_p.
33239
33240 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
33241
33242         PR target/61503
33243         * config/i386/i386.md (x86_64_shrd, x86_shrd,
33244         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
33245
33246 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
33247
33248         * config/nios2/nios2.c: Include "builtins.h".
33249
33250 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33251
33252         * cgraph.h (tls_model_names): New variable.
33253         * print-tree.c (print_node): Simplify.
33254         * varpool.c (tls_model_names): New variable.
33255         (dump_varpool_node): Output tls model.
33256
33257 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33258
33259         * ipa-visibility.c (function_and_variable_visibility): Disable
33260         temporarily local aliases for some targets.
33261
33262 2014-06-20  Marek Polacek  <polacek@redhat.com>
33263
33264         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
33265         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
33266         into SANITIZE_UNDEFINED.
33267         * doc/invoke.texi: Describe -fsanitize=bounds.
33268         * gimplify.c (gimplify_call_expr): Add gimplification of internal
33269         functions created in the FEs.
33270         * internal-fn.c: Move "internal-fn.h" after "tree.h".
33271         (expand_UBSAN_BOUNDS): New function.
33272         * internal-fn.def (UBSAN_BOUNDS): New internal function.
33273         * internal-fn.h: Don't define internal functions here.
33274         * opts.c (common_handle_option): Add -fsanitize=bounds.
33275         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
33276         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
33277         * tree-core.h: Define internal functions here.
33278         (struct tree_base): Add ifn field.
33279         * tree-pretty-print.c: Include "internal-fn.h".
33280         (dump_generic_node): Handle functions without CALL_EXPR_FN.
33281         * tree.c (get_callee_fndecl): Likewise.
33282         (build_call_expr_internal_loc): New function.
33283         * tree.def (CALL_EXPR): Update description.
33284         * tree.h (CALL_EXPR_IFN): Define.
33285         (build_call_expr_internal_loc): Declare.
33286         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
33287         types.
33288         (ubsan_type_descriptor): Change bool parameter to enum
33289         ubsan_print_style.  Adjust the code.  Add handling of
33290         UBSAN_PRINT_ARRAY.
33291         (ubsan_expand_bounds_ifn): New function.
33292         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
33293         (ubsan_build_overflow_builtin): Likewise.
33294         (instrument_bool_enum_load): Likewise.
33295         (ubsan_instrument_float_cast): Likewise.
33296         * ubsan.h (enum ubsan_print_style): New enum.
33297         (ubsan_expand_bounds_ifn): Declare.
33298         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
33299
33300 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
33301
33302         * config/rs6000/rs6000.md: Append `DONE' to preparation
33303         statements of `bswap' pattern splitters.
33304
33305 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33306
33307         * target.def (call_fusage_contains_non_callee_clobbers): Update
33308         definition.
33309         * doc/tm.texi: Regenerate.
33310
33311 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
33312             Max Ostapenko  <m.ostapenko@partner.samsung.com>
33313
33314         PR sanitizer/61547
33315         * asan.c (instrument_strlen_call): Fixed instrumentation of
33316         trailing byte.
33317
33318 2014-06-20  Martin Jambor  <mjambor@suse.cz>
33319
33320         PR ipa/61540
33321         * ipa-prop.c (impossible_devirt_target): New function.
33322         (try_make_edge_direct_virtual_call): Use it, also instead of
33323         asserting.
33324
33325 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
33326             Max Ostapenko  <m.ostapenko@partner.samsung.com>
33327
33328         PR sanitizer/61530
33329         * asan.c (build_check_stmt): Add condition.
33330
33331 2014-06-20  Martin Jambor  <mjambor@suse.cz>
33332
33333         PR ipa/61211
33334         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
33335         expanded clones.
33336
33337 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33338
33339         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
33340         Update comments.
33341         (VCONQ): Make comment more helpful.
33342         (VCON): Delete.
33343         * config/aarch64/aarch64-simd.md
33344         (aarch64_sqdmulh_lane<mode>):
33345         Use VCOND for operands 2.  Update lane checking and flipping logic.
33346         (aarch64_sqrdmulh_lane<mode>): Likewise.
33347         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
33348         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
33349         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
33350         attribute of operand 3 to VCOND.
33351         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
33352         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
33353         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
33354         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
33355         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
33356         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
33357         define_insn.
33358         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
33359         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
33360         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
33361         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
33362         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
33363         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
33364         operand to VCOND.  Update lane flipping and bounds checking logic.
33365         (aarch64_sqdmlal2_lane<mode>): Likewise.
33366         (aarch64_sqdmlsl_lane<mode>): Likewise.
33367         (aarch64_sqdmull_lane<mode>): Likewise.
33368         (aarch64_sqdmull2_lane<mode>): Likewise.
33369         (aarch64_sqdmlal_laneq<mode>):
33370         Replace VCON usage with VCONQ.
33371         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
33372         (aarch64_sqdmlal2_laneq<mode>): Emit
33373         aarch64_sqdmlal2_laneq<mode>_internal insn.
33374         Replace VCON with VCONQ.
33375         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
33376         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
33377         (aarch64_sqdmull_laneq<mode>): Emit
33378         aarch64_sqdmull_laneq<mode>_internal insn.
33379         Replace VCON with VCONQ.
33380         (aarch64_sqdmull2_laneq<mode>): Emit
33381         aarch64_sqdmull2_laneq<mode>_internal insn.
33382         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
33383         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
33384         of 3rd argument to int16x4_t.
33385         (vqdmlalh_lane_s16): Likewise.
33386         (vqdmlslh_lane_s16): Likewise.
33387         (vqdmull_high_lane_s16): Likewise.
33388         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
33389         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
33390         (vqdmlsl_lane_s16): Likewise.
33391         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
33392         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
33393         (vqdmlals_lane_s32): Likewise.
33394         (vqdmlsls_lane_s32): Likewise.
33395         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
33396         (vqdmulls_lane_s32): Likewise.
33397         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
33398         (vqdmlsl_lane_s32): Likewise.
33399         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
33400         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
33401         (vqrdmulhh_lane_s16): Likewise.
33402         (vqdmlsl_high_lane_s16): Likewise.
33403         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
33404         (vqdmlsl_high_lane_s32): Likewise.
33405         (vqrdmulhs_lane_s32): Likewise.
33406
33407 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33408
33409         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
33410         get_call_reg_set_usage.
33411
33412 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33413
33414         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
33415         it contains all call_used_regs.
33416
33417 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33418
33419         * final.c (collect_fn_hard_reg_usage): Add and use variable
33420         function_used_regs.
33421
33422 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33423
33424         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
33425         (set_init_priority, get_init_priority, set_fini_priority,
33426         get_fini_priority): New methods.
33427         * tree.c (init_priority_for_decl): Remove.
33428         (init_ttree): Do not initialize init priority.
33429         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
33430         (decl_priority_info): Remove.
33431         (decl_init_priority_insert): Rewrite.
33432         (decl_fini_priority_insert): Rewrite.
33433         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
33434         tree_priority_map_marked_p): Remove.
33435         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
33436         * lto-streamer-out.c (hash_tree): Do not hash priorities.
33437         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
33438         not output priorities.
33439         (pack_ts_function_decl_value_fields): Likewise.
33440         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33441         not input priorities.
33442         (unpack_ts_function_decl_value_fields): Likewise.
33443         * symtab.c (symbol_priority_map): Declare.
33444         (init_priority_hash): Declare.
33445         (symtab_unregister_node): Unregister from priority hash, too.
33446         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
33447         New methods.
33448         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
33449         (symbol_priority_info): New function.
33450         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
33451         New methods.
33452         * tree-core.h (tree_priority_map): Remove.
33453
33454 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
33455
33456         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
33457         0xff to uint64_t before shifting it up.
33458
33459 2014-06-20  Julian Brown  <julian@codesourcery.com>
33460             Chung-Lin Tang  <cltang@codesourcery.com>
33461
33462         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
33463         TARGET_THUMB1_ONLY. Add comments.
33464
33465 2014-06-19  Tom de Vries  <tom@codesourcery.com>
33466
33467         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
33468         return type to void.
33469         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
33470
33471 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33472
33473         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
33474         as "move", from depends_on.
33475
33476 2014-06-19  Terry Guo  <terry.guo@arm.com>
33477
33478         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
33479         stage.
33480
33481 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
33482
33483         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
33484         Remove cr5.
33485         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
33486
33487 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
33488
33489         PR target/61550
33490         * config/sh/sh.c (prepare_move_operands): Don't process TLS
33491         addresses here if reload in progress or completed.
33492
33493 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33494
33495         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
33496         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
33497         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
33498         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
33499         (mips_register_priority): New function that implements the target
33500         hook TARGET_REGISTER_PRIORITY.
33501         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
33502         (mips_lra_p): Likewise for TARGET_LRA_P.
33503         (TARGET_REGISTER_PRIORITY): Define macro.
33504         (TARGET_SPILL_CLASS): Likewise.
33505         (TARGET_LRA_P): Likewise.
33506         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
33507         classes.
33508         (REG_CLASS_NAMES): Likewise.
33509         (REG_CLASS_CONTENTS): Likewise.
33510         (BASE_REG_CLASS): Use M16_SP_REGS.
33511         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
33512         New set attribute to enable alternatives depending on the register
33513         allocator used.
33514         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
33515         (*lea64): Disable pattern for MIPS16.
33516         * config/mips/mips.opt (mlra): New option.
33517
33518 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33519
33520         * lra-constraints.c (base_to_reg): New function.
33521         (process_address): Use new function.
33522
33523 2014-06-18  Tom de Vries  <tom@codesourcery.com>
33524
33525         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
33526         * config/aarch64/aarch64.c
33527         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
33528         (aarch64_emit_call_insn): New function.
33529         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
33530         of emit_call_insn.
33531         * config/aarch64/aarch64.md (define_expand "call_internal")
33532         (define_expand "call_value_internal", define_expand "sibcall_internal")
33533         (define_expand "sibcall_value_internal"): New.
33534         (define_expand "call", define_expand "call_value")
33535         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
33536         expand variant and aarch64_emit_call_insn.
33537
33538 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
33539             Tom de Vries  <tom@codesourcery.com>
33540
33541         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
33542         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
33543         Redefine to true.
33544         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
33545         clobbers to CALL_INSN_FUNCTION_USAGE.
33546         (define_expand "sibcall_internal")
33547         (define_expand "sibcall_value_internal"): New.
33548         (define_expand "call", define_expand "call_value"): Add argument to
33549         arm_emit_call_insn.
33550         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
33551         (define_expand "sibcall_value"): Use sibcall_value_internal and
33552         arm_emit_call_insn.
33553
33554 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33555
33556         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
33557
33558 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33559
33560         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
33561         __udivmoddi4.
33562
33563 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33564
33565         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
33566         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
33567         annotations. Fix DWARF information.
33568
33569 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33570
33571         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33572         __udivmoddi4, and fixups for negative operands.
33573
33574 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33575
33576         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33577
33578 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33579
33580         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33581         to __udivmoddi4.
33582
33583 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33584
33585         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33586         manipulation.
33587
33588 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33589
33590         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33591         describing register usage on function entry and exit.
33592
33593 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33594
33595         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33596         (__aeabi_ldivmod): Fix whitespace.
33597
33598 2014-06-18  Andreas Schwab  <schwab@suse.de>
33599
33600         * doc/md.texi (Standard Names): Use @itemx for grouped items.
33601         Remove blank line after @item.
33602
33603 2014-06-18  Richard Henderson  <rth@redhat.com>
33604
33605         PR target/61545
33606         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33607
33608 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33609
33610         * config/arm/arm.c (neon_vector_mem_operand): Allow register
33611         POST_MODIFY for neon loads and stores.
33612         (arm_print_operand): Output post-index register for neon loads and
33613         stores.
33614
33615 2014-06-18  Richard Biener  <rguenther@suse.de>
33616
33617         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33618
33619 2014-06-18  Richard Biener  <rguenther@suse.de>
33620
33621         * tree-pass.h (make_pass_dce_loop): Remove.
33622         * passes.def: Replace pass_dce_loop with pass_dce.
33623         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33624         changed free niter estimates and reset the scev cache.
33625         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33626         make_pass_dce_loop): Remove.
33627         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33628         (fini_copy_prop): Return whether something changed.  Always
33629         let substitute_and_fold perform DCE and free niter estimates
33630         and reset the scev cache if so.
33631         (execute_copy_prop): If sth changed schedule cleanup-cfg.
33632         (pass_data_copy_prop): Do not unconditionally schedule
33633         cleanup-cfg or update-ssa.
33634
33635 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
33636
33637         PR tree-optimization/61518
33638         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33639         reduction var is used in reduction stmt or phi-function only.
33640
33641 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33642
33643         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33644
33645 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33646
33647         PR tree-optimization/61517
33648         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33649         whose rhs's first tree is the source expression instead of the
33650         expression itself.
33651         (find_bswap_or_nop): Likewise.
33652         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33653         gimple stmt whose rhs's first tree is the source. In the memory source
33654         case, move the stmt to be replaced close to one of the original load to
33655         avoid the problem of a store between the load and the stmt's original
33656         location.
33657         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33658         signature.
33659
33660 2014-06-18  Andreas Schwab  <schwab@suse.de>
33661
33662         PR rtl-optimization/54555
33663         * postreload.c (move2add_use_add2_insn): Substitute
33664         STRICT_LOW_PART only if it is cheaper.
33665
33666 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
33667
33668         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33669         Do not use unspec as call operand.  Use memory_operand instead of
33670         memory_nox32_operand and add "m" operand constraint.  Disable
33671         pattern for TARGET_X32.
33672         (*sibcall_pop_memory): Ditto.
33673         (*sibcall_value_memory): Ditto.
33674         (*sibcall_value_pop_memory): Ditto.
33675         (sibcall peepholes): Merge SImode and DImode patterns using
33676         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
33677         Disable pattern for TARGET_X32.  Check if eliminated register is
33678         really dead after call insn.  Generate call RTX without unspec operand.
33679         (sibcall_value peepholes): Ditto.
33680         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
33681         instead of memory_nox32_operand.  Check if eliminated register is
33682         really dead after call insn. Generate call RTX without unspec operand.
33683         (sibcall_value_pop peepholes): Ditto.
33684         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33685
33686 2014-06-18  Terry Guo  <terry.guo@arm.com>
33687
33688         PR target/61544
33689         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33690         reach the head.
33691
33692 2014-06-18  Olivier Hainque  <hainque@adacore.com>
33693
33694         * tree-core.h (tree_block): Add an "end_locus" field, allowing
33695         memorization of the end of block source location.
33696         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33697         * gimplify.c (gimplify_bind_expr): Propagate the block start and
33698         end source location info we have on the block entry/exit code we
33699         generate.
33700
33701 2014-06-18  Richard Biener  <rguenther@suse.de>
33702
33703         * common.opt (fssa-phiopt): New option.
33704         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33705         but not with -Og.
33706         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33707         * doc/invoke.texi (-fssa-phiopt): Document.
33708
33709 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33710
33711         * genattrtab.c (n_bypassed): New variable.
33712         (process_bypasses): Initialise n_bypassed.
33713         Count number of bypassed reservations.
33714         (make_automaton_attrs): Allocate space for bypassed reservations
33715         rather than number of bypasses.
33716
33717 2014-06-18  Richard Biener  <rguenther@suse.de>
33718
33719         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33720         we propagated anything.
33721         (substitute_and_fold_dom_walker::before_dom_children): Something
33722         changed if we propagated into PHI arguments.
33723         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33724         we removed a stmt.
33725
33726 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
33727
33728         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33729         vector case.
33730         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33731         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33732         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33733         Introduces alternative way of loads group permutaions.
33734         (vect_transform_grouped_load): Try alternative way of permutations.
33735
33736 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33737
33738         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33739         changed in ORT_TARGET region, don't jump to do_outer.
33740         (struct gimplify_adjust_omp_clauses_data): New type.
33741         (gimplify_adjust_omp_clauses_1): Adjust for data being
33742         a struct gimplify_adjust_omp_clauses_data pointer instead
33743         of tree *.  Pass pre_p as a new argument to
33744         lang_hooks.decls.omp_finish_clause hook.
33745         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33746         splay_tree_foreach to pass both list_p and pre_p.
33747         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33748         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33749         gimplify_adjust_omp_clauses callers.
33750         * langhooks.c (lhd_omp_finish_clause): New function.
33751         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33752         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33753         * langhooks.h (struct lang_hooks_for_decls): Add a new
33754         gimple_seq * argument to omp_finish_clause hook.
33755         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33756         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33757         (scan_omp_parallel, lower_omp_for): When adding
33758         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33759         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33760         * tree-nested.c (convert_nonlocal_omp_clauses,
33761         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33762         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33763
33764 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
33765
33766         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33767         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33768
33769 2014-06-17  Xinliang David Li  <davidxl@google.com>
33770
33771         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33772         * passes.c (pass_init_dump_file): Do not set initialize
33773         flag to false unconditionally.
33774
33775 2014-06-17  Richard Biener  <rguenther@suse.de>
33776
33777         * genopinit.c (main): Use vec<>::qsort method.
33778         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33779         Likewise.
33780         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33781
33782 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
33783
33784         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33785         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33786         (mips_move_to_gpr_cost): Remove ST_REGS case.
33787         (mips_move_from_gpr_cost): Likewise.
33788         (mips_register_move_cost): Likewise.
33789         (mips_secondary_reload_class): Likewise.
33790
33791 2014-06-17  Richard Biener  <rguenther@suse.de>
33792
33793         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33794         (pass_all_optimizations): Move 3rd copy-prop pass from after
33795         fre to before ifcombine/phiopt.
33796
33797 2014-06-17  Richard Biener  <rguenther@suse.de>
33798
33799         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33800         and allow all blocks to be forwarders.
33801
33802 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
33803
33804         PR target/61483
33805         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33806         variable 'size'; calculate 'size' right in the front; use
33807         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33808         pcum->aapcs_stack_words.
33809
33810 2014-06-17  Nick Clifton  <nickc@redhat.com>
33811
33812         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33813         (umulhi3, mulsidi3, umulsidi3): Likewise.
33814
33815 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
33816
33817         PR middle-end/61508
33818         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33819         check for section name.
33820
33821 2014-06-17  Richard Biener  <rguenther@suse.de>
33822
33823         * tree-ssa-propagate.c: Include domwalk.h.
33824         (substitute_and_fold): Outline main worker into a domwalker ...
33825         (substitute_and_fold_dom_walker::before_dom_children): ... here.
33826         Schedule stmts we can fully propagate for removal.  Remove
33827         poor-mans DCE.
33828         (substitute_and_fold): Apply a dominator walk to perform
33829         substitution.  Process stmts scheduled for removal here.
33830
33831 2014-06-17  Richard Biener  <rguenther@suse.de>
33832
33833         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33834         of PHI node moving.
33835
33836 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
33837
33838         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33839         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33840         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33841         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33842         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33843         TARGET_HARD_FLOAT.
33844         (get_fpscr) : Likewise.
33845
33846 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33847
33848         PR rtl-optimization/61325
33849         * lra-constraints.c (valid_address_p): Add forward declaration.
33850         (simplify_operand_subreg): Check address validity before and after
33851         alter_reg of memory subreg.
33852
33853 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
33854
33855         * config/i386/i386.c (decide_alg): Correctly handle
33856         maximum size of stringop algorithm.
33857
33858 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33859
33860         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33861
33862 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33863
33864         PR rtl-optimization/61522
33865         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33866
33867 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
33868
33869         Revert:
33870         * symtab.c (symtab_node::reset_section): New method.
33871         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33872         for localization.
33873         * cgraph.h (reset_section): Declare.
33874         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33875         do not consider comdat locals.
33876         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33877         for new symbol.
33878         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33879         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33880         reset sections of symbols dragged out of the comdats.
33881         (function_and_variable_visibility): Reset sections of
33882         localized symbols.
33883
33884 2014-06-16  Richard Biener  <rguenther@suse.de>
33885
33886         PR tree-optimization/61482
33887         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33888         [-INF(OVF), +INF(OVF)] range.
33889
33890 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33891
33892         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33893         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33894         handling 32-bit multiplication.
33895
33896 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
33897
33898         PR middle-end/61430
33899         * lra-lives.c (process_bb_lives): Skip creating copy during
33900         insn scan when src/dest has constrained to same regno.
33901
33902 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33903
33904         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33905         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33906
33907 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33908
33909         * asan.c (check_func): New function.
33910         (maybe_create_ssa_name): Likewise.
33911         (build_check_stmt_with_calls): Likewise.
33912         (use_calls_p): Likewise.
33913         (report_error_func): Change interface.
33914         (build_check_stmt): Allow non-integer lengths; add support
33915         for new parameter.
33916         (asan_instrument): Likewise.
33917         (instrument_mem_region_access): Moved code to build_check_stmt.
33918         (instrument_derefs): Likewise.
33919         (instrument_strlen_call): Likewise.
33920         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33921         * doc/invoke.texi: Describe new parameter.
33922         * params.def: Define new parameter.
33923         * params.h: Likewise.
33924         * sanitizer.def: Describe new builtins.
33925
33926 2014-06-16  Richard Biener  <rguenther@suse.de>
33927
33928         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33929         Make all defs available at the end.
33930         (eliminate): If we remove a PHI node schedule cfg-cleanup.
33931
33932 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33933
33934         PR plugins/45078
33935         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33936
33937 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
33938
33939         PR bootstrap/61516
33940         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33941         initialization.  Replace remaining use of uid.
33942
33943 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33944
33945         * c-family/c-common.c (handle_tls_model_attribute): Use
33946         set_decl_tls_model.
33947         * c-family/c-common.c (handle_tls_model_attribute): Use
33948         set_decl_tls_model.
33949         * cgraph.h (struct varpool_node): Add tls_model.
33950         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33951         * tree.h (DECL_TLS_MODEL): Update.
33952         (DECL_THREAD_LOCAL_P): Check that variable is static.
33953         (decl_tls_model): Declare.
33954         (set_decl_tls_model): Declare.
33955         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33956         set symbol prorperties.
33957         (get_emutls_init_templ_addr): Cleanup.
33958         (new_emutls_decl): Update.
33959         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33960         (lto_input_varpool_node): Likewise.
33961         * lto-streamer-out.c (hash_tree): Likewise.
33962         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33963         not stream DECL_TLS_MODEL.
33964         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33965         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33966
33967 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33968
33969         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33970
33971 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33972
33973         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33974         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33975         lists.
33976         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33977         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33978         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33979         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33980         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33981         (df_get_artificial_defs, df_get_artificial_uses)
33982         (df_single_def, df_single_use): Update accordingly.
33983         (df_refs_chain_dump): Take the first element in a linked list as
33984         parameter, rather than a pointer to an array of pointers.
33985         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33986         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33987         (df_chain_create_bb_process_use): Likewise.
33988         (df_md_bb_local_compute_process_def): Likewise.
33989         * fwprop.c (process_defs, process_uses): Likewise.
33990         (register_active_defs, update_uses): Likewise.
33991         (forward_propagate_asm): Update for new df_ref linking.
33992         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33993         (df_null_ref_rec, df_null_mw_rec): Likewise.
33994         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33995         explicitly.
33996         (df_scan_free_bb_info): Remove check for null artificial_defs.
33997         (df_install_ref_incremental): Adjust for new df_ref linking.
33998         Use a single-element insertion rather than a full sort.
33999         (df_ref_chain_delete_du_chain): Take the first element
34000         in a linked list as parameter, rather than a pointer to an array of
34001         pointers.
34002         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
34003         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
34004         (df_insn_info_delete): Remove check for null defs and call to
34005         df_scan_free_mws_vec.
34006         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
34007         null rather than df_null_*_rec.
34008         (df_insn_rescan_debug_internal): Likewise, and update null
34009         checks in the same way.  Remove check for null defs.
34010         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
34011         Move a single element rather doing a full sort.
34012         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
34013         linking.
34014         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
34015         Initialize df_ref and df_mw_hardreg lists to null rather than
34016         df_null_*_rec.
34017         (df_ref_compare): Take df_refs as parameter, transferring the
34018         old interface to...
34019         (df_ref_ptr_compare): ...this new function.
34020         (df_sort_and_compress_refs): Update accordingly.
34021         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
34022         old interface to...
34023         (df_mw_ptr_compare): ...this new function.
34024         (df_sort_and_compress_mws): Update accordingly.
34025         (df_install_refs, df_install_mws): Return a linked list rather than
34026         an array of pointers.
34027         (df_refs_add_to_chains): Assert that old lists are empty rather
34028         than freeing them.
34029         (df_insn_refs_verify): Don't handle null defs speciailly.
34030         * web.c (union_match_dups): Update for new df_ref linking.
34031
34032 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34033
34034         * df.h (df_ref_create, df_ref_remove): Delete.
34035         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
34036         (df_ref_remove): Likewise.
34037
34038 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34039
34040         * df.h (df_single_def, df_single_use): New functions.
34041         * ira.c (find_moveable_pseudos): Use them.
34042
34043 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34044
34045         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
34046         * df-problems.c (df_note_bb_compute): Use it.
34047         * regstat.c (regstat_bb_compute_ri): Likewise.
34048
34049 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34050
34051         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
34052         * cse.c (cse_extended_basic_block): Use them.
34053         * dce.c (mark_artificial_use): Likewise.
34054         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
34055         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
34056         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
34057         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
34058         (df_simulate_initialize_backwards): Likewise.
34059         (df_simulate_finalize_backwards): Likewise.
34060         (df_simulate_initialize_forwards): Likewise.
34061         (df_md_simulate_artificial_defs_at_top): Likewise.
34062         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
34063         * regrename.c (init_rename_info): Likewise.
34064         * regstat.c (regstat_bb_compute_ri): Likewise.
34065         (regstat_bb_compute_calls_crossed): Likewise.
34066
34067 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34068
34069         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
34070         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
34071         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
34072         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
34073         * combine.c (create_log_links): Likewise.
34074         * compare-elim.c (find_flags_uses_in_insn): Likewise.
34075         (try_eliminate_compare): Likewise.
34076         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
34077         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
34078         (remove_reg_equal_equiv_notes_for_defs): Likewise.
34079         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
34080         (word_dce_process_block, dce_process_block): Likewise.
34081         * ddg.c (def_has_ccmode_p): Likewise.
34082         * df-core.c (df_bb_regno_first_def_find): Likewise.
34083         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
34084         * df-problems.c (df_rd_simulate_one_insn): Likewise.
34085         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
34086         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
34087         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
34088         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
34089         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
34090         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
34091         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
34092         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
34093         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
34094         * fwprop.c (local_ref_killed_between_p): Likewise.
34095         (all_uses_available_at, free_load_extend): Likewise.
34096         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
34097         * hw-doloop.c (scan_loop): Likewise.
34098         * ifcvt.c (dead_or_predicable): Likewise.
34099         * init-regs.c (initialize_uninitialized_regs): Likewise.
34100         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
34101         (process_bb_node_lives): Likewise.
34102         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
34103         (find_moveable_pseudos): Likewise.
34104         * loop-invariant.c (check_dependencies, record_uses): Likewise.
34105         * recog.c (peep2_find_free_register): Likewise.
34106         * ree.c (get_defs): Likewise.
34107         * regstat.c (regstat_bb_compute_ri): Likewise.
34108         (regstat_bb_compute_calls_crossed): Likewise.
34109         * sched-deps.c (find_inc, find_mem): Likewise.
34110         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
34111         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
34112         * shrink-wrap.c (requires_stack_frame_p): Likewise.
34113         (prepare_shrink_wrap): Likewise.
34114         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
34115         * web.c (union_defs, pass_web::execute): Likewise.
34116         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
34117         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
34118
34119 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
34120
34121         * lra-assign.c (assign_by_spills): Add code to assign vector regs
34122         to inheritance pseudos.
34123         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
34124
34125 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
34126
34127         PR target/61415
34128         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
34129         (BU_MISC_2): Rename to ...
34130         (BU_LDBL128_2): ... this.
34131         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
34132         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
34133         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
34134         RS6000_BTM_LDBL128.
34135         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
34136         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
34137         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
34138         (unpacktf_1): Likewise.
34139         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
34140         (__builtin_longdouble_dw1): Likewise.
34141         * doc/sourcebuild.texi (longdouble128): Document.
34142
34143 2014-06-13  Jeff Law  <law@redhat.com>
34144
34145         PR rtl-optimization/61094
34146         PR rtl-optimization/61446
34147         * ree.c (combine_reaching_defs): Get the mode for the copy from
34148         the extension insn rather than the defining insn.
34149
34150 2014-06-13  Dehao Chen  <dehao@google.com>
34151
34152         * dwarf2out.c (add_linkage_name): Emit more linkage name.
34153
34154 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
34155
34156         * doc/install.texi (--enable-linker-plugin-configure-flags)
34157         (--enable-linker-plugin-flags): Document new flags.
34158
34159 2014-06-13  Martin Jambor  <mjambor@suse.cz>
34160
34161         PR ipa/61186
34162         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
34163         cache_token if returning early.
34164
34165 2014-06-13  Nick Clifton  <nickc@redhat.com>
34166
34167         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
34168         requested alignment is active.
34169         (LABEL_ALIGN): Likewise.
34170         (LOOP_ALIGN): Likewise.
34171
34172 2014-06-13  Richard Biener  <rguenther@suse.de>
34173
34174         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
34175         Rewrite to propagate the VN result into all uses where
34176         possible and to remove stmts becoming dead because of that.
34177         (eliminate): Generalize stmt removal handling, remove in
34178         reverse dominator order to support proper debug stmt
34179         generation.  Update stmts before removing stmts.
34180         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
34181
34182 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34183
34184         PR tree-optimization/61375
34185         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
34186         symbolic number cannot be represented in an uint64_t.
34187         (find_bswap_or_nop_1): Likewise.
34188
34189 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
34190
34191         * symtab.c (symtab_node::reset_section): New method.
34192         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
34193         for localization.
34194         * cgraph.h (reset_section): Declare.
34195         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
34196         do not consider comdat locals.
34197         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
34198         for new symbol.
34199         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
34200         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
34201         reset sections of symbols dragged out of the comdats.
34202         (function_and_variable_visibility): Reset sections of
34203         localized symbols.
34204
34205 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
34206
34207         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
34208         to use symtab and decl_binds_to_current_def_p
34209         * tree-vectorizer.c (increase_alignment): Increase alignment
34210         of alias target, too.
34211
34212 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
34213
34214         PR middle-end/61486
34215         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
34216         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
34217         if outer combined construct is distribute.
34218         (gimplify_omp_for): For OMP_DISTRIBUTE set
34219         gimplify_omp_ctxp->distribute.
34220         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
34221         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
34222         mapping into decl map.
34223
34224 2014-06-12  Jason Merrill  <jason@redhat.com>
34225
34226         * common.opt (fabi-version): Change default to 0.
34227
34228 2014-06-12  Jason Merrill  <jason@redhat.com>
34229
34230         * toplev.c (process_options): Reject -fabi-version=1.
34231
34232 2014-06-12  Jeff Law  <law@redhat.com>
34233
34234         PR tree-optimization/61009
34235         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
34236         value when we stop processing a block due to problematic PHIs.
34237
34238 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
34239
34240         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
34241         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
34242         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
34243         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
34244         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
34245         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
34246         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
34247         are not in the spec.
34248
34249 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
34250
34251         PR target/59843
34252         * config/aarch64/aarch64-modes.def: Add V1DFmode.
34253         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
34254         Support V1DFmode.
34255
34256 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
34257
34258         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
34259
34260 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
34261
34262         PR target/61443
34263         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
34264         loading from address spaces.
34265
34266 2014-06-12  Martin Liska  <mliska@suse.cz>
34267
34268         PR ipa/61462
34269         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
34270         statement is reachable.
34271
34272 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34273
34274         * symtab.c (section_hash): New hash.
34275         (symtab_unregister_node): Clear section before freeing.
34276         (hash_section_hash_entry): New haser.
34277         (eq_sections): New function.
34278         (symtab_node::set_section_for_node): New method.
34279         (set_section_1): Update.
34280         (symtab_node::set_section): Take string instead of tree as parameter.
34281         (symtab_resolve_alias): Update.
34282         * cgraph.h (section_hash_entry_d): New structure.
34283         (section_hash_entry): New typedef.
34284         (cgraph_node): Change comdat_group_ to x_comdat_group,
34285         change section_ to x_section and turn into section_hash_entry;
34286         update accestors; put set_section_for_node offline.
34287         * tree.c (decl_section_name): Turn into string.
34288         (set_decl_section_name): Change parameter to be string.
34289         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
34290         * sdbout.c (sdbout_one_type): Update.
34291         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
34292         * varasm.c (IN_NAMED_SECTION, get_named_section,
34293         resolve_unique_section, hot_function_section, get_named_text_section,
34294         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
34295         make_decl_rtl, default_unique_section): Update.
34296         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
34297         (c6x_elf_unique_section): Update.
34298         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
34299         * config/pa/pa.c (pa_function_section): Update.
34300         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
34301         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
34302         * config/arc/arc.c (arc_in_small_data_p): Update.
34303         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
34304         * config/mcore/mcore.c (mcore_unique_section): Update.
34305         * config/mips/mips.c (mips16_build_function_stub): Update.
34306         (mips16_build_call_stub): Update.
34307         (mips_function_rodata_section): Update.
34308         (mips_in_small_data_p): Update.
34309         * config/score/score.c (score_in_small_data_p): Update.
34310         * config/rx/rx.c (rx_in_small_data): Update.
34311         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
34312         (rs6000_xcoff_asm_named_section): Update.
34313         (rs6000_xcoff_unique_section): Update.
34314         * config/frv/frv.c (frv_string_begins_with): Update.
34315         (frv_in_small_data_p): Update.
34316         * config/v850/v850.c (v850_encode_data_area): Update.
34317         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
34318         (bfin_handle_l1_data_attribute): Update.
34319         (bfin_handle_l2_attribute): Update.
34320         * config/mep/mep.c (mep_unique_section): Update.
34321         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
34322         Update.
34323         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
34324         (h8300_handle_tiny_data_attribute): Update.
34325         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
34326         (m32r_in_small_data_p): Update.
34327         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
34328         * config/i386/i386.c (ix86_in_large_data_p): Update.
34329         * config/i386/winnt.c (i386_pe_unique_section): Update.
34330         * config/darwin.c (darwin_function_section): Update.
34331         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
34332         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34333         (new_emutls_decl): Update.
34334         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
34335         input_varpool_node): Update.
34336         (ead_string_cst): Turn to ...
34337         (read_string): ... this one.
34338         * dwarf2out.c (secname_for_decl): Update.
34339         * asan.c (asan_protect_global): Update.
34340
34341 2014-06-11  DJ Delorie  <dj@redhat.com>
34342
34343         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
34344         cache lines.
34345         * config/rx/rx.c (rx_option_override): Likewise.
34346         (rx_align_for_label): Likewise.
34347
34348         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
34349
34350 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
34351
34352         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
34353         prototype.
34354
34355 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34356
34357         * common.md: New file.
34358         * doc/md.texi: Update description of generic, machine-independent
34359         constraints.
34360         * config/s390/constraints.md (e): Delete.
34361         * Makefile.in (md_file): Include common.md.
34362         * config/m32c/t-m32c (md_file): Likewise.
34363         * genpreds.c (general_mem): New array.
34364         (generic_constraint_letters): Remove constraints now defined by
34365         common.md.
34366         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
34367         Allow the first character to be '<' or '>' as well.
34368         * genoutput.c (general_mem): New array.
34369         (indep_constraints): Remove constraints now defined by common.md.
34370         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
34371         Remove special handling of 'm'.
34372         * ira-costs.c (record_reg_classes): Remove special handling of
34373         constraints now defined by common.md.
34374         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34375         * ira-lives.c (single_reg_class): Likewise.
34376         (ira_implicitly_set_insn_hard_regs): Likewise.
34377         * lra-constraints.c (reg_class_from_constraints): Likewise.
34378         (process_alt_operands, process_address, curr_insn_transform): Likewise.
34379         * postreload.c (reload_cse_simplify_operands): Likewise.
34380         * reload.c (push_secondary_reload, scratch_reload_class)
34381         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34382         * reload1.c (maybe_fix_stack_asms): Likewise.
34383         * targhooks.c (default_secondary_reload): Likewise.
34384         * stmt.c (parse_output_constraint): Likewise.
34385         * recog.c (preprocess_constraints): Likewise.
34386         (constrain_operands, peep2_find_free_register): Likewise.
34387         (asm_operand_ok): Likewise, but add a comment saying why 'o'
34388         must be handled specially.
34389
34390 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34391
34392         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
34393         * genpreds.c (have_const_dbl_constraints): Delete.
34394         (add_constraint): Don't set it.
34395         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
34396         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
34397         constraints using the lookup_constraint logic.
34398         * ira-lives.c (single_reg_class): Likewise.
34399         * ira.c (ira_setup_alts): Likewise.
34400         * lra-constraints.c (process_alt_operands): Likewise.
34401         * recog.c (asm_operand_ok, constrain_operands): Likewise.
34402         * reload.c (find_reloads): Likewise.
34403
34404 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34405
34406         * genpreds.c (const_int_start, const_int_end): New variables.
34407         (choose_enum_order): Output CONST_INT constraints before memory
34408         constraints.
34409         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
34410         Add CT_CONST_INT.
34411         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
34412         * ira.c (ira_setup_alts): Likewise.
34413         * lra-constraints.c (process_alt_operands): Likewise.
34414         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34415         * reload.c (find_reloads): Likewise.
34416
34417 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34418
34419         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
34420         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
34421         * recog.c (preprocess_constraints): Update accordingly.
34422
34423 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34424
34425         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
34426         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
34427         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
34428         * genpreds.c (print_type_tree): New function.
34429         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
34430         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
34431         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
34432         Write out enum constraint_type and get_constraint_type.
34433         * lra-constraints.c (satisfies_memory_constraint_p): Take a
34434         constraint_num rather than a constraint string.
34435         (satisfies_address_constraint_p): Likewise.
34436         (reg_class_from_constraints): Avoid old constraint macros.
34437         (process_alt_operands, process_address_1): Likewise.
34438         (curr_insn_transform): Likewise.
34439         * ira-costs.c (record_reg_classes): Likewise.
34440         (record_operand_costs): Likewise.
34441         * ira-lives.c (single_reg_class): Likewise.
34442         (ira_implicitly_set_insn_hard_regs): Likewise.
34443         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34444         * postreload.c (reload_cse_simplify_operands): Likewise.
34445         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34446         (constrain_operands, peep2_find_free_register): Likewise.
34447         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
34448         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34449         * reload1.c (maybe_fix_stack_asms): Likewise.
34450         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
34451         * targhooks.c (default_secondary_reload): Likewise.
34452         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
34453         to EXTRA_CONSTRAINT_STR.
34454         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
34455
34456 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34457
34458         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
34459         (write_constraint_satisfied_p_array): ...this new function.
34460         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
34461         an array.
34462         (write_insn_preds_c): Update accordingly.
34463
34464 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34465
34466         * genpreds.c (write_lookup_constraint): Rename to...
34467         (write_lookup_constraint_1): ...this.
34468         (write_lookup_constraint_array): New function.
34469         (write_tm_preds_h): Define lookup_constraint as an inline function
34470         that uses write_lookup_constraint_array where possible.
34471         (write_insn_preds_c): Update for the changes above.
34472
34473 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34474
34475         * doc/md.texi (regclass_for_constraint): Rename to...
34476         (reg_class_for_constraint): ...this.
34477         * genpreds.c (num_constraints, enum_order, register_start)
34478         (register_end, satisfied_start, memory_start, memory_end)
34479         (address_start, address_end): New variables.
34480         (add_constraint): Count the number of constraints.
34481         (choose_enum_order): New function.
34482         (write_enum_constraint_num): Iterate over enum_order.
34483         (write_regclass_for_constraint): Rename to...
34484         (write_reg_class_for_constraint_1): ...this and update output
34485         accordingly.
34486         (write_constraint_satisfied_p): Rename to...
34487         (write_constraint_satisfied_p_1): ...this and update output
34488         accordingly.  Do nothing if all extra constraints are register
34489         constraints.
34490         (write_insn_extra_memory_constraint): Delete.
34491         (write_insn_extra_address_constraint): Delete.
34492         (write_range_function): New function.
34493         (write_tm_preds_h): Define constraint_satisfied_p and
34494         reg_class_for_constraint as inline functions that do a range check
34495         before calling the out-of-line function.  Use write_range_function
34496         to implement insn_extra_{register,memory,address}_constraint,
34497         the first of which is new.
34498         (write_insn_preds_c): Update after above changes to write_* functions.
34499         (main): Call choose_enum_order.
34500
34501 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34502
34503         PR tree-optimization/61306
34504         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
34505         expression instead of its size.
34506         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
34507         false to prevent optimization when the result is unpredictable due to
34508         arithmetic right shift of signed type with highest byte is set.
34509         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
34510         (init_symbolic_number): Likewise.
34511         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
34512         when the result is unpredictable due to sign extension.
34513
34514 2014-06-11  Terry Guo  <terry.guo@arm.com>
34515
34516         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
34517         (*thumb1_addsi3): Ditto.
34518         (*thumb_subdi3): Ditto.
34519         (thumb1_subsi3_insn): Ditto.
34520         (*thumb_mulsi3): Ditto.
34521         (*thumb_mulsi3_v6): Ditto.
34522         (*thumb1_andsi3_insn): Ditto.
34523         (thumb1_bicsi3): Ditto.
34524         (*thumb1_iorsi3_insn): Ditto.
34525         (*thumb1_xorsi3_insn): Ditto.
34526         (*thumb1_ashlsi3): Ditto.
34527         (*thumb1_ashrsi3): Ditto.
34528         (*thumb1_lshrsi3): Ditto.
34529         (*thumb1_rotrsi3): Ditto.
34530         (*thumb1_negdi2): Ditto.
34531         (*thumb1_negsi2): Ditto.
34532         (*thumb1_abssi2): Ditto.
34533         (*thumb1_neg_abssi2): Ditto.
34534         (*thumb1_one_cmplsi2): Ditto.
34535         (*thumb1_zero_extendhisi2): Ditto.
34536         (*thumb1_zero_extendqisi2): Ditto.
34537         (*thumb1_zero_extendqisi2_v6): Ditto.
34538         (thumb1_extendhisi2): Ditto.
34539         (thumb1_extendqisi2): Ditto.
34540         (*thumb1_movdi_insn): Ditto.
34541         (*thumb1_movsi_insn): Ditto.
34542         (*thumb1_movhi_insn): Ditto.
34543         (thumb_movhi_clobber): Ditto.
34544         (*thumb1_movqi_insn): Ditto.
34545         (*thumb1_movhf): Ditto.
34546         (*thumb1_movsf_insn): Ditto.
34547         (*thumb_movdf_insn): Ditto.
34548         (movmem12b): Ditto.
34549         (movmem8b): Ditto.
34550         (cbranchqi4): Ditto.
34551         (cbranchsi4_insn): Ditto.
34552         (cbranchsi4_scratch): Ditto.
34553         (*negated_cbranchsi4): Ditto.
34554         (*tbit_cbranch): Ditto.
34555         (*tlobits_cbranch): Ditto.
34556         (*tstsi3_cbranch): Ditto.
34557         (*cbranchne_decr1): Ditto.
34558         (*addsi3_cbranch): Ditto.
34559         (*addsi3_cbranch_scratch): Ditto.
34560         (*thumb_cmpdi_zero): Ditto.
34561         (cstoresi_eq0_thumb1): Ditto.
34562         (cstoresi_ne0_thumb1): Ditto.
34563         (*cstoresi_eq0_thumb1_insn): Ditto.
34564         (*cstoresi_ne0_thumb1_insn): Ditto.
34565         (cstoresi_nltu_thumb1): Ditto.
34566         (cstoresi_ltu_thumb1): Ditto.
34567         (thumb1_addsi3_addgeu): Ditto.
34568         (*thumb_jump): Ditto.
34569         (*call_reg_thumb1_v5): Ditto.
34570         (*call_reg_thumb1): Ditto.
34571         (*call_value_reg_thumb1_v5): Ditto.
34572         (*call_value_reg_thumb1): Ditto.
34573         (*call_insn): Ditto.
34574         (*call_value_insn): Ditto.
34575         (thumb1_casesi_internal_pic): Ditto.
34576         (thumb1_casesi_dispatch): Ditto.
34577         (*thumb1_indirect_jump): Ditto.
34578         (prologue_thumb1_interwork): Ditto.
34579         (*epilogue_insns): Ditto.
34580         (consttable_1): Ditto.
34581         (consttable_2): Ditto.
34582         (tablejump): Ditto.
34583         (*thumb1_tablejump): Ditto.
34584         (thumb_eh_return): Ditto.
34585         (define_peephole2): Two of them are thumb1 only and got moved into
34586         new file thumb1.md.
34587         (define_split): Six of them are thumb1 only and got moved into new
34588         file thumb1.md.
34589         * config/arm/thumb1.md: New file comprised of above thumb1 only
34590         patterns.
34591
34592 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34593
34594         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34595         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34596         dependencies.
34597         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34598         (aarch64_crc_builtin_datum): New struct.
34599         (aarch64_crc_builtin_data): New.
34600         (aarch64_init_crc32_builtins): New function.
34601         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34602         (aarch64_crc32_expand_builtin): New.
34603         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34604         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34605         __ARM_FEATURE_CRC32 when appropriate.
34606         (TARGET_CRC32): Define.
34607         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34608         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34609         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34610         (aarch64_<crc_variant>): New pattern.
34611         * config/aarch64/arm_acle.h: New file.
34612         * config/aarch64/iterators.md (CRC): New int iterator.
34613         (crc_variant, crc_mode): New int attributes.
34614         * doc/aarch64-acle-intrinsics.texi: New file.
34615         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34616         Include aarch64-acle-intrinsics.texi.
34617
34618 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
34619
34620         * tree-vect-data-refs.c (vect_grouped_store_supported): New
34621         check for stores group of length 3.
34622         (vect_permute_store_chain): New permutations for stores group of
34623         length 3.
34624         * tree-vect-stmts.c (vect_model_store_cost): Change cost
34625         of vec_perm_shuffle for the new permutations.
34626
34627 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34628
34629         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34630         table rewriting temporarily on targets not supporting ONE_ONLY.
34631
34632 2014-06-11  Richard Biener  <rguenther@suse.de>
34633
34634         PR middle-end/61437
34635         Revert
34636         2014-06-04  Richard Biener  <rguenther@suse.de>
34637
34638         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34639         TREE_PUBLIC and DECL_EXTERNAL decls.
34640
34641 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34642
34643         * varasm.c (set_implicit_section): New function.
34644         (resolve_unique_section): Use it to set implicit section
34645         for aliases, too.
34646         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34647         (default_function_section): Likewise.
34648         (decl_binds_to_current_def_p): Constify argument.
34649         * varasm.h (decl_binds_to_current_def_p): Update prototype.
34650         * asan.c (asan_protect_global): Use
34651         symtab_get_node (decl)->implicit_section.
34652         * symtab.c (dump_symtab_base): Dump implicit sections.
34653         (verify_symtab_base): Verify sanity of sectoins and comdats.
34654         (symtab_resolve_alias): Alias share the section of its target.
34655         (set_section_1): New function.
34656         (symtab_node::set_section): Move here, recurse to aliases.
34657         (verify_symtab): Check for duplicated symtab lists.
34658         * tree-core.h (implicit_section_name_p): Remove.
34659         * tree-vect-data-refs.c: Include varasm.h.
34660         (vect_can_force_dr_alignment_p): Fix conditional on when
34661         decl bints to current definition; use
34662         symtab_get_node (decl)->implicit_section.
34663         * cgraph.c (cgraph_make_node_local_1): Fix section set.
34664         * cgraph.h (struct symtab_node): Add implicit_section.
34665         (set_section): Rename to ...
34666         (set_section_for_node): ... this one.
34667         (set_section): Declare.
34668         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34669         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34670         input_overwrite_node, input_varpool_node): Stream implicit_section.
34671         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34672         removal; it will fail in LTO.
34673
34674 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34675
34676         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34677         Change second alternative type to f_mcr.
34678         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34679         and 12th alternatives' types to f_mcr and f_mrc.
34680         (*movdi_aarch64): Same for 12th and 13th alternatives.
34681         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34682         (aarch64_movtilow_tilow): Change type to fmov.
34683
34684 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
34685
34686         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34687         (aarch64_save_or_restore_callee_save_registers): Fix layout.
34688
34689 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34690
34691         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34692         New expander.
34693         (aarch64_sqrdmulh_lane<mode>): Likewise.
34694         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34695         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34696         (aarch64_sqdmulh_laneq<mode>): New expander.
34697         (aarch64_sqrdmulh_laneq<mode>): Likewise.
34698         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34699         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34700         (aarch64_sqdmulh_lane<mode>): New expander.
34701         (aarch64_sqrdmulh_lane<mode>): Likewise.
34702         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34703         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34704         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34705         (aarch64_sqdmlal_laneq<mode>): Likewise.
34706         (aarch64_sqdmlsl_lane<mode>): Likewise.
34707         (aarch64_sqdmlsl_laneq<mode>): Likewise.
34708         (aarch64_sqdmlal2_lane<mode>): Likewise.
34709         (aarch64_sqdmlal2_laneq<mode>): Likewise.
34710         (aarch64_sqdmlsl2_lane<mode>): Likewise.
34711         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34712         (aarch64_sqdmull_lane<mode>): Likewise.
34713         (aarch64_sqdmull_laneq<mode>): Likewise.
34714         (aarch64_sqdmull2_lane<mode>): Likewise.
34715         (aarch64_sqdmull2_laneq<mode>): Likewise.
34716
34717 2014-06-10  Richard Biener  <rguenther@suse.de>
34718
34719         PR tree-optimization/61438
34720         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34721         (eliminate_dom_walker::before_dom_children): Only try to inhibit
34722         insertion of IVs if running PRE.
34723         (eliminate): Adjust.
34724         (pass_pre::execute): Likewise.
34725         (pass_fre::execute): Likewise.
34726
34727 2014-06-10  Richard Biener  <rguenther@suse.de>
34728
34729         PR middle-end/61456
34730         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34731         Do not use the main variant for the type comparison.
34732         (ncr_compar): Likewise.
34733         (nonoverlapping_component_refs_p): Likewise.
34734
34735 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34736
34737         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34738         REG_CFA_RESTORE mode.
34739
34740 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
34741
34742         * config/i386/i386.c (expand_vec_perm_pblendv): New.
34743         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34744         expand_vec_perm_pblendv.
34745
34746 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34747
34748         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34749         available.
34750         Simplify description of __crc32d and __crc32cd intrinsics.
34751         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34752         availability.
34753
34754 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
34755
34756         PR lto/61334
34757         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34758         * config.in: Regenerate.
34759         * configure: Likewise.
34760
34761 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34762
34763         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34764         and public vars.
34765         (intersect_static_var_sets): Remove.
34766         (propagate): Do not prune local statics.
34767
34768 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
34769
34770         PR fortran/60928
34771         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34772         Set lastprivate_firstprivate even if omp_private_outer_ref
34773         langhook returns true.
34774         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34775         langhook, call unshare_expr on new_var and call
34776         build_outer_var_ref to get the last argument.
34777
34778 2014-06-10  Marek Polacek  <polacek@redhat.com>
34779
34780         PR c/60988
34781         * doc/extend.texi: Add cindex for transparent_union.
34782
34783 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34784
34785         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34786         init_symbolic_number ().
34787
34788 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
34789
34790         PR middle-end/61141
34791         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34792         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34793         (verify_rtl_sharing): Likewise.
34794
34795 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
34796
34797         PR c++/54442
34798         * tree.c (build_qualified_type): Use a canonical type for
34799         TYPE_CANONICAL.
34800
34801 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34802
34803         * config/arm/arm-modes.def: Remove XFmode.
34804
34805 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
34806
34807         PR target/61062
34808         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34809         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34810         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34811         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34812         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34813         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34814         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34815         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34816         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34817
34818 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
34819
34820         * tree-core.h (tree_decl_with_vis): Remove section_name.
34821
34822 2014-06-09  Kito Cheng  <kito@0xlab.org>
34823
34824         * ira.c (ira): Don't call init_caller_save if LRA enabled
34825         since LRA use its own infrastructure to handle that.
34826
34827 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34828
34829         * symtab.c (dump_symtab_base): Update dumping.
34830         (symtab_make_decl_local): Clear only DECL_COMDAT.
34831         * tree-vect-data-refs.c (Check that variable is static before
34832         tampering with sections.
34833         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34834         (cgraph_create_virtual_clone): Likewise.
34835         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34836         (decl_section_name, set_decl_section_name): New accessors.
34837         (find_decls_types_r): Do not walk section name
34838         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34839         (decl_comdat_group, decl_comdat_group_id): Constify.
34840         (decl_section_name, set_decl_section_name): Update.
34841         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34842         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34843         (cgraph_make_node_local_1): Clear section and comdat group.
34844         * cgraph.h (set_comdat_group): Sanity check.
34845         (get_section, set_section): New.
34846         * ipa-comdats.c (ipa_comdats): Use get_section.
34847         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34848         * lto-streamer-out.c: Do not follow section names.
34849         * c-family/c-common.c (handle_section_attribute): Update.
34850         * lto-cgraph.c (lto_output_node): Output section.
34851         (lto_output_varpool_node): Likewise.
34852         (read_comdat_group): Rename to ...
34853         (read_identifier): ... this one.
34854         (read_string_cst): New function.
34855         (input_node, input_varpool_node): Input section names.
34856         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34857         (new_emutls_decl): Update.
34858         (secname_for_decl): Check section names only of static vars.
34859         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34860         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34861         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34862         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34863         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34864         * config/mcore/mcore.c (mcore_unique_section): Likewise.
34865         * config/mips/mips.c (mips16_build_function_stub): Likewise.
34866         * config/v850/v850.c (v850_insert_attributes): Likewise.
34867         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34868         Likewise.
34869         (h8300_handle_tiny_data_attribute): Likewise.
34870         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34871         (bfin_handle_l2_attribute): Likewise.
34872
34873 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34874
34875         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34876         remove static initializer.
34877
34878 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34879
34880         * varasm.c (use_blocks_for_decl_p): Check symbol table
34881         instead of alias attribute.
34882         (place_block_symbol): Recurse on aliases.
34883
34884 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34885
34886         * ipa-visibility.c: Include varasm.h
34887         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34888
34889 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34890
34891         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34892         outputting aliases.
34893
34894 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
34895
34896         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34897         from test_insn into GGC space escape via SET_SRC.
34898
34899 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
34900
34901         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34902         call statement, if any.
34903         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34904         statements, if any.  Tidy up.
34905
34906 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
34907
34908         PR target/61431
34909         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34910         iterators, VSX_D that handles 64-bit types, and VSX_LE that
34911         handles swapping the two 64-bit double words on little endian
34912         systems.  Include V1TImode and optionally TImode in VSX_LE so that
34913         these types are properly swapped.  Change all of the insns and
34914         splits that do the 64-bit swaps to use VSX_LE.
34915         (vsx_le_perm_load_<mode>): Likewise.
34916         (vsx_le_perm_store_<mode>): Likewise.
34917         (splitters for little endian memory operations): Likewise.
34918         (vsx_xxpermdi2_le_<mode>): Likewise.
34919         (vsx_lxvd2x2_le_<mode>): Likewise.
34920         (vsx_stxvd2x2_le_<mode>): Likewise.
34921
34922 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
34923
34924         PR target/61423
34925         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34926         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34927         and corresponding splitters.  Zero extend general register
34928         or memory input operand to XMM temporary.  Enable for
34929         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34930         (floatunssi<mode>2): Update expander predicate.
34931
34932 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
34933
34934         PR rtl-optimization/61325
34935         * lra-constraints.c (process_address_1): Check scale equal to one
34936         to prevent transformation: base + scale * index => base + new_reg.
34937
34938 2014-06-06  Richard Biener  <rguenther@suse.de>
34939
34940         PR tree-optimization/59299
34941         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34942         a def operand.
34943         (nearest_common_dominator_of_uses): Likewise.
34944         (statement_sink_location): Adjust.  Support sinking loads.
34945
34946 2014-06-06  Martin Jambor  <mjambor@suse.cz>
34947
34948         * ipa-prop.c (get_place_in_agg_contents_list): New function.
34949         (build_agg_jump_func_from_list): Likewise.
34950         (determine_known_aggregate_parts): Renamed to
34951         determine_locally_known_aggregate_parts.  Moved some functionality
34952         to the two functions above, removed bound checks.
34953
34954 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
34955
34956         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34957         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34958         (aarch64_progress_pointer): Likewise.
34959         (aarch64_copy_one_part_and_move_pointers): Likewise.
34960         (aarch64_expand_movmen): Likewise.
34961         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34962         * config/aarch64/aarch64.md (movmem<mode>): New.
34963
34964 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
34965
34966         * targhooks.c (default_add_stmt_cost): Call target specific
34967         hook instead of default one.
34968
34969 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34970
34971         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34972         endianness instead of host endianness.
34973         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34974         comments.
34975
34976 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34977
34978         PR debug/53927
34979         * function.c (instantiate_decls): Process the saved static chain.
34980         (expand_function_start): If not optimizing, save the static chain
34981         onto the stack.
34982         * tree-nested.c (convert_all_function_calls): Always create the static
34983         chain for nested functions if not optimizing.
34984
34985 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34986
34987         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34988
34989 2014-06-06  Richard Biener  <rguenther@suse.de>
34990
34991         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34992         (construct_init_block): Likewise.
34993         (construct_exit_block): Likewise.
34994         (pass_expand::execute): Likewise.
34995         * graphite.c (graphite_transforms): Replace check for current_loops
34996         with a check for > 1 loops.
34997         (pass_graphite_transforms::execute): Adjust.
34998         * ipa-split.c (split_function): Remove check for current_loops.
34999         * omp-low.c (expand_parallel_call): Likewise.
35000         (expand_omp_for_init_counts): Likewise.
35001         (extract_omp_for_update_vars): Likewise.
35002         (expand_omp_for_generic): Likewise.
35003         (expand_omp_sections): Likewise.
35004         (expand_omp_target): Likewise.
35005         * tracer.c (tail_duplicate): Likewise.
35006         (pass_tracer::execute): Likewise.
35007         * trans-mem.c (expand_transaction): Likewise.
35008         * tree-complex.c (expand_complex_div_wide): Likewise.
35009         * tree-eh.c (lower_resx): Likewise.
35010         (cleanup_empty_eh_merge_phis): Likewise.
35011         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
35012         current_loops with a check for > 1 loops.
35013         (pass_predcom::execute): Adjust.
35014         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
35015         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
35016         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
35017         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
35018         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
35019         * tree-switch-conversion.c (process_switch): Likewise.
35020         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
35021         * tree-vrp.c (vrp_visit_phi_node): Likewise.
35022         (execute_vrp): Likewise.
35023         * ubsan.c (ubsan_expand_null_ifn): Likewise.
35024
35025 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
35026
35027         * rtl.h (insn_location): Declare.
35028         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
35029         with UNKNOWN_LOCATION.
35030         * emit-rtl.c (insn_location): New function.
35031         * final.c (notice_source_line): Check that the instruction has a
35032         location before retrieving it and use insn_location.
35033         * modulo-sched.c (loop_single_full_bb_p): Likewise.
35034         * print-rtl.c (print_rtx): Likewise.
35035
35036 2014-06-06  Richard Biener  <rguenther@suse.de>
35037
35038         * passes.def: Move 2nd VRP pass before phi-only-cprop.
35039
35040 2014-06-06  Christian Bruel  <christian.bruel@st.com>
35041
35042         PR tree-optimization/43934
35043         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
35044         cost.
35045
35046 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
35047
35048         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
35049         return NO_REGS for extra address and memory constraints.  Handle
35050         operands that match (or are equivalent to something that matches)
35051         extra constant constraints.  Ignore other non-register operands.
35052
35053 2014-06-06  Alan Modra  <amodra@gmail.com>
35054
35055         PR target/61300
35056         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
35057         * doc/tm.texi: Regenerate.
35058         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
35059         Use throughout in place of REG_PARM_STACK_SPACE.
35060         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
35061         "incoming" param.  Pass to rs6000_function_parms_need_stack.
35062         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
35063         prototype_p when incoming.  Use function decl when incoming
35064         to handle K&R style functions.
35065         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
35066         (INCOMING_REG_PARM_STACK_SPACE): Define.
35067
35068 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
35069
35070         PR target/52472
35071         * cfgexpand.c (expand_debug_expr): Use address space of nested
35072         TREE_TYPE for ADDR_EXPR and MEM_REF.
35073
35074 2014-06-05  Jeff Law  <law@redhat.com>
35075
35076         PR tree-optimization/61289
35077         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
35078         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
35079         looking for those which match LHS.  All callers changed.
35080         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
35081         parameters and code which manipulated them.  All callers changed.
35082         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
35083         and DST_MAP parameters.  Simplify invalidation code by just calling
35084         invalidate_equivalences.  All callers changed.
35085         (thread_across_edge): Simplify now that we don't need to maintain
35086         the map of equivalences to invalidate.
35087
35088 2014-06-05  Kai Tietz  <ktietz@redhat.com>
35089             Richard Henderson  <rth@redhat.com>
35090
35091         PR target/46219
35092         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
35093         checking for !TARGET_X32.
35094         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
35095         (sibcall_intern): New define_insn, plus required peepholes.
35096         (sibcall_pop_intern): Likewise.
35097         (sibcall_value_intern): Likewise.
35098         (sibcall_value_pop_intern): Likewise.
35099
35100 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
35101
35102         * tree-inline.c (tree_function_versioning): Check DF info existence
35103         before accessing it.
35104
35105 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35106
35107         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
35108         frame_size.
35109         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
35110         aarch64_frame hard_fp_offset and frame_size.
35111         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
35112         frame_size; remove original_frame_size.
35113         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
35114         (aarch64_initial_elimination_offset): Remove frame_size and
35115         offset.  Use aarch64_frame frame_size.
35116
35117 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35118             Jiong Wang  <jiong.wang@arm.com>
35119             Renlin  <renlin.li@arm.com>
35120
35121         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
35122         initialization of R30 offset.  Update offset.  Iterate core
35123         regisers upto X30.  Remove X29, X30 specific code.
35124
35125 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35126             Jiong Wang  <jiong.wang@arm.com>
35127
35128         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
35129         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
35130         (aarch64_register_saved_on_entry): Adjust test.
35131
35132 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35133
35134         * config/aarch64/aarch64.h (machine_function): Move
35135         saved_varargs_size from here...
35136         (aarch64_frame): ... to here.
35137
35138         * config/aarch64/aarch64.c (aarch64_expand_prologue)
35139         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
35140         (aarch64_initial_elimination_offset)
35141         (aarch64_setup_incoming_varargs): Adjust location of
35142         saved_varargs_size.
35143
35144 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35145
35146         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
35147         layout comment.
35148
35149 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
35150             Prachi Godbole  <Prachi.Godbole@imgtec.com>
35151
35152         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
35153         mips32r5 entry to use PROCESSOR_P5600.
35154         * config/mips/mips-tables.opt: Regenerate.
35155         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
35156         * config/mips/mips.c (mips_fmadd_bypass): New function.
35157         (mips_rtx_cost_data): Add costs for p5600.
35158         (mips_issue_rate): Add support for p5600.
35159         (mips_multipass_dfa_lookahead): Likewise.
35160         * config/mips/mips.h (TUNE_P5600): New define.
35161         (TUNE_MACC_CHAINS): Add TUNE_P5600.
35162         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
35163         * config/mips/mips.md: Include p5600.md.
35164         (processor): Add p5600.
35165         * config/mips/p5600.md: New file.
35166
35167 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
35168
35169         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
35170         * config/i386/predicates.md (palignr_operand): New.
35171         Indicates if permutation is suitable for palignr instruction.
35172
35173 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
35174
35175         PR tree-optimization/61319
35176         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
35177         stmt belongs to loop.
35178
35179 2014-06-05  Richard Biener  <rguenther@suse.de>
35180
35181         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
35182         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
35183         (lookup_tmp_var): Adjust.
35184         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
35185
35186 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35187
35188         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
35189
35190 2014-06-05  Marek Polacek  <polacek@redhat.com>
35191
35192         PR c/49706
35193         * doc/invoke.texi: Document -Wlogical-not-parentheses.
35194
35195 2014-06-04  Tom de Vries  <tom@codesourcery.com>
35196
35197         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
35198         CONST_INT.
35199
35200 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
35201
35202         PR tree-optimization/61385
35203         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
35204
35205 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
35206
35207         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
35208         changed to use fatal_error.
35209         (main): Ensure lto_wrapper_cleanup is run atexit.
35210
35211 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35212
35213         * lra-constraints.c (valid_address_p): Move earlier in file.
35214         (address_eliminator): New structure.
35215         (satisfies_memory_constraint_p): New function.
35216         (satisfies_address_constraint_p): Likewise.
35217         (process_alt_operands, process_address, curr_insn_transform): Use them.
35218
35219 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35220
35221         * lra-int.h (lra_static_insn_data): Make operand_alternative a
35222         const pointer.
35223         (target_lra_int, default_target_lra_int, this_target_lra_int)
35224         (op_alt_data): Delete.
35225         * lra.h (lra_init): Delete.
35226         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
35227         (init_insn_code_data_once): Remove op_alt_data handling.
35228         (finish_insn_code_data_once): Likewise.
35229         (init_op_alt_data): Delete.
35230         (get_static_insn_data): Initialize operand_alternative to null.
35231         (free_insn_recog_data): Cast operand_alternative before freeing it.
35232         (setup_operand_alternative): Take the operand_alternative as
35233         parameter and assume it isn't already cached in the static
35234         insn data.
35235         (lra_set_insn_recog_data): Update accordingly.
35236         (lra_init): Delete.
35237         * ira.c (ira_init): Don't call lra_init.
35238         * target-globals.h (this_target_lra_int): Declare.
35239         (target_globals): Remove lra_int.
35240         (restore_target_globals): Update accordingly.
35241         * target-globals.c: Don't include lra-int.h.
35242         (default_target_globals, save_target_globals): Remove lra_int.
35243
35244 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35245
35246         * recog.h (operand_alternative): Convert reg_class, reject,
35247         matched and matches into bitfields.
35248         (preprocess_constraints): New overload.
35249         (preprocess_insn_constraints): New function.
35250         (preprocess_constraints): Take the insn as parameter.
35251         (recog_op_alt): Change into a pointer.
35252         (target_recog): Add x_op_alt.
35253         * recog.c (asm_op_alt): New variable.
35254         (recog_op_alt): Change into a pointer.
35255         (preprocess_constraints): New overload, replacing the old function
35256         definition with one that doesn't use global state.
35257         (preprocess_insn_constraints): New function.
35258         (preprocess_constraints): Use them.  Take the insn as parameter.
35259         Use asm_op_alt for asms.
35260         (recog_init): Free existing x_op_alt entries.
35261         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
35262         pointer const.
35263         (make_early_clobber_and_input_conflicts): Likewise.
35264         (process_bb_node_lives): Pass the insn to process_constraints.
35265         * reg-stack.c (check_asm_stack_operands): Likewise.
35266         (subst_asm_stack_regs): Likewise.
35267         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
35268         * regrename.c (build_def_use): Likewise.
35269         * sched-deps.c (sched_analyze_insn): Likewise.
35270         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
35271         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
35272         (note_invalid_constants): Likewise.
35273         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
35274         (ix86_legitimate_combined_insn): Make operand_alternative pointer
35275         const.
35276
35277 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35278
35279         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
35280         * ira-lives.c (check_and_make_def_conflict): Check for disabled
35281         alternatives.
35282         (make_early_clobber_and_input_conflicts): Likewise.
35283         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
35284
35285 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35286
35287         * recog.h (alternative_class): New function.
35288         (which_op_alt): Return a const recog_op_alt.
35289         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
35290         (subst_asm_stack_regs): Likewise.
35291         * config/arm/arm.c (note_invalid_constants): Likewise.
35292         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
35293         the operand_alternative; use alternative class instead.
35294         * sel-sched.c (get_reg_class): Likewise.
35295         * regrename.c (build_def_use): Likewise.
35296         (hide_operands, restore_operands, record_out_operands): Update type
35297         accordingly.
35298
35299 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35300
35301         * recog.h (recog_op_alt): Convert to a flat array.
35302         (which_op_alt): New function.
35303         * recog.c (recog_op_alt): Convert to a flat array.
35304         (preprocess_constraints): Update accordingly, grouping all
35305         operands of the same alternative together, rather than the
35306         other way around.
35307         * ira-lives.c (check_and_make_def_conflict): Likewise.
35308         (make_early_clobber_and_input_conflicts): Likewise.
35309         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
35310         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
35311         (subst_asm_stack_regs): Likewise.
35312         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
35313         * regrename.c (hide_operands, record_out_operands): Likewise.
35314         (build_def_use): Likewise.
35315         * sel-sched.c (get_reg_class): Likewise.
35316         * config/arm/arm.c (note_invalid_constants): Likewise.
35317
35318 2014-06-04  Jason Merrill  <jason@redhat.com>
35319
35320         PR c++/51253
35321         PR c++/61382
35322         * gimplify.c (gimplify_arg): Non-static.
35323         * gimplify.h: Declare it.
35324
35325 2014-06-04  Richard Biener  <rguenther@suse.de>
35326
35327         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
35328         TREE_PUBLIC and DECL_EXTERNAL decls.
35329
35330 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
35331
35332         * regcprop.c (copyprop_hardreg_forward_1): Account for
35333         HARD_REGNO_CALL_PART_CLOBBERED.
35334
35335 2014-06-04  Richard Biener  <rguenther@suse.de>
35336
35337         * configure.ac: Check whether the underlying type of int64_t
35338         is long or long long.
35339         * configure: Regenerate.
35340         * config.in: Likewise.
35341         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
35342         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35343
35344 2014-06-04  Richard Biener  <rguenther@suse.de>
35345
35346         PR tree-optimization/60098
35347         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
35348         we hit a kill.
35349         (dse_optimize_stmt): Simplify, now that we found a kill
35350         earlier.
35351
35352 2014-06-04  Richard Biener  <rguenther@suse.de>
35353
35354         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
35355         of accesses with non-invariant address.
35356
35357 2014-06-04  Martin Liska  <mliska@suse.cz>
35358
35359         * cgraph.h (cgraph_make_wrapper): New function introduced.
35360         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
35361         * ipa-inline.h (inline_analyze_function): The function is global.
35362         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
35363
35364 2014-06-04  Martin Liska  <mliska@suse.cz>
35365
35366         * tree.h (private_lookup_attribute_starting): New function.
35367         (lookup_attribute_starting): Likewise.
35368         * tree.c (private_lookup_attribute_starting): Likewise.
35369
35370 2014-06-04  Martin Liska  <mliska@suse.cz>
35371
35372         * cgraph.h (expand_thunk): New argument added.
35373         (address_taken_from_non_vtable_p): New global function.
35374         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
35375         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
35376         * cgraphunit.c (analyze_function): Likewise.
35377         (assemble_thunks_and_aliases): Argument added to call.
35378         (expand_thunk): New argument forces to produce GIMPLE thunk.
35379
35380 2014-06-04  Martin Liska  <mliska@suse.cz>
35381
35382         * coverage.h (coverage_compute_cfg_checksum): Argument added.
35383         * coverage.c (coverage_compute_cfg_checksum): Likewise.
35384         * profile.c (branch_prob): Likewise.
35385
35386 2014-06-04  Martin Jambor  <mjambor@suse.cz>
35387
35388         PR ipa/61340
35389         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
35390         handler for switch on an ipa_ref_use enum.
35391         * ipa-reference.c (analyze_function): Likewise.
35392
35393 2014-06-04  Kai Tietz  <ktietz@redhat.com>
35394
35395         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
35396         from old call-instruction.
35397
35398 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
35399
35400         * config/aarch64/aarch64.c (aarch64_classify_address)
35401         (aarch64_legitimize_reload_address): Support full addressing modes
35402         for vector modes.
35403         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
35404         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
35405
35406 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35407
35408         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
35409         for OP0.
35410
35411 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35412
35413         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
35414         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
35415
35416 2014-06-03  Kai Tietz  <ktietz@redhat.com>
35417
35418         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
35419         for 64-bit ms-abi.
35420
35421 2014-06-03  Dehao Chen  <dehao@google.com>
35422
35423         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
35424         the same loop.
35425
35426 2014-06-03  Marek Polacek  <polacek@redhat.com>
35427
35428         PR c/60439
35429         * doc/invoke.texi: Document -Wswitch-bool.
35430         * function.c (stack_protect_epilogue): Cast controlling expression of
35431         the switch to int.
35432         * gengtype.c (walk_type): Generate switch expression with its
35433         controlling expression cast to int.
35434
35435 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
35436
35437         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
35438         and attiny841.
35439         * config/avr/avr-tables.opt: Regenerate.
35440         * config/avr/t-multilib: Regenerate.
35441         * doc/avr-mmcu.texi: Regenerate.
35442
35443 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
35444             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
35445
35446         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
35447         (ata6617c, ata664251): Add new avr35 devices.
35448         (ata6612c): Add new avr4 device.
35449         (ata6613c, ata6614q): Add new avr5 devices.
35450         * config/avr/avr-tables.opt: Regenerate.
35451         * config/avr/t-multilib: Regenerate.
35452         * doc/avr-mmcu.texi: Regenerate.
35453
35454 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35455
35456         * gcc/config/aarch64/aarch64-builtins.c
35457         (aarch64_types_binop_ssu_qualifiers): New static data.
35458         (TYPES_BINOP_SSU): Define.
35459         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
35460         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
35461         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
35462         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
35463         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
35464         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
35465         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
35466         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
35467         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
35468         suffix to builtin function name, remove cast.
35469         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
35470         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
35471         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
35472
35473 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35474
35475         * gcc/config/aarch64/aarch64-builtins.c
35476         (aarch64_types_binop_uus_qualifiers,
35477         aarch64_types_shift_to_unsigned_qualifiers,
35478         aarch64_types_unsigned_shiftacc_qualifiers): Define.
35479         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
35480         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
35481         sqshlu_n, uqshl_n): Update qualifiers.
35482         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
35483         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
35484         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
35485         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
35486         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
35487         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
35488         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
35489         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
35490         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
35491         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
35492         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
35493         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
35494         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
35495         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
35496         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
35497         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
35498         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
35499         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
35500         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
35501         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
35502         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
35503         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
35504         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
35505         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
35506         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
35507         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
35508         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
35509
35510 2014-06-03  Teresa Johnson  <tejohnson@google.com>
35511
35512         * tree-sra.c (modify_function): Record caller nodes after rebuild.
35513
35514 2014-06-02  Jason Merrill  <jason@redhat.com>
35515
35516         PR c++/61020
35517         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
35518
35519 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35520
35521         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
35522         location == 0.
35523
35524 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35525
35526         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
35527         New pattern.
35528         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
35529         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
35530         * config/aarch64/iterators.md (REVERSE): New iterator.
35531         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
35532         (rev_op): New int_attribute.
35533         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
35534         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
35535         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
35536         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
35537         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
35538         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
35539         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
35540         Replace temporary __asm__ with __builtin_shuffle.
35541
35542 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35543
35544         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
35545         mips64r5.
35546         * config/mips/mips-tables.opt: Regenerate.
35547         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
35548         to use mips_isa_rev rather than ISA_MIPS32R2.
35549         * config/mips/mips.h (ISA_MIPS32R3): New define.
35550         (ISA_MIPS32R5): New define.
35551         (ISA_MIPS64R3): New define.
35552         (ISA_MIPS64R5): New define.
35553         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
35554         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
35555         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
35556         and mips64r5.
35557         (MIPS_ISA_SYNCI_SPEC): Likewise.
35558         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
35559         (LINK_SPEC): Added mips32r3 and mips32r5.
35560         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
35561         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
35562         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
35563         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
35564         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
35565         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
35566         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
35567
35568 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35569
35570         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35571         options.
35572         * config/mips/mips.opt (mxpa): New option.
35573         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35574         assembler.
35575
35576 2014-06-03  Martin Jambor  <mjambor@suse.cz>
35577
35578         PR ipa/61160
35579         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35580         thunks.
35581
35582 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35583
35584         PR tree-optimization/61328
35585         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35586         initialization from find_bswap_or_nop_1.
35587         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35588         in source_expr2 before using the size value the function sets. Also
35589         make use of init_symbolic_number () in both the old place and
35590         find_bswap_or_nop_load () to avoid reading uninitialized memory when
35591         doing recursion in the GIMPLE_BINARY_RHS case.
35592
35593 2014-06-03  Richard Biener  <rguenther@suse.de>
35594
35595         PR tree-optimization/61383
35596         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35597         stmts can't trap.
35598
35599 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
35600
35601         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35602         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35603         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35604         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35605         in this file.
35606         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35607         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35608         * system.h: ...here and make it unconditional.
35609         * target.def (conditional_register_usage): Mention
35610         define_register_constraint instead of old-style constraint macros.
35611         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35612         * doc/tm.texi: Regenerate.
35613         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35614         protected by !USE_MD_CONSTRAINTS.
35615         * config/frv/frv.md: Remove quote from old version of documentation.
35616         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35617         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35618         CONST_DOUBLE_OK_FOR_LETTER.
35619         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35620
35621 2014-06-02  Andrew Pinski  <apinski@cavium.com>
35622
35623         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35624         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35625         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35626         file whose name depends on -mabi= and -mbig-endian.
35627         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35628         Handle LP64 better and handle ilp32 too.
35629         (MULTILIB_OPTIONS): Delete.
35630         (MULTILIB_DIRNAMES): Delete.
35631
35632 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
35633
35634         * expr.h: Remove prototypes of functions defined in builtins.c.
35635         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35636         Remove prototypes of functions defined in builtins.c.
35637         * builtins.h: Update prototype list to include all exported functions.
35638         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35639         no_c99_libc_has_function): Move to targhooks.c
35640         (build_string_literal, build_call_expr_loc_array,
35641         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35642         to tree.c.
35643         (expand_builtin_object_size, fold_builtin_object_size): Make static.
35644         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35645         no_c99_libc_has_function): Relocate from builtins.c.
35646         * tree.c: Include builtins.h.
35647         (build_call_expr_loc_array, build_call_expr_loc_vec,
35648         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35649         from builtins.c.
35650         * fold-const.h (fold_fma): Move prototype to builtins.h.
35651         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35652         * asan.c: Include builtins.h.
35653         * cfgexpand.c: Likewise.
35654         * convert.c: Likewise.
35655         * emit-rtl.c: Likewise.
35656         * except.c: Likewise.
35657         * expr.c: Likewise.
35658         * fold-const.c: Likewise.
35659         * gimple-fold.c: Likewise.
35660         * gimple-ssa-strength-reduction.c: Likewise.
35661         * gimplify.c: Likewise.
35662         * ipa-inline.c: Likewise.
35663         * ipa-prop.c: Likewise.
35664         * lto-streamer-out.c: Likewise.
35665         * stmt.c: Likewise.
35666         * tree-inline.c: Likewise.
35667         * tree-object-size.c: Likewise.
35668         * tree-sra.c: Likewise.
35669         * tree-ssa-ccp.c: Likewise.
35670         * tree-ssa-forwprop.c: Likewise.
35671         * tree-ssa-loop-ivcanon.c: Likewise.
35672         * tree-ssa-loop-ivopts.c: Likewise.
35673         * tree-ssa-math-opts.c: Likewise.
35674         * tree-ssa-reassoc.c: Likewise.
35675         * tree-ssa-threadedge.c: Likewise.
35676         * tree-streamer-in.c: Likewise.
35677         * tree-vect-data-refs.c: Likewise.
35678         * tree-vect-patterns.c: Likewise.
35679         * tree-vect-stmts.c: Likewise.
35680         * config/aarch64/aarch64.c: Likewise.
35681         * config/alpha/alpha.c: Likewise.
35682         * config/arc/arc.c: Likewise.
35683         * config/arm/arm.c: Likewise.
35684         * config/avr/avr.c: Likewise.
35685         * config/bfin/bfin.c: Likewise.
35686         * config/c6x/c6x.c: Likewise.
35687         * config/cr16/cr16.c: Likewise.
35688         * config/cris/cris.c: Likewise.
35689         * config/epiphany/epiphany.c: Likewise.
35690         * config/fr30/fr30.c: Likewise.
35691         * config/frv/frv.c: Likewise.
35692         * config/h8300/h8300.c: Likewise.
35693         * config/i386/i386.c: Likewise.
35694         * config/i386/winnt.c: Likewise.
35695         * config/ia64/ia64.c: Likewise.
35696         * config/iq2000/iq2000.c: Likewise.
35697         * config/lm32/lm32.c: Likewise.
35698         * config/m32c/m32c.c: Likewise.
35699         * config/m32r/m32r.c: Likewise.
35700         * config/m68k/m68k.c: Likewise.
35701         * config/mcore/mcore.c: Likewise.
35702         * config/mep/mep.c: Likewise.
35703         * config/microblaze/microblaze.c: Likewise.
35704         * config/mips/mips.c: Likewise.
35705         * config/mmix/mmix.c: Likewise.
35706         * config/mn10300/mn10300.c: Likewise.
35707         * config/moxie/moxie.c: Likewise.
35708         * config/msp430/msp430.c: Likewise.
35709         * config/nds32/nds32.c: Likewise.
35710         * config/pa/pa.c: Likewise.
35711         * config/pdp11/pdp11.c: Likewise.
35712         * config/picochip/picochip.c: Likewise.
35713         * config/rl78/rl78.c: Likewise.
35714         * config/rs6000/rs6000.c: Likewise.
35715         * config/rx/rx.c: Likewise.
35716         * config/s390/s390.c: Likewise.
35717         * config/score/score.c: Likewise.
35718         * config/sh/sh.c: Likewise.
35719         * config/sparc/sparc.c: Likewise.
35720         * config/spu/spu.c: Likewise.
35721         * config/stormy16/stormy16.c: Likewise.
35722         * config/tilegx/tilegx.c: Likewise.
35723         * config/tilepro/tilepro.c: Likewise.
35724         * config/v850/v850.c: Likewise.
35725         * config/vax/vax.c: Likewise.
35726         * config/xtensa/xtensa.c: Likewise.
35727
35728 2014-06-02  Jeff Law  <law@redhat.com>
35729
35730         PR rtl-optimization/61094
35731         * ree.c (combine_reaching_defs): Do not reextend an insn if it
35732         was marked as do_no_reextend.  If a copy is needed to eliminate
35733         an extension, then mark it as do_not_reextend.
35734
35735 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35736
35737         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35738
35739 2014-06-02  Richard Henderson  <rth@redhat.com>
35740
35741         PR target/61336
35742         * config/alpha/alpha.c (print_operand_address): Allow symbolic
35743         addresses inside asms.  Use output_operand_lossage instead of
35744         gcc_unreachable.
35745
35746 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
35747
35748         PR target/61239
35749         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35750         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35751
35752 2014-06-02  Tom de Vries  <tom@codesourcery.com>
35753
35754         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35755         case that x has VOIDmode.
35756
35757 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
35758
35759         * varasm.c (copy_constant): Delete function.
35760         (build_constant_desc): Don't call it.
35761
35762 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35763
35764         PR target/61154
35765         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35766         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35767         with immediate_operand.
35768
35769 2014-06-02  Andreas Schwab  <schwab@suse.de>
35770
35771         * config/ia64/ia64.c
35772         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35773         pending_data_specs first.
35774
35775 2014-06-02  Richard Biener  <rguenther@suse.de>
35776
35777         PR tree-optimization/61378
35778         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35779         valueized_anything.
35780
35781 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
35782
35783         * config/i386/constraints.md (Bw): Rename from 'w'.
35784         (Bz): Rename from 'z'.
35785         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35786
35787 2014-06-01  Kai Tietz  <ktietz@redhat.com>
35788
35789         PR target/61377
35790         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35791         * config/i386/i386.md (sibcall_insn_operand): Use Bs
35792         instead of m constraint.
35793
35794 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
35795
35796         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35797         a separate alternative where the scratch operand 2 is marked as
35798         early clobber.
35799
35800 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
35801
35802         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35803         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35804         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35805         and __builtins_arm_get_fpscr.
35806         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35807         __builtins_arm_get_fpscr.
35808         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35809         __builtins_arm_ldfpscr.
35810         (arm_atomic_assign_expand_fenv): New function.
35811         * config/arm/vfp.md (set_fpscr): New pattern.
35812         (get_fpscr) : Likewise.
35813         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35814         VUNSPEC_SET_FPSCR.
35815         * doc/extend.texi (AARCH64 Built-in Functions) : Document
35816         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35817
35818 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
35819
35820         * asan.c (report_error_func): Add SLOW_P argument, use
35821         BUILT_IN_ASAN_*_N if set.
35822         (build_check_stmt): Likewise.
35823         (instrument_derefs): If T has insufficient alignment,
35824         force same handling as for odd sizes.
35825
35826         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35827         BUILT_IN_ASAN_REPORT_STORE_N): New.
35828         * asan.c (struct asan_mem_ref): Change access_size type to
35829         HOST_WIDE_INT.
35830         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35831         update_mem_ref_hash_table): Likewise.
35832         (asan_mem_ref_hasher::hash): Hash in a HWI.
35833         (report_error_func): Change size_in_bytes argument to HWI.
35834         Use *_N builtins if size_in_bytes is larger than 16 or not power of
35835         two.
35836         (build_shadow_mem_access): New function.
35837         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
35838         Handle size_in_bytes not power of two or larger than 16.
35839         (instrument_derefs): Don't give up if size_in_bytes is not
35840         power of two or is larger than 16.
35841
35842 2014-05-30  Kai Tietz  <ktietz@redhat.com>
35843
35844         PR target/60104
35845         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35846         for sibling-tail-calls.
35847         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35848         to its use.
35849         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35850         (sibcall_insn_operand): Add check for sibcall_memory_operand.
35851
35852 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35853
35854         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35855         * config/avr/avr-tables.opt: Regenerate.
35856         * config/avr/t-multilib: Regenerate.
35857         * doc/avr-mmcu.texi: Regenerate.
35858
35859 2014-05-30  Ian Lance Taylor  <iant@google.com>
35860
35861         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35862         target("sse").
35863
35864 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35865
35866         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35867         Redefine as true.
35868
35869 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35870
35871         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35872         * lra.c (initialize_lra_reg_info_element): Add init of
35873         actual_call_used_reg_set field.
35874         (lra): Call lra_create_live_ranges before lra_inheritance for
35875         -fuse-caller-save.
35876         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35877         -fuse-caller-save.
35878         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35879         instead of call_used_reg_set for -fuse-caller-save.
35880         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35881
35882 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35883
35884         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35885         to mov_imm.
35886         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35887
35888 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
35889
35890         * ira.c (ira_get_dup_out_num): Check for output operands at
35891         the start of the loop.  Handle cases where an included alternative
35892         follows an excluded one.
35893
35894 2014-05-29  Mike Stump  <mikestump@comcast.net>
35895
35896         PR debug/61352
35897         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35898         post ld passes when lto is used.
35899
35900 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
35901
35902         PR rtl-optimization/61325
35903         * lra-constraints.c (process_address): Rename to process_address_1.
35904         (process_address): New function.
35905
35906 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
35907
35908         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35909         TYPES_BINOPV): New static data.
35910         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35911         New builtin.
35912         * config/aarch64/aarch64-simd.md (aarch64_ext,
35913         aarch64_im_lane_boundsi): New patterns.
35914         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35915         patterns for EXT.
35916         (aarch64_evpc_ext): New function.
35917
35918         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35919
35920         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35921         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35922         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35923         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35924         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35925
35926 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35927
35928         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35929
35930 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
35931             Richard Sandiford  <rdsandiford@googlemail.com>
35932
35933         * arm/iterators.md (shiftable_ops): New code iterator.
35934         (t2_binop0, arith_shift_insn): New code attributes.
35935         * arm/predicates.md (shift_nomul_operator): New predicate.
35936         * arm/arm.md (insn_enabled): Delete.
35937         (enabled): Remove insn_enabled test.
35938         (*arith_shiftsi): Delete.  Replace with ...
35939         (*<arith_shift_insn>_multsi): ... new pattern.
35940         (*<arith_shift_insn>_shiftsi): ... new pattern.
35941         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35942
35943 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
35944             Tom de Vries  <tom@codesourcery.com>
35945
35946         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35947         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35948         clobber.
35949         (mips_split_call): Use POST_CALL_TMP_REG.
35950         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35951
35952 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35953
35954         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35955         with #ifdef STACK_REGS.
35956
35957 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
35958
35959         * varasm.c (get_variable_section): Walk aliases.
35960         (place_block_symbol): Walk aliases.
35961
35962 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35963
35964         Revert:
35965         2014-05-28  Tom de Vries  <tom@codesourcery.com>
35966
35967         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35968         * lra.c (initialize_lra_reg_info_element): Add init of
35969         actual_call_used_reg_set field.
35970         (lra): Call lra_create_live_ranges before lra_inheritance for
35971         -fuse-caller-save.
35972         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35973         -fuse-caller-save.
35974         * lra-constraints.c (need_for_call_save_p): Use
35975         actual_call_used_reg_set instead of call_used_reg_set for
35976         -fuse-caller-save.
35977         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35978
35979 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35980
35981         * doc/md.texi: Document that the % constraint character must
35982         be at the beginning of the string.
35983         * genoutput.c (validate_insn_alternatives): Check that '=',
35984         '+' and '%' only appear at the beginning of a constraint.
35985         * ira.c (commutative_constraint_p): Delete.
35986         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35987         at the start of the string.
35988         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35989         duplicate '='s.
35990         * config/arm/neon.md (bicdi3_neon): Likewise.
35991         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35992         (slt_si, sltu_si): Likewise.
35993         * config/vax/vax.md (sbcdi3): Likewise.
35994         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35995         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35996         (mul64): Move '%' to beginning of constraint.
35997         * config/arm/arm.md (*xordi3_insn): Likewise.
35998         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35999         (xorsi3): Likewise.
36000
36001 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
36002
36003         * doc/md.texi: Document the restrictions on the "enabled" attribute.
36004
36005 2014-05-28  Jason Merrill  <jason@redhat.com>
36006
36007         PR c++/47202
36008         * cgraph.h (symtab_node::get_comdat_group_id): New.
36009         * cgraphunit.c (analyze_functions): Call it.
36010         * symtab.c (dump_symtab_node): Likewise.
36011         * tree.c (decl_comdat_group_id): New.
36012         * tree.h: Declare it.
36013         * lto-streamer-out.c (write_symbol): Use it.
36014         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
36015
36016 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36017
36018         PR bootstrap/PR61146
36019         * wide-int.cc: Do not include longlong.h when compiling with clang.
36020
36021 2014-05-28  Richard Biener  <rguenther@suse.de>
36022
36023         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
36024         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
36025         (vrp_visit_assignment_or_call): Print less vertical space.
36026         (vrp_visit_stmt): Likewise.
36027         (vrp_visit_phi_node): Likewise.  For a PHI argument with
36028         VR_VARYING range consider recording it as copy.
36029
36030 2014-05-28  Richard Biener  <rguenther@suse.de>
36031
36032         Revert
36033         2014-05-28  Richard Biener  <rguenther@suse.de>
36034
36035         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
36036
36037 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36038
36039         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
36040         sufficiently aligned and an offset is used at the same time.
36041         (expand_expr_real_1): Likewise.
36042
36043 2014-05-28  Richard Biener  <rguenther@suse.de>
36044
36045         PR middle-end/61045
36046         * fold-const.c (fold_comparison): When folding
36047         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
36048         the sign of the remaining constant operand stays the same.
36049
36050 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
36051
36052         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
36053         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
36054         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
36055         to the assembler.
36056         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
36057         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
36058         (m32bit-doubles) Likewise.
36059         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
36060         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
36061         option for RL78.
36062
36063 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36064
36065         * configure.ac ($gcc_cv_ld_clearcap): New test.
36066         * configure: Regenerate.
36067         * config.in: Regenerate.
36068         * config/sol2.opt (mclear-hwcap): New option.
36069         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
36070         * config/sol2-clearcap.map: Moved here from
36071         testsuite/gcc.target/i386/clearcap.map.
36072         * config/sol2-clearcapv2.map: Move here from
36073         gcc.target/i386/clearcapv2.map.
36074         * config/t-sol2 (install): Depend on install-clearcap-map.
36075         (install-clearcap-map): New target.
36076         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
36077         -mclear-hwcap.
36078
36079 2014-05-28  Richard Biener  <rguenther@suse.de>
36080
36081         * hwint.h (*_HALF_WIDE_INT*): Move to ...
36082         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
36083         ... here and remove the rest.
36084         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
36085
36086 2014-05-28  Richard Biener  <rguenther@suse.de>
36087
36088         PR tree-optimization/61335
36089         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
36090         new range fails, drop to varying.
36091
36092 2014-05-28  Olivier Hainque  <hainque@adacore.com>
36093
36094         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
36095         (CPP_SPEC): Add entry for -mcpu=8548.
36096         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
36097         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
36098
36099 2014-05-28  Tom de Vries  <tom@codesourcery.com>
36100
36101         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
36102         * lra.c (initialize_lra_reg_info_element): Add init of
36103         actual_call_used_reg_set field.
36104         (lra): Call lra_create_live_ranges before lra_inheritance for
36105         -fuse-caller-save.
36106         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
36107         -fuse-caller-save.
36108         * lra-constraints.c (need_for_call_save_p): Use
36109         actual_call_used_reg_set instead of call_used_reg_set for
36110         -fuse-caller-save.
36111         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
36112
36113 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36114             Tom de Vries  <tom@codesourcery.com>
36115
36116         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
36117         to gccoptlist.
36118         (@item -fuse-caller-save): New item.
36119
36120 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36121             Tom de Vries  <tom@codesourcery.com>
36122
36123         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
36124         OPT_fuse_caller_save.
36125
36126 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36127             Tom de Vries  <tom@codesourcery.com>
36128
36129         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
36130         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
36131         get_call_reg_set_usage.
36132         * resource.c (mark_set_resources, mark_target_live_regs): Use
36133         get_call_reg_set_usage.
36134         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
36135         field.
36136         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
36137         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
36138         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
36139         * ira-build.c (ira_create_allocno): Init
36140         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
36141         (create_cap_allocno, propagate_allocno_info)
36142         (propagate_some_info_from_allocno)
36143         (copy_info_to_removed_store_destinations): Handle
36144         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
36145         * ira-costs.c (ira_tune_allocno_costs): Use
36146         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
36147
36148 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36149             Tom de Vries  <tom@codesourcery.com>
36150
36151         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
36152         and function_used_regs_valid fields.
36153         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
36154         find_all_hard_reg_sets.
36155         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
36156         (get_call_reg_set_usage): New function.
36157         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
36158         * regs.h (get_call_reg_set_usage): Declare.
36159
36160 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
36161
36162         PR libgcc/61152
36163         * config/dbx.h (License): Add Runtime Library Exception.
36164         * config/newlib-stdint.h (License): Same.
36165         * config/rtems.h (License): Same
36166         * config/initfini-array.h (License): Same
36167         * config/v850/v850.h (License): Same.
36168         * config/v850/v850-opts.h (License): Same
36169         * config/v850/rtems.h (License): Same.
36170
36171 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
36172
36173         PR target/61044
36174         * doc/extend.texi (Local Labels): Note that label differences are
36175         not supported for AVR.
36176
36177 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
36178             Olivier Hainque  <hainque@adacore.com>
36179
36180         * rtl.h (set_for_reg_notes): Declare.
36181         * emit-rtl.c (set_for_reg_notes): New function.
36182         (set_unique_reg_note): Use it.
36183         * optabs.c (add_equal_note): Likewise
36184
36185 2014-05-27  Andrew Pinski  <apinski@cavium.com>
36186
36187         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
36188         Use <w> for the register in assembly template.
36189         (stack_protect_test): Use the mode of operands[0] for the result.
36190         (stack_protect_test_<mode>): Use <w> for the register
36191         in assembly template.
36192
36193 2014-05-27  DJ Delorie  <dj@redhat.com>
36194
36195         * config/rx/rx.c (add_vector_labels): New.
36196         (rx_output_function_prologue): Call it.
36197         (rx_handle_func_attribute): Don't require empty arguments.
36198         (rx_handle_vector_attribute): New.
36199         (rx_attribute_table): Add "vector" attribute.
36200         * doc/extend.texi (interrupt, vector): Document new/changed
36201         RX-specific attributes.
36202
36203         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
36204
36205 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
36206
36207         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
36208         predicate to detect a negative quotient.
36209
36210 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
36211
36212         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
36213         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
36214         Add X - Y CMP 0 to X CMP Y transformation.
36215         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
36216
36217 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
36218
36219         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
36220         before printing.
36221
36222 2014-05-27  Steve Ellcey  <sellcey@mips.com>
36223
36224         * config/mips/mips.c: Add include of cgraph.h.
36225
36226 2014-05-27  Richard Biener  <rguenther@suse.de>
36227
36228         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
36229
36230 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
36231
36232         PR libgcc/61152
36233         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
36234         * config/arm/arm-cores.def (License): Same.
36235         * config/arm/arm-opts.h (License): Same.
36236         * config/arm/aout.h (License): Same.
36237         * config/arm/bpabi.h (License): Same.
36238         * config/arm/elf.h (License): Same.
36239         * config/arm/linux-elf.h (License): Same.
36240         * config/arm/linux-gas.h (License): Same.
36241         * config/arm/netbsd-elf.h (License): Same.
36242         * config/arm/uclinux-eabi.h (License): Same.
36243         * config/arm/uclinux-elf.h (License): Same.
36244         * config/arm/vxworks.h (License): Same.
36245
36246 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36247
36248         * config/arm/neon.md (neon_bswap<mode>): New pattern.
36249         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
36250         (arm_init_neon_builtins): Handle NEON_BSWAP.
36251         Define required type nodes.
36252         (arm_expand_neon_builtin): Handle NEON_BSWAP.
36253         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
36254         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
36255         * config/arm/iterators.md (VDQHSD): New mode iterator.
36256
36257 2014-05-27  Richard Biener  <rguenther@suse.de>
36258
36259         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
36260         Try using literal operands when comparing value-ranges failed.
36261
36262 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
36263
36264         * ira.c (commutative_operand): Adjust for change to recog_data.
36265         [Missing from previous commit.]
36266
36267 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
36268
36269         * system.h (TEST_BIT): New macro.
36270         * recog.h (alternative_mask): New type.
36271         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
36272         (recog_data_d): Replace alternative_enabled_p array with
36273         enabled_alternatives.
36274         (target_recog): New structure.
36275         (default_target_recog, this_target_recog): Declare.
36276         (get_enabled_alternatives, recog_init): Likewise.
36277         * recog.c (default_target_recog, this_target_recog): New variables.
36278         (get_enabled_alternatives): New function.
36279         (extract_insn): Use it.
36280         (recog_init): New function.
36281         (preprocess_constraints, constrain_operands): Adjust for change to
36282         recog_data.
36283         * postreload.c (reload_cse_simplify_operands): Likewise.
36284         * reload.c (find_reloads): Likewise.
36285         * ira-costs.c (record_reg_classes): Likewise.
36286         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
36287         all alternatives after a disabled one would be skipped.
36288         (ira_implicitly_set_insn_hard_regs): Likewise.
36289         * ira.c (ira_setup_alts): Adjust for change to recog_data.
36290         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
36291         with enabled_alternatives.
36292         * lra.c (free_insn_recog_data): Update accordingly.
36293         (lra_update_insn_recog_data): Likewise.
36294         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
36295         * lra-constraints.c (process_alt_operands): Likewise.  Handle
36296         only_alternative as part of the enabled mask.
36297         * target-globals.h (this_target_recog): Declare.
36298         (target_globals): Add a recog field.
36299         (restore_target_globals): Restore this_target_recog.
36300         * target-globals.c: Include recog.h.
36301         (default_target_globals): Initialize recog field.
36302         (save_target_globals): Likewise.
36303         * reginfo.c (reinit_regs): Call recog_init.
36304         * toplev.c (backend_init_target): Likewise.
36305
36306 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
36307
36308         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
36309         rather than any named insn's code.
36310
36311 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
36312
36313         PR libgcc/61152
36314         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
36315         * config/arm/arm-cores.def (License): Same.
36316
36317 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
36318
36319         * tree.h (decl_comdat_group): Declare.
36320         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
36321         * tree.c (decl_comdat_group): Here.
36322
36323 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
36324
36325         PR rtl-optimization/61222
36326         * combine.c (simplify_shift_const_1): When moving a PLUS outside
36327         the shift, truncate the PLUS operand to the result mode.
36328
36329 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
36330
36331         PR target/61271
36332         * config/i386/i386.c (ix86_rtx_costs)
36333         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
36334         Fix condition.
36335
36336 2014-05-26  Martin Jambor  <mjambor@suse.cz>
36337
36338         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
36339         subreg uses.
36340
36341 2014-05-26  Richard Biener  <rguenther@suse.de>
36342
36343         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
36344         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
36345         Provide specializations.
36346         (wi::int_traits <HOST_WIDE_INT>,
36347         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
36348
36349 2014-05-26  Alan Modra  <amodra@gmail.com>
36350
36351         PR target/61098
36352         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
36353         params and return a bool.  Remove dead code.  Update comment.
36354         Assert we have a const_int source.  Remove bogus code from
36355         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
36356         handling of constants > 2G and reg_equal note, from..
36357         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
36358         return value.  Update comment.  If we can, use a new pseudo
36359         for intermediate calculations.
36360         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
36361         prototype.
36362         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
36363         call to rs6000_emit_set_const in splitter.
36364         (movdi_internal64+2, +3): Likewise.
36365
36366 2014-05-26  Richard Biener  <rguenther@suse.de>
36367
36368         * system.h: Define __STDC_FORMAT_MACROS before
36369         including inttypes.h.
36370         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
36371         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
36372         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
36373         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
36374         HOST_WIDEST_INT_C): Remove.
36375         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
36376         if C99 inttypes.h is not available.
36377         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
36378         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
36379         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
36380         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
36381         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
36382         (struct output_info): Likewise.
36383         (print_statistics): Adjust.
36384         (dump_bitmap_statistics): Likewise.
36385         * bt-load.c (migrate_btr_defs): Print with PRId64.
36386         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
36387         (MAX_SAFE_MULTIPLIER): Adjust.
36388         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
36389         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
36390         dump_cgraph_node): Likewise.
36391         * final.c (dump_basic_block_info): Likewise.
36392         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
36393         * gcov.c (format_gcov): Likewise.
36394         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
36395         for calculation.
36396         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
36397         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
36398         (inline_small_functions, dump_overall_stats, dump_inline_stats):
36399         Use PRId64 for dumping.
36400         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
36401         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
36402         (add_allocno_hard_regs): Adjust.
36403         * loop-doloop.c (doloop_modify): Print using PRId64.
36404         * loop-iv.c (inverse): Compute in uint64_t.
36405         (determine_max_iter, iv_number_of_iterations): Likewise.
36406         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
36407         Print using PRId64.
36408         * lto-streamer-out.c (write_symbol): Use uint64_t.
36409         * mcf.c (CAP_INFINITY): Use int64_t maximum.
36410         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
36411         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
36412         * modulo-sched.c (const_iteration_count): Use int64_t.
36413         (sms_schedule): Dump using PRId64.
36414         * predict.c (dump_prediction): Likewise.
36415         * pretty-print.h (pp_widest_integer): Remove.
36416         * profile.c (get_working_sets, is_edge_inconsistent,
36417         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
36418         * tree-pretty-print.c (pp_double_int): Remove case handling
36419         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
36420         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
36421         and adjust users.
36422         (pass_optimize_bswap::execute): Remove restriction on hosts.
36423         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
36424         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
36425         * tree.c (widest_int_cst_value): Remove.
36426         * tree.h (widest_int_cst_value): Likewise.
36427         * value-prof.c (dump_histogram_value): Print using PRId64.
36428         * gengtype.c (main): Also inject int64_t.
36429         * ggc-page.c (struct max_alignment): Use int64_t.
36430         * alloc-pool.c (struct allocation_object_def): Likewise.
36431         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
36432         for computation.
36433         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
36434         * doc/tm.texi: Regenerated.
36435         * gengtype-lex.l (IWORD): Handle [u]int64_t.
36436         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
36437         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
36438         mmix_output_register_setting): Use [u]int64_t in prototypes.
36439         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
36440         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
36441         mmix_output_octa, mmix_output_shifted_value): Adjust.
36442         (mmix_intval): Adjust.  Remove unreachable case.
36443         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
36444
36445 2014-05-26  Richard Biener  <rguenther@suse.de>
36446
36447         * configure.ac: Drop __int64 type check.  Insist that we
36448         found uint64_t and int64_t.
36449         * hwint.h (HOST_BITS_PER___INT64): Remove.
36450         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
36451         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
36452         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
36453         (HOST_WIDEST_FAST_INT): Remove __int64 case.
36454         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
36455         for dst_q_src_df_rms_cdt.
36456         * configure: Regenerate.
36457         * config.in: Likewise.
36458
36459 2014-05-26  Michael Tautschnig  <mt@debian.org>
36460
36461         PR target/61249
36462         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
36463         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
36464
36465 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36466
36467         PR rtl-optimization/61278
36468         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
36469
36470 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36471
36472         PR rtl-optimization/61220
36473         Part of PR rtl-optimization/61225
36474         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
36475         insn; skip split_edge for a block with only one successor.
36476
36477 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36478
36479         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
36480         for variables.
36481
36482 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36483
36484         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
36485         (update_vtable_references): New function.
36486         (function_and_variable_visibility): Rewrite also vtable initializers.
36487         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
36488
36489 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36490
36491         * ggc.h (ggc_grow): New function.
36492         * ggc-none.c (ggc_grow): New function.
36493         * ggc-page.c (ggc_grow): Likewise.
36494
36495 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36496
36497         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
36498         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
36499         comdat_can_be_unshared_p, cgraph_externally_visible_p,
36500         varpool_externally_visible_p, can_replace_by_local_alias,
36501         update_visibility_by_resolution_info, function_and_variable_visibility,
36502         pass_data_ipa_function_and_variable_visibility,
36503         make_pass_ipa_function_and_variable_visibility,
36504         whole_program_function_and_variable_visibility,
36505         pass_data_ipa_whole_program_visibility,
36506         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
36507         * cgraph.h (cgraph_local_node_p): Declare.
36508         * ipa-visibility.c: New file.
36509         * Makefile.in (OBJS): Add ipa-visiblity.o
36510
36511 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36512
36513         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
36514         that var decl is available.
36515
36516 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36517
36518         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
36519         symtab_node pointer.
36520         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
36521         (find_decls_types_r): Do not walk COMDAT_GROUP.
36522         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
36523         * varasm.c (make_decl_one_only): Use set_comdat_group;
36524         create node if needed.
36525         * ipa-inline-transform.c (save_inline_function_body): Update
36526         way we decl->symtab mapping.
36527         * symtab.c (symtab_hash, hash_node, eq_node
36528         symtab_insert_node_to_hashtable): Remove.
36529         (symtab_register_node): Update.
36530         (symtab_unregister_node): Update.
36531         (symtab_get_node): Reimplement as inline function.
36532         (symtab_add_to_same_comdat_group): Update.
36533         (symtab_dissolve_same_comdat_group_list): Update.
36534         (dump_symtab_base): Update.
36535         (verify_symtab_base): Update.
36536         (symtab_make_decl_local): Update.
36537         (fixup_same_cpp_alias_visibility): Update.
36538         (symtab_nonoverwritable_alias): Update.
36539         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
36540         * ipa.c (update_visibility_by_resolution_info): UPdate.
36541         * bb-reorder.c: Include cgraph.h
36542         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
36543         with comdat groups.
36544         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
36545         * cgraph.c (cgraph_get_create_node): Update.
36546         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
36547         and comdat_group_.
36548         (symtab_get_node): Make inline.
36549         (symtab_insert_node_to_hashtable): Remove.
36550         (symtab_can_be_discarded): Update.
36551         (decl_comdat_group): New function.
36552         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
36553         Update.
36554         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
36555         comdat group name.
36556         (read_comdat_group): New function.
36557         (input_node, input_varpool_node): Use it.
36558         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
36559         comdat groups.
36560         * mips.c (mips_start_unique_function): Likewise.
36561         (ix86_code_end): Likewise.
36562         (rs6000_code_end): Likweise.
36563         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
36564
36565 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36566
36567         * gengtype-state.c (fatal_reading_state): Bring offline.
36568         * optabs.c (widening_optab_handler): Bring offline.
36569         * optabs.h (widening_optab_handler): Likewise.
36570         * final.c (get_attr_length_1): Likewise.
36571
36572 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36573
36574         * sched-int.h (sd_iterator_cond): Manually tail recurse.
36575
36576 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36577
36578         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36579         (ppc440-compare): Include shift with dot.
36580         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36581         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36582         without dot.
36583         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36584         without dot.
36585         (e6500_sfx2): Include it.
36586         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36587         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36588         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36589         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36590         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36591         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36592         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36593         *lshiftrt_internal1le, *lshiftrt_internal1be,
36594         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36595         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36596         *rotldi3_internal10le, *rotldi3_internal10be,
36597         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36598         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36599         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36600         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36601         define_insns): Use type "shift" in the appropriate alternatives.
36602
36603 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36604
36605         * config/rs6000/rs6000.md (type): Add "logical".  Delete
36606         "fast_compare".
36607         (dot): Adjust comment.
36608         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36609         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36610         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36611         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36612         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36613         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36614         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36615         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36616
36617         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36618         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36619         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36620         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36621         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36622         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36623         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36624         * config/rs6000/8540.md (ppc8540_su): Adjust.
36625         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36626         cell-cmp-microcoded): Adjust.
36627         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36628         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36629         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36630         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36631         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36632         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36633         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36634         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36635         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36636         Adjust.
36637         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36638         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36639         Adjust.  Adjust comment.
36640         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36641         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36642
36643 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36644
36645         * config/rs6000/rs6000.md (type): Add "add".
36646         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36647         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36648         define_insns): Use it.
36649         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36650
36651         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36652         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36653         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36654         * config/rs6000/601.md (ppc601-integer): Adjust.
36655         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36656         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36657         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36658         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36659         * config/rs6000/8540.md (ppc8540_su): Adjust.
36660         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36661         cell-cmp-microcoded): Adjust.
36662         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36663         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36664         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36665         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36666         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36667         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36668         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36669         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36670         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36671         Adjust.
36672         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36673         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36674         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36675         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36676
36677 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36678
36679         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36680         "delayed_compare", "var_delayed_compare".
36681         (var_shift): New attribute.
36682         (cell_micro): Adjust.
36683         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36684         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36685         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36686         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36687         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36688         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36689         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36690         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36691         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36692         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36693         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36694         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36695         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36696         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36697         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36698         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36699         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36700         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36701         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36702         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36703         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36704         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36705         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36706         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36707         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36708
36709         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36710         * config/rs6000/440.md (ppc440-integer): Adjust.
36711         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36712         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36713         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36714         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36715         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36716         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36717         * config/rs6000/8540.md (ppc8540_su): Adjust.
36718         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36719         cell-cmp-microcoded): Adjust.
36720         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36721         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36722         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36723         e500mc64_delayed): Adjust.
36724         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36725         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36726         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36727         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36728         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36729         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36730         power6-delayed-compare, power6-var-delayed-compare): Adjust.
36731         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36732         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36733         Adjust comment.
36734         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36735         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36736
36737 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36738
36739         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
36740         (bits): New mode_attr.
36741         (idiv_ldiv): Delete mode_attr.
36742         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36743         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36744         rs6000_adjust_priority, is_nonpipeline_insn,
36745         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36746
36747         * config/rs6000/40x.md (ppc403-idiv): Adjust.
36748         * config/rs6000/440.md (ppc440-idiv): Adjust.
36749         * config/rs6000/476.md (ppc476-idiv): Adjust.
36750         * config/rs6000/601.md (ppc601-idiv): Adjust.
36751         * config/rs6000/603.md (ppc603-idiv): Adjust.
36752         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36753         ppc620-ldiv): Adjust.
36754         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36755         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36756         * config/rs6000/8540.md (ppc8540_divide): Adjust.
36757         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36758         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36759         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36760         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36761         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36762         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36763         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36764         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36765         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36766         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36767         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36768         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36769         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36770         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36771         * config/rs6000/titan.md (titan_fxu_div): Adjust.
36772
36773 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36774
36775         * config/rs6000/rs6000.md (type): Delete "insert_word",
36776         "insert_dword".  Add "insert".
36777         (size): Update comment.
36778         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36779         insn_must_be_first_in_group): Adjust.
36780         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36781         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36782         *insvsi_internal6, insvdi_internal): Adjust.
36783
36784         * config/rs6000/40x.md (ppc403-integer): Adjust.
36785         * config/rs6000/440.md (ppc440-integer): Adjust.
36786         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36787         * config/rs6000/601.md (ppc601-integer): Adjust.
36788         * config/rs6000/603.md (ppc603-integer): Adjust.
36789         * config/rs6000/6xx.md (ppc604-integer): Adjust.
36790         * config/rs6000/7450.md (ppc7450-integer): Adjust.
36791         * config/rs6000/7xx.md (ppc750-integer): Adjust.
36792         * config/rs6000/8540.md (ppc8540_su): Adjust.
36793         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36794         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36795         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36796         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36797         * config/rs6000/e5500.md (e5500_sfx): Adjust.
36798         * config/rs6000/e6500.md (e6500_sfx): Adjust.
36799         * config/rs6000/mpc.md (mpccore-integer): Adjust.
36800         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36801         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36802         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36803         * config/rs6000/power7.md (power7-integer): Adjust.
36804         * config/rs6000/power8.md (power8-1cyc): Adjust.
36805         * config/rs6000/rs64.md (rs64a-integer): Adjust.
36806         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36807
36808 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36809
36810         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
36811         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36812         (size): New attribute.
36813         (dot): New attribute.
36814         (cell_micro): Adjust.
36815         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36816         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36817         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36818         umuldi3_highpart): Adjust.
36819         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36820         rs6000_adjust_priority, is_nonpipeline_insn,
36821         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36822
36823         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36824         ppc405-imul3): Adjust.
36825         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36826         * config/rs6000/476.md (ppc476-imul): Adjust.
36827         * config/rs6000/601.md (ppc601-imul): Adjust.
36828         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36829         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36830         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36831         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36832         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36833         Adjust.
36834         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36835         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36836         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36837         cell-imul): Adjust.
36838         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36839         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36840         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36841         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36842         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36843         * config/rs6000/mpc.md (mpccore-imul): Adjust.
36844         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36845         power4-lmul, power4-imul, power4-imul3): Adjust.
36846         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36847         power5-lmul, power5-imul, power5-imul3): Adjust.
36848         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36849         power6-lmul, power6-imul, power6-imul3): Adjust.
36850         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36851         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36852
36853         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36854         rs64a-lmul): Adjust.
36855         * config/rs6000/titan.md (titan_imul): Adjust.
36856
36857 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36858
36859         * config/rs6000/rs6000.md (type): Add new value "halfmul".
36860         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36861         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36862         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36863         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36864         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36865         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36866         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36867         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36868         * config/rs6000/titan.md: Delete nonsensical comment.
36869         (titan_imul): Add type imul3.
36870         (titan_mulhw): Remove type imul3; add type halfmul.
36871
36872 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36873
36874         * config/rs6000/rs6000.md (type): Reorder, reformat.
36875
36876 2014-05-23  Martin Jambor  <mjambor@suse.cz>
36877
36878         PR tree-optimization/53787
36879         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36880         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36881         analysis_done, update all uses.
36882         * ipa-prop.c: Include domwalk.h
36883         (param_analysis_info): Removed.
36884         (param_aa_status): New type.
36885         (ipa_bb_info): Likewise.
36886         (func_body_info): Likewise.
36887         (ipa_get_bb_info): New function.
36888         (aa_overwalked): Likewise.
36889         (find_dominating_aa_status): Likewise.
36890         (parm_bb_aa_status_for_bb): Likewise.
36891         (parm_preserved_before_stmt_p): Changed to use new param AA info.
36892         (load_from_unmodified_param): Accept func_body_info as a parameter
36893         instead of parms_ainfo.
36894         (parm_ref_data_preserved_p): Changed to use new param AA info.
36895         (parm_ref_data_pass_through_p): Likewise.
36896         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
36897         (compute_complex_assign_jump_func): Changed to use new param AA info.
36898         (compute_complex_ancestor_jump_func): Likewise.
36899         (ipa_compute_jump_functions_for_edge): Likewise.
36900         (ipa_compute_jump_functions): Removed.
36901         (ipa_compute_jump_functions_for_bb): New function.
36902         (ipa_analyze_indirect_call_uses): Likewise, moved variable
36903         declarations down.
36904         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36905         and info, moved variable declarations down.
36906         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36907         node and info.
36908         (ipa_analyze_stmt_uses): Likewise.
36909         (ipa_analyze_params_uses): Removed.
36910         (ipa_analyze_params_uses_in_bb): New function.
36911         (ipa_analyze_controlled_uses): Likewise.
36912         (free_ipa_bb_info): Likewise.
36913         (analysis_dom_walker): New class.
36914         (ipa_analyze_node): Handle node-specific forbidden analysis,
36915         initialize and free func_body_info, use dominator walker.
36916         (ipcp_modif_dom_walker): New class.
36917         (ipcp_transform_function): Create and free func_body_info, use
36918         ipcp_modif_dom_walker, moved a lot of functionality there.
36919
36920 2014-05-23  Marek Polacek  <polacek@redhat.com>
36921             Jakub Jelinek  <jakub@redhat.com>
36922
36923         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36924         * gcc.c (sanitize_spec_function): Likewise.
36925         * convert.c (convert_to_integer): Include "ubsan.h".  Add
36926         floating-point to integer instrumentation.
36927         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36928         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36929         SANITIZE_NONDEFAULT.
36930         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36931         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36932         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36933         * ubsan.c: Include "realmpfr.h" and "dfp.h".
36934         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36935         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36936         float/double/long double.
36937         (ubsan_instrument_float_cast): New function.
36938         * ubsan.h (ubsan_instrument_float_cast): Declare.
36939
36940 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
36941
36942         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36943         predicate.
36944         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
36945         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36946         Adjust for tailcalling through registers.
36947         * config/aarch64/aarch64.h (enum reg_class): New caller save
36948         register class.
36949         (REG_CLASS_NAMES): Likewise.
36950         (REG_CLASS_CONTENTS): Likewise.
36951         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36952         Allow tailcalling without decls.
36953
36954 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36955
36956         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36957         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36958
36959         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36960         gsi, and variables v_* to v*.
36961
36962 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
36963
36964         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36965
36966 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36967
36968         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36969         * omp-low.c: Update accordingly.
36970
36971         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36972         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36973         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36974         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36975         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36976         GF_OMP_TARGET_KIND_UPDATE.
36977
36978         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36979         Explicitly enumerate the expected region types.
36980
36981 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
36982
36983         PR other/56955
36984         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
36985         documentation; the old documentation didn't clearly state the
36986         constraints on the contents of the pointed-to storage.
36987
36988 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36989
36990         Fix bootstrap error on ia64
36991         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36992         Return default value.
36993
36994 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36995
36996         PR tree-optimization/54733
36997         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36998         (CMPNOP): Define.
36999         (find_bswap_or_nop_load): New.
37000         (find_bswap_1): Renamed to ...
37001         (find_bswap_or_nop_1): This. Also add support for memory source.
37002         (find_bswap): Renamed to ...
37003         (find_bswap_or_nop): This. Also add support for memory source and
37004         detection of bitwise operations equivalent to load in target
37005         endianness.
37006         (execute_optimize_bswap): Likewise. Also move its leading comment back
37007         in place and split statement transformation into ...
37008         (bswap_replace): This.
37009
37010 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
37011
37012         PR rtl-optimization/61215
37013         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
37014         simplify_gen_subreg until final substitution.
37015
37016 2014-05-23  Alan Modra  <amodra@gmail.com>
37017
37018         PR target/61231
37019         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
37020         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
37021         Use "Y" constraint rather than "m".
37022
37023 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
37024
37025         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
37026         define.
37027         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
37028         New function declaration.
37029         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
37030         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
37031         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
37032         (aarch64_init_builtins) : Initialize builtins
37033         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
37034         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
37035         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
37036         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
37037         and __builtins_aarch64_set_fpsr.
37038         (aarch64_atomic_assign_expand_fenv): New function.
37039         * config/aarch64/aarch64.md (set_fpcr): New pattern.
37040         (get_fpcr) : Likewise.
37041         (set_fpsr) : Likewise.
37042         (get_fpsr) : Likewise.
37043         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
37044         and UNSPECV_SET_FPSR.
37045         * doc/extend.texi (AARCH64 Built-in Functions) : Document
37046         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
37047         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
37048
37049 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
37050
37051         PR rtl-optimization/60969
37052         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
37053         constraints.  Set up mem cost for NO_REGS case.
37054
37055 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
37056
37057         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
37058
37059 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
37060
37061         * config/darwin.c: Include "lto-section-names.h".
37062         (LTO_SEGMENT_NAME): Don't define.
37063         * config/i386/winnt.c: Include "lto-section-names.h".
37064         * lto-streamer.c: Include "lto-section-names.h".
37065         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
37066         * lto-wrapper.c: Include "lto-section-names.h".
37067         (LTO_SECTION_NAME_PREFIX): Don't define.
37068         * lto-section-names.h: New file.
37069         * cgraphunit.c: Include "lto-section-names.h".
37070
37071 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
37072
37073         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
37074
37075 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
37076
37077         PR target/61208
37078         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
37079
37080 2014-05-22  Nick Clifton  <nickc@redhat.com>
37081
37082         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
37083
37084 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
37085
37086         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
37087         -> (T)A transformation to integer types.
37088
37089 2014-05-22  Teresa Johnson  <tejohnson@google.com>
37090
37091         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
37092         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
37093         (gcov_rewrite): Use gcov_nonruntime_assert.
37094         (gcov_open): Ditto.
37095         (gcov_write_words): Ditto.
37096         (gcov_write_length): Ditto.
37097         (gcov_read_words): Use gcov_nonruntime_assert, and remove
37098         gcc_assert from IN_LIBGCOV code.
37099         (gcov_read_summary): Use gcov_error to flag profile corruption.
37100         (gcov_sync): Use gcov_nonruntime_assert.
37101         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
37102         (gcov_histo_index): Use gcov_nonruntime_assert.
37103         (static void gcov_histogram_merge): Ditto.
37104         (compute_working_sets): Ditto.
37105         * gcov-io.h (gcov_nonruntime_assert): Define.
37106         (gcov_error): Define for !IN_LIBGCOV
37107
37108 2014-05-22  Richard Biener  <rguenther@suse.de>
37109
37110         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
37111         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
37112         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
37113         and deallocation site.
37114         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
37115         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
37116         passing through the incoming points-to set.
37117         (handle_lhs_call): Use flags argument instead of recomputing it.
37118         (find_func_aliases_for_call): Call handle_lhs_call with proper
37119         call return flags.
37120
37121 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
37122
37123         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
37124         all padding bits in REAL_VALUE_TYPE are cleared.
37125
37126 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37127
37128         Cleanup and improve multipass_dfa_lookahead_guard
37129         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
37130         (core2i7_first_cycle_multipass_begin,)
37131         (core2i7_first_cycle_multipass_issue,)
37132         (core2i7_first_cycle_multipass_backtrack): Update signature.
37133         * config/ia64/ia64.c
37134         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
37135         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
37136         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
37137         hook definition.
37138         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
37139         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
37140         values.
37141         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
37142         return values.
37143         * doc/tm.texi: Regenerate.
37144         * doc/tm.texi.in
37145         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
37146         * haifa-sched.c (ready_try): Make signed to allow negative values.
37147         (rebug_ready_list_1): Update.
37148         (choose_ready): Simplify.
37149         (sched_extend_ready_list): Update.
37150
37151 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37152
37153         Remove IA64 speculation tweaking flags
37154         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
37155         speculation tuning flags.
37156         (msched-prefer-non-data-spec-insns,)
37157         (msched-prefer-non-control-spec-insns): Obsolete options.
37158         * haifa-sched.c (choose_ready): Remove handling of
37159         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
37160         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
37161         and PREFER_NON_DATA_SPEC.
37162         * sel-sched.c (process_spec_exprs): Remove handling of
37163         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
37164
37165 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37166
37167         Improve scheduling debug output
37168         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
37169         (advance_one_cycle): Update.
37170         (schedule_insn, queue_to_ready): Add debug printouts.
37171         (debug_ready_list_1): New static function.
37172         (debug_ready_list): Update.
37173         (max_issue): Add debug printouts.
37174         (dump_insn_stream): New static function.
37175         (schedule_block): Use it.  Also better indent printouts.
37176
37177 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37178
37179         Fix sched_insn debug counter
37180         * haifa-sched.c (schedule_insn): Update.
37181         (struct haifa_saved_data): Add nonscheduled_insns_begin.
37182         (save_backtrack_point, restore_backtrack_point): Update.
37183         (first_nonscheduled_insn): New static function.
37184         (queue_to_ready, choose_ready): Use it.
37185         (schedule_block): Init nonscheduled_insns_begin.
37186         (sched_emit_insn): Update.
37187
37188
37189 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
37190
37191         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
37192         to GENERAL_REGS.
37193         (aarch64_secondary_reload) : LikeWise.
37194         (aarch64_class_max_nregs) : Remove CORE_REGS.
37195         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
37196         (REG_CLASS_NAMES) : Likewise.
37197         (REG_CLASS_CONTENTS) : LikeWise.
37198         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
37199
37200 2014-05-21  Guozhi Wei  <carrot@google.com>
37201
37202         PR target/61202
37203         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
37204         constraint.
37205         (vqdmulhq_n_s16): Likewise.
37206
37207 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
37208
37209         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
37210
37211 2014-05-21  Marek Polacek  <polacek@redhat.com>
37212
37213         PR sanitizer/61272
37214         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
37215
37216 2014-05-21  Martin Jambor  <mjambor@suse.cz>
37217
37218         * doc/invoke.texi (Optimize Options): Document parameters
37219         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
37220         ipa-cp-array-index-hint-bonus.
37221
37222 2014-05-21  Mark Wielaard  <mjw@redhat.com>
37223
37224         PR debug/16063
37225         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
37226         version >= 3 or not strict DWARF.
37227         * langhooks.h (struct lang_hooks_for_types): Add
37228         enum_underlying_base_type.
37229         * langhooks.c (lhd_enum_underlying_base_type): New function.
37230         * gcc/langhooks.h (struct lang_hooks_for_types): Add
37231         enum_underlying_base_type.
37232         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
37233         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
37234         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
37235
37236 2014-05-21  Richard Biener  <rguenther@suse.de>
37237
37238         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
37239
37240 2014-05-21  John Marino  <gnugcc@marino.st>
37241
37242         * config.gcc (*-*-dragonfly*): New target.
37243         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
37244         * configure: Regenerate.
37245         * config/dragonfly-stdint.h: New.
37246         * config/dragonfly.h: New.
37247         * config/dragonfly.opt: New.
37248         * config/i386/dragonfly.h: New.
37249         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
37250
37251 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
37252
37253         * tree.def (VOID_CST): New.
37254         * tree-core.h (TI_VOID): New.
37255         * tree.h (void_node): New.
37256         * tree.c (tree_node_structure_for_code, tree_code_size)
37257         (iterative_hash_expr): Handle VOID_CST.
37258         (build_common_tree_nodes): Initialize void_node.
37259
37260 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
37261
37262         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
37263         functions.
37264         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
37265
37266         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
37267         more places.
37268
37269         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
37270         flag_reorder_blocks_and_partition.
37271         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
37272
37273 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
37274
37275         PR target/54236
37276         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
37277         constraints.
37278         (*addc_r_t): Add new insn_and_split.
37279
37280 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
37281
37282         PR middle-end/61252
37283         * omp-low.c (handle_simd_reference): New function.
37284         (lower_rec_input_clauses): Use it.  Defer adding reference
37285         initialization even for reduction without placeholder if in simd,
37286         handle it properly later on.
37287
37288 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37289
37290         PR tree-optimization/60899
37291         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
37292         assume all static symbols will have definition wile parsing and
37293         check the do have definition later in compilation; check that
37294         variable referring symbol will be output before concluding that
37295         reference is safe; be conservative for referring local statics;
37296         be more precise about when comdat is output in other partition.
37297
37298 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37299
37300         PR bootstrap/60984
37301         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
37302         parameter.
37303         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
37304         (ipa_inline): Loop inline_to_all_callers until no more aliases
37305         are removed.
37306
37307 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37308
37309         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
37310         set writeonly flag only for vars actually written to.
37311
37312 2014-05-20  Dehao Chen  <dehao@google.com>
37313
37314         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
37315         and callee count to get clone count.
37316         * tree-inline.c (expand_call_inline): Use callee count instead of bb
37317         count in copy_body.
37318
37319 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
37320
37321         PR rtl-optimization/61243
37322         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
37323
37324 2014-05-20  Xinliang David Li  <davidxl@google.com>
37325
37326         * cgraphunit.c (walk_polymorphic_call_targets): Add
37327         dbgcnt and fopt-info support.
37328         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
37329         * ipa-devirt.c (ipa_devirt): Ditto.
37330         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
37331         * ipa.c (walk_polymorphic_call_targets): Ditto.
37332         * gimple-fold.c (fold_gimple_assign): Ditto.
37333         (gimple_fold_call): Ditto.
37334         * dbgcnt.def: New counter.
37335
37336 2014-05-20  DJ Delorie  <dj@redhat.com>
37337
37338         * config/msp430/msp430.md (split): Don't allow subregs when
37339         splitting SImode adds.
37340         (andneghi): Fix subtraction logic.
37341         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
37342
37343 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37344
37345         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
37346         symbols.
37347         * except.c (switch_to_exception_section, resolve_unique_section,
37348         get_named_text_section, default_function_rodata_section,
37349         align_variable, get_block_for_decl, default_section_type_flags):
37350         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
37351         * symtab.c (symtab_add_to_same_comdat_group,
37352         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
37353         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
37354         Likewise.
37355         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
37356         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
37357         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
37358         (c6x_function_in_section_p): Likewise.
37359         * config/darwin.c (machopic_select_section): Likewise.
37360         * config/arm/arm.c (arm_function_in_section_p): Likewise.
37361         * config/mips/mips.c (mips_function_rodata_section): Likewise.
37362         * config/mep/mep.c (mep_select_section): LIkewise.
37363         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
37364
37365 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
37366
37367         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
37368         EH region of calls to pure functions that can throw an exception.
37369         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
37370         (copy_reference_ops_from_call): Also copy the EH region of the call if
37371         it can throw an exception.
37372
37373 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37374
37375         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
37376         nested VEC_SELECTs that are inverses of each other.
37377
37378 2014-05-20  Richard Biener  <rguenther@suse.de>
37379
37380         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
37381         (extract_and_process_scc_for_name): not here.
37382         (cond_dom_walker::before_dom_children): Only process
37383         stmts that end the BB in interesting ways.
37384         (run_scc_vn): Mark param uses as visited.
37385
37386 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37387
37388         * config/arm/arm.md (arith_shiftsi): Do not predicate for
37389         arm_restrict_it.
37390
37391 2014-05-20  Nick Clifton  <nickc@redhat.com>
37392
37393         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
37394         (msp430_gimplify_va_arg_expr): New function.
37395         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
37396
37397         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
37398         operand 0 in order to prevent confusion about the number of
37399         registers involved.
37400
37401 2014-05-20  Richard Biener  <rguenther@suse.de>
37402
37403         PR tree-optimization/61221
37404         * tree-ssa-pre.c (el_to_update): Remove.
37405         (eliminate_dom_walker::before_dom_children): Handle released
37406         VDEFs by value-numbering them to the associated VUSE.  Update
37407         stmt immediately for substituted call address.
37408         (eliminate): Remove delayed stmt updating code.
37409         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
37410         possibly late re-numbered vuses.
37411         (vn_reference_lookup_2): Adjust.
37412         (vn_reference_lookup_pieces): Likewise.
37413         (vn_reference_lookup): Likewise.
37414
37415 2014-05-20  Richard Biener  <rguenther@suse.de>
37416
37417         * config.gcc: Remove need_64bit_hwint.
37418         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
37419         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
37420         it to be true.
37421         * config.in: Regenerate.
37422         * configure: Likewise.
37423
37424 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
37425
37426         * doc/extend.texi: Create Label Attributes section,
37427         move all label attributes into it and reference it.
37428
37429 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
37430
37431         * arm.c (thumb1_reorg): When scanning backwards skip anything
37432         that's not a proper insn.
37433
37434 2014-05-19  Richard Biener  <rguenther@suse.de>
37435
37436         PR tree-optimization/61221
37437         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
37438         Do nothing for unreachable blocks.
37439         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
37440         Improve unreachability detection.
37441
37442 2014-05-19  Richard Biener  <rguenther@suse.de>
37443
37444         PR tree-optimization/61209
37445         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
37446
37447 2014-05-19  Nick Clifton  <nickc@redhat.com>
37448
37449         * except.c (init_eh): Fix computation of builtin setjmp buffer
37450         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
37451
37452 2014-05-19  Richard Biener  <rguenther@suse.de>
37453
37454         PR tree-optimization/61184
37455         * tree-vrp.c (is_negative_overflow_infinity): Use
37456         TREE_OVERFLOW_P and do that check first.
37457         (is_positive_overflow_infinity): Likewise.
37458         (is_overflow_infinity): Likewise.
37459         (vrp_operand_equal_p): Properly treat operands with
37460         differing overflow as not equal.
37461
37462 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
37463
37464         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
37465         shift simplification where it was intended.
37466
37467 2014-05-19  Christian Bruel  <christian.bruel@st.com>
37468
37469         PR target/61195
37470         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
37471
37472 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
37473
37474         PR target/61084
37475         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
37476         than wide_int.
37477
37478 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37479
37480         * reg-notes.def (CROSSING_JUMP): Likewise.
37481         * rtl.h (rtx_def): Update comment for jump flag.
37482         (CROSSING_JUMP_P): Define.
37483         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
37484         of a REG_CROSSING_JUMP note.
37485         * cfghooks.c (tidy_fallthru_edges): Likewise.
37486         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
37487         * emit-rtl.c (try_split): Likewise.
37488         * haifa-sched.c (sched_create_recovery_edges): Likewise.
37489         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
37490         * jump.c (redirect_jump_2): Likewise.
37491         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
37492         (relax_delay_slots): Likewise.
37493         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
37494         (bbit_di): Likewise.
37495         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
37496         * config/sh/sh.md (jump_compact): Likewise.
37497         * bb-reorder.c (rotate_loop): Likewise.
37498         (pass_duplicate_computed_gotos::execute): Likewise.
37499         (add_reg_crossing_jump_notes): Rename to...
37500         (update_crossing_jump_flags): ...this.
37501         (pass_partition_blocks::execute): Update accordingly.
37502
37503 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37504
37505         * tree.h: Remove extraneous template <>.
37506
37507 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37508
37509         * ipa.c (symtab_remove_unreachable_nodes): Remove
37510         symbol from comdat group if its body was eliminated.
37511         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
37512         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
37513         (symtab_unregister_node): ... this one.
37514         (verify_symtab_base): More strict checking of comdats.
37515         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
37516
37517 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37518
37519         * tree-pass.h (make_pass_ipa_comdats): New pass.
37520         * timevar.def (TV_IPA_COMDATS): New timevar.
37521         * passes.def (pass_ipa_comdats): Add.
37522         * Makefile.in (OBJS): Add ipa-comdats.o
37523         * ipa-comdats.c: New file.
37524
37525 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37526
37527         * ipa.c (update_visibility_by_resolution_info): New function.
37528         (function_and_variable_visibility): Use it.
37529
37530 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37531
37532         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
37533         New functions.
37534         (FOR_EACH_DEFINED_SYMBOL): New macro.
37535         (varpool_first_static_initializer, varpool_next_static_initializer,
37536         varpool_first_defined_variable, varpool_next_defined_variable):
37537         Fix comments.
37538         (symtab_in_same_comdat_p): Correctly deal with inline functions.
37539
37540 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37541
37542         * ggc-page.c (ggc_handle_finalizers): Add comment.
37543
37544 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37545
37546         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
37547         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
37548         (ggc_internal_cleared_alloc): Likewise.
37549         * ggc-page.c (finalizer): New class.
37550         (vec_finalizer): Likewise.
37551         (globals::finalizers): New member.
37552         (globals::vec_finalizers): Likewise.
37553         (ggc_internal_alloc): Record the finalizer if any for the block being
37554         allocated.
37555         (ggc_handle_finalizers): New function.
37556         (ggc_collect): Call ggc_handle_finalizers.
37557         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
37558         finalizer.
37559         (ggc_internal_cleared_alloc): Likewise.
37560         (finalize): New function.
37561         (need_finalization_p): Likewise.
37562         (ggc_alloc): Install the type's destructor as the finalizer if it
37563         might do something.
37564         (ggc_cleared_alloc): Likewise.
37565         (ggc_vec_alloc): Likewise.
37566         (ggc_cleared_vec_alloc): Likewise.
37567
37568 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37569
37570         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37571
37572 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37573
37574         * alias.c (record_alias_subset): Adjust.
37575         * bitmap.c (bitmap_element_allocate): Likewise.
37576         (bitmap_gc_alloc_stat): Likewise.
37577         * cfg.c (init_flow): Likewise.
37578         (alloc_block): Likewise.
37579         (unchecked_make_edge): Likewise.
37580         * cfgloop.c (alloc_loop): Likewise.
37581         (flow_loops_find): Likewise.
37582         (rescan_loop_exit): Likewise.
37583         * cfgrtl.c (init_rtl_bb_info): Likewise.
37584         * cgraph.c (insert_new_cgraph_node_version): Likewise.
37585         (cgraph_allocate_node): Likewise.
37586         (cgraph_create_edge_1): Likewise.
37587         (cgraph_allocate_init_indirect_info): Likewise.
37588         * cgraphclones.c (cgraph_clone_edge): Likewise.
37589         * cgraphunit.c (add_asm_node): Likewise.
37590         (init_lowered_empty_function): Likewise.
37591         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37592         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37593         (alpha_use_linkage): Likewise.
37594         * config/arc/arc.c (arc_init_machine_status): Likewise.
37595         * config/arm/arm.c (arm_init_machine_status): Likewise.
37596         * config/avr/avr.c (avr_init_machine_status): Likewise.
37597         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37598         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37599         * config/cris/cris.c (cris_init_machine_status): Likewise.
37600         * config/darwin.c (machopic_indirection_name): Likewise.
37601         (darwin_build_constant_cfstring): Likewise.
37602         (darwin_enter_string_into_cfstring_table): Likewise.
37603         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37604         * config/frv/frv.c (frv_init_machine_status): Likewise.
37605         * config/i386/i386.c (get_dllimport_decl): Likewise.
37606         (ix86_init_machine_status): Likewise.
37607         (assign_386_stack_local): Likewise.
37608         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37609         (i386_pe_maybe_record_exported_symbol): Likewise.
37610         (i386_pe_record_stub): Likewise.
37611         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37612         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37613         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37614         (m32c_note_pragma_address): Likewise.
37615         * config/mep/mep.c (mep_init_machine_status): Likewise.
37616         (mep_note_pragma_flag): Likewise.
37617         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37618         (mips16_local_alias): Likewise.
37619         (mips_init_machine_status): Likewise.
37620         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37621         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37622         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37623         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37624         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37625         * config/pa/pa.c (pa_init_machine_status): Likewise.
37626         (pa_get_deferred_plabel): Likewise.
37627         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37628         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37629         (rs6000_init_machine_status): Likewise.
37630         (output_toc): Likewise.
37631         * config/s390/s390.c (s390_init_machine_status): Likewise.
37632         * config/score/score.c (score_output_external): Likewise.
37633         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37634         * config/spu/spu.c (spu_init_machine_status): Likewise.
37635         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37636         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37637         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37638         * coverage.c (coverage_end_function): Likewise.
37639         * dbxout.c (dbxout_init): Likewise.
37640         * doc/gty.texi: Don't mention variable_size attribute.
37641         * dwarf2cfi.c (new_cfi): Adjust.
37642         (new_cfi_row): Likewise.
37643         (copy_cfi_row): Likewise.
37644         (create_cie_data): Likewise.
37645         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37646         (new_loc_descr): Likewise.
37647         (find_AT_string_in_table): Likewise.
37648         (add_addr_table_entry): Likewise.
37649         (new_die): Likewise.
37650         (add_var_loc_to_decl): Likewise.
37651         (clone_die): Likewise.
37652         (clone_as_declaration): Likewise.
37653         (break_out_comdat_types): Likewise.
37654         (new_loc_list): Likewise.
37655         (add_loc_descr_to_each): Likewise.
37656         (add_location_or_const_value_attribute): Likewise.
37657         (add_linkage_name): Likewise.
37658         (lookup_filename): Likewise.
37659         (dwarf2out_var_location): Likewise.
37660         (new_line_info_table): Likewise.
37661         (dwarf2out_init): Likewise.
37662         (mem_loc_descriptor): Likewise.
37663         (loc_descriptor): Likewise.
37664         (add_const_value_attribute): Likewise.
37665         (tree_add_const_value_attribute): Likewise.
37666         (comp_dir_string): Likewise.
37667         (dwarf2out_vms_debug_main_pointer): Likewise.
37668         (string_cst_pool_decl): Likewise.
37669         * emit-rtl.c (set_mem_attrs): Likewise.
37670         (get_reg_attrs): Likewise.
37671         (start_sequence): Likewise.
37672         (init_emit): Likewise.
37673         (init_emit_regs): Likewise.
37674         * except.c (init_eh_for_function): Likewise.
37675         (gen_eh_region): Likewise.
37676         (gen_eh_region_catch): Likewise.
37677         (gen_eh_landing_pad): Likewise.
37678         (add_call_site): Likewise.
37679         * function.c (add_frame_space): Likewise.
37680         (insert_temp_slot_address): Likewise.
37681         (assign_stack_temp_for_type): Likewise.
37682         (get_hard_reg_initial_val): Likewise.
37683         (allocate_struct_function): Likewise.
37684         (prepare_function_start): Likewise.
37685         (types_used_by_var_decl_insert): Likewise.
37686         * gengtype.c (variable_size_p): Remove function.
37687         (enum alloc_quantity): Remove enum.
37688         (write_typed_alloc_def): Remove function.
37689         (write_typed_struct_alloc_def): Likewise.
37690         (write_typed_typedef_alloc_def): Likewise.
37691         (write_typed_alloc_defns): Likewise.
37692         (main): Adjust.
37693         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37694         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37695         * ggc.h (ggc_alloc): new function.
37696         (ggc_cleared_alloc): Likewise.
37697         (ggc_vec_alloc): Template on type of vector element, and remove
37698         element size argument.
37699         (ggc_cleared_vec_alloc): Likewise.
37700         * gimple.c (gimple_build_omp_for): Adjust.
37701         (gimple_copy): Likewise.
37702         * ipa-cp.c (get_replacement_map): Likewise.
37703         (find_aggregate_values_for_callers_subset): Likewise.
37704         (known_aggs_to_agg_replacement_list): Likewise.
37705         * ipa-devirt.c (get_odr_type): Likewise.
37706         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37707         (read_agg_replacement_chain): Likewise.
37708         * loop-iv.c (get_simple_loop_desc): Likewise.
37709         * lto-cgraph.c (input_node_opt_summary): Likewise.
37710         * lto-section-in.c (lto_new_in_decl_state): Likewise.
37711         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37712         (input_eh_region): Likewise.
37713         (input_eh_lp): Likewise.
37714         (input_cfg): Likewise.
37715         * optabs.c (set_optab_libfunc): Likewise.
37716         (init_tree_optimization_optabs): Likewise.
37717         (set_conv_libfunc): Likewise.
37718         * passes.c (do_per_function_toporder): Likewise.
37719         * rtl.h: Don't use variable_size gty attribute.
37720         * sese.c (if_region_set_false_region): Adjust.
37721         * stringpool.c (gt_pch_save_stringpool): Likewise.
37722         * target-globals.c (save_target_globals): Likewise.
37723         * toplev.c (general_init): Likewise.
37724         * trans-mem.c (record_tm_replacement): Likewise.
37725         (split_bb_make_tm_edge): Likewise.
37726         * tree-cfg.c (move_sese_region_to_fn): Likewise.
37727         * tree-data-ref.h (lambda_vector_new): Likewise.
37728         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37729         * tree-iterator.c (tsi_link_before): Likewise.
37730         (tsi_link_after): Likewise.
37731         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37732         * tree-ssa-loop-niter.c (record_estimate): Likewise.
37733         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37734         * tree-ssa-operands.h: Don't use variable_size gty attribute.
37735         * tree-ssa.c (init_tree_ssa): Adjust.
37736         * tree-ssanames.c (set_range_info): Likewise.
37737         (get_ptr_info): Likewise.
37738         (duplicate_ssa_name_ptr_info): Likewise.
37739         (duplicate_ssa_name_range_info): Likewise.
37740         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37741         (unpack_ts_fixed_cst_value_fields): Likewise.
37742         * tree.c (build_fixed): Likewise.
37743         (build_real): Likewise.
37744         (build_string): Likewise.
37745         (decl_priority_info): Likewise.
37746         (decl_debug_expr_insert): Likewise.
37747         (decl_value_expr_insert): Likewise.
37748         (decl_debug_args_insert): Likewise.
37749         (type_hash_add): Likewise.
37750         (build_omp_clause): Likewise.
37751         * ubsan.c (decl_for_type_insert): Likewise.
37752         * varasm.c (get_unnamed_section): Likewise.
37753         (get_noswitch_section): Likewise.
37754         (get_section): Likewise.
37755         (get_block_for_section): Likewise.
37756         (create_block_symbol): Likewise.
37757         (build_constant_desc): Likewise.
37758         (create_constant_pool): Likewise.
37759         (force_const_mem): Likewise.
37760         (record_tm_clone_pair): Likewise.
37761         * varpool.c (varpool_create_empty_node): Likewise.
37762
37763 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37764
37765         * dwarf2out.c (tree_add_const_value_attribute): Call
37766         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37767         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37768         instead of ggc_internal_<x>alloc_stat.
37769         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37770         (ggc_realloc): Likewise.
37771         * ggc-none.c (ggc_internal_alloc): Likewise.
37772         (ggc_internal_cleared_alloc): Likewise.
37773         * ggc-page.c: Likewise.
37774         * ggc.h (ggc_internal_alloc_stat): Likewise.
37775         (ggc_internal_alloc): Remove macro.
37776         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37777         (ggc_internal_cleared_alloc): Remove macro.
37778         (GGC_RESIZEVEC): Adjust.
37779         (ggc_resizevar): Remove macro.
37780         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37781         (ggc_internal_cleared_vec_alloc_stat): Likewise.
37782         (ggc_internal_vec_cleared_alloc): Remove macro.
37783         (ggc_alloc_atomic_stat): Drop _stat suffix.
37784         (ggc_alloc_atomic): Remove macro.
37785         (ggc_alloc_cleared_atomic): Remove macro.
37786         (ggc_alloc_string_stat): Drop _stat suffix.
37787         (ggc_alloc_string): Remove macro.
37788         (ggc_alloc_rtx_def_stat): Adjust.
37789         (ggc_alloc_tree_node_stat): Likewise.
37790         (ggc_alloc_cleared_tree_node_stat): Likewise.
37791         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37792         (ggc_alloc_cleared_simd_clone_stat): Likewise.
37793         * gimple.c (gimple_build_omp_for): Likewise.
37794         (gimple_copy): Likewise.
37795         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37796         * toplev.c (realloc_for_line_map): Adjust.
37797         * tree-data-ref.h (lambda_vector_new): Likewise.
37798         * tree-phinodes.c (allocate_phi_node): Likewise.
37799         * tree.c (grow_tree_vec_stat): Likewise.
37800         * vec.h (va_gc::reserve): Adjust.
37801
37802 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
37803
37804         * config/microblaze/microblaze.c (break_handler): New Declaration.
37805         (microblaze_break_function_p,microblaze_is_break_handler): New.
37806         (compute_frame_size): Use microblaze_break_function_p.
37807         Add the test of break_handler.
37808         (microblaze_function_prologue) : Add the test of variable
37809         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
37810         (microblaze_function_epilogue) : Add the test of break_handler.
37811         (microblaze_globalize_label) : Add the test of break_handler.
37812         Check the name by BREAK_HANDLER_NAME.
37813
37814         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37815
37816         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37817         microblaze_is_break_handler test.
37818         (call_internal1,call_value_intern): Use microblaze_break_function_p.
37819         Use SYMBOL_REF_DECL.
37820
37821         * config/microblaze/microblaze-protos.h
37822         (microblaze_break_function_p,microblaze_is_break_handler):
37823         New Declaration.
37824
37825         * doc/extend.texi (MicroBlaze break_handler Functions): Document
37826         new MicroBlaze break_handler functions.
37827
37828 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37829
37830         * doc/extend.texi (Size of an asm): Move node text according
37831         to its @menu entry position.
37832
37833 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
37834
37835         PR tree-optimization/61140
37836         PR tree-optimization/61150
37837         PR tree-optimization/61197
37838         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37839
37840 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37841
37842         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
37843
37844 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
37845
37846         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37847         __SIZEOF_INT128__ is defined.
37848
37849 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37850
37851         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37852         (rs6000_delegitimize_address): Use it.
37853
37854 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37855
37856         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37857         inplace argument.  Store the new address in the original MEM when true.
37858         * emit-rtl.c (change_address_1): Likewise.
37859         (adjust_address_1, adjust_automodify_address_1, offset_address):
37860         Update accordingly.
37861         * rtl.h (plus_constant): Add an inplace argument.
37862         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
37863         when true.  Avoid generating (plus X (const_int 0)).
37864         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37865         in-place.  Pass true to plus_constant.
37866         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37867
37868 2014-05-16  Dehao Chen  <dehao@google.com>
37869
37870         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37871
37872 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37873
37874         PR target/54089
37875         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37876         patterns.
37877         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37878
37879 2014-05-16  Dehao Chen  <dehao@google.com>
37880
37881         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37882         optimize_function_for_size_p.
37883         * regs.h (REG_FREQ_FROM_BB): Likewise.
37884
37885 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37886
37887         PR target/51244
37888         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37889         negt_reg_operand cases.
37890         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37891         predicate.
37892         * config/sh/predicates.md (cbranch_treg_value): Simplify.
37893
37894 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37895
37896         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37897         target variants.
37898
37899 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
37900
37901         Revert:
37902         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
37903
37904         * tree-cfg.c (dump_function_to_file): Dump the return type of
37905         functions, in a line to itself before the function body, mimicking
37906         the layout of a C function.
37907
37908 2014-05-16  Dehao Chen  <dehao@google.com>
37909
37910         * cfghooks.c (make_forwarder_block): Use direct computation to
37911         get fall-through edge's count and frequency.
37912
37913 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
37914
37915         * config/arc/arc.c (arc_init): Fix typo in error message.
37916         * config/i386/i386.c (ix86_expand_builtin): Likewise.
37917         (split_stack_prologue_scratch_regno): Likewise.
37918         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37919         word from error message.
37920
37921 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37922
37923         * ira-costs.c: Fix typo in comment.
37924
37925 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
37926
37927         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37928
37929 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
37930
37931         * varpool.c (dump_varpool_node): Dump write-only flag.
37932         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37933         write-only flag.
37934         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37935         write-only variables.
37936         * ipa.c (process_references): New function.
37937         (set_readonly_bit): New function.
37938         (set_writeonly_bit): New function.
37939         (clear_addressable_bit): New function.
37940         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37941         fix handling of aliases.
37942         * cgraph.h (struct varpool_node): Add writeonly flag.
37943
37944 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
37945
37946         PR rtl-optimization/60969
37947         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37948         Calculate costs for this case.
37949
37950 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
37951
37952         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37953         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37954
37955 2014-05-16  Richard Biener  <rguenther@suse.de>
37956
37957         PR tree-optimization/61194
37958         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37959         bool patterns ending in a COND_EXPR.
37960
37961 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37962
37963         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37964
37965 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37966
37967         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37968         where we were unable to cost an RTX.
37969
37970 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37971
37972         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37973         HIGH, LO_SUM.
37974
37975 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37976             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37977
37978         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37979
37980 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37981             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37982
37983         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37984         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37985
37986 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37987             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37988
37989         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37990         operators.
37991
37992 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37993             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37994
37995         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37996         DIV/MOD.
37997
37998 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37999             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38000
38001         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
38002         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
38003
38004 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38005             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38006
38007         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
38008         rotates and shifts.
38009
38010 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38011             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38012
38013         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
38014         ZERO_EXTEND and SIGN_EXTEND better.
38015
38016 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38017             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38018
38019         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
38020         logical operations.
38021
38022 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38023             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38024
38025         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
38026         costs when costing loads and stores to memory.
38027
38028 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38029             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
38030
38031         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
38032         for SET RTX.
38033
38034 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38035
38036         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
38037
38038 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38039             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38040
38041         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
38042         to...
38043         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
38044         well formed.
38045         (aarch64_rtx_mult_cost): New.
38046         (aarch64_rtx_costs): Use it, refactor as appropriate.
38047
38048 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38049             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38050
38051         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
38052         emit instructions, return number of instructions which would
38053         be emitted.
38054         (aarch64_add_constant): Update call to aarch64_build_constant.
38055         (aarch64_output_mi_thunk): Likewise.
38056         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
38057         a CONST_DOUBLE.
38058
38059 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38060
38061         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
38062         (TARGET_RTX_COSTS): Call it.
38063
38064 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38065
38066         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
38067         (cortexa57_vector_cost): Likewise.
38068         (cortexa57_tunings): Use them.
38069
38070 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38071
38072         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
38073         (cpu_addrcost_table): Use it.
38074         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
38075         (aarch64_address_cost): Rewrite using aarch64_classify_address,
38076         move it.
38077
38078 2014-05-16  Richard Biener  <rguenther@suse.de>
38079
38080         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
38081         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
38082         (visit_phi): Ignore edges marked as not executable.
38083         (class cond_dom_walker): New.
38084         (cond_dom_walker::before_dom_children): Value-number
38085         control statements and mark successor edges as not
38086         executable if possible.
38087         (run_scc_vn): First walk all control statements in
38088         dominator order, marking edges as not executable.
38089         * tree-inline.c (copy_edges_for_bb): Be not confused
38090         about random edge flags.
38091
38092 2014-05-16  Richard Biener  <rguenther@suse.de>
38093
38094         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
38095
38096 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
38097
38098         PR target/61193
38099         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
38100         (__TM_simple_begin): Use it.
38101         (__TM_begin): Likewise.
38102
38103 2014-05-15  Martin Jambor  <mjambor@suse.cz>
38104
38105         PR ipa/61085
38106         * ipa-prop.c (update_indirect_edges_after_inlining): Check
38107         type_preserved flag when the indirect edge is polymorphic.
38108
38109 2014-05-15  Martin Jambor  <mjambor@suse.cz>
38110
38111         PR tree-optimization/61090
38112         * tree-sra.c (sra_modify_expr): Pass the current gsi to
38113         build_ref_for_model.
38114
38115 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38116
38117         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
38118         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
38119
38120 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
38121
38122         PR tree-optimization/61158
38123         * fold-const.c (fold_binary_loc): If X is zero-extended and
38124         shiftc >= prec, make sure zerobits is all ones instead of
38125         invoking undefined behavior.
38126
38127 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38128
38129         * regcprop.h: New file.
38130         * regcprop.c (skip_debug_insn_p): New decl.
38131         (replace_oldest_value_reg): Check skip_debug_insn_p.
38132         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
38133         * shrink-wrap.c: Include regcprop.h.
38134         (prepare_shrink_wrap): Call
38135         copyprop_hardreg_forward_bb_without_debug_insn.
38136
38137 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38138
38139         * shrink-wrap.h: Update comment.
38140         * shrink-wrap.c: Update comment.
38141         (next_block_for_reg): Rename to live_edge_for_reg.
38142         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
38143         (move_insn_for_shrink_wrap): Split live_edge.
38144         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
38145
38146 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
38147
38148         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
38149         Delete.
38150         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
38151         * config/sparc/sparc.md (fptype_ut699): New attribute.
38152         (in_branch_delay): Return false if -mfix-ut699 is specified and
38153         fptype_ut699 is set to single.
38154         (truncdfsf2): Add fptype_ut699 attribute.
38155         (fix_truncdfsi2): Likewise.
38156         (floatsisf2): Change fptype attribute.
38157         (fix_truncsfsi2): Likewise.
38158         (negtf2_notv9): Delete.
38159         (negtf2_v9): Likewise.
38160         (negtf2_hq): New instruction.
38161         (negtf2): New instruction and splitter.
38162         (negdf2_notv9): Rewrite.
38163         (abstf2_notv9): Delete.
38164         (abstf2_hq_v9): Likewise.
38165         (abstf2_v9): Likewise.
38166         (abstf2_hq): New instruction.
38167         (abstf2): New instruction and splitter.
38168         (absdf2_notv9): Rewrite.
38169
38170 2014-05-14  Cary Coutant  <ccoutant@google.com>
38171
38172         PR debug/61013
38173         * opts.c (common_handle_option): Don't special-case "-g".
38174         (set_debug_level): Default to at least level 2 with "-g".
38175
38176 2014-05-14  DJ Delorie  <dj@redhat.com>
38177
38178         * config/msp430/msp430.c (msp430_builtin): Add
38179         MSP430_BUILTIN_DELAY_CYCLES.
38180         (msp430_init_builtins): Register void __delay_cycles(long long).
38181         (msp430_builtin_decl): Add it.
38182         (cg_magic_constant): New.
38183         (msp430_expand_delay_cycles): New.
38184         (msp430_expand_builtin): Call it.
38185         (msp430_print_operand_raw): Change integer printing from "int" to
38186         HOST_WIDE_INT.
38187         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
38188         (delay_cycles_start): New.
38189         (delay_cycles_end): New.
38190         (delay_cycles_32): New.
38191         (delay_cycles_32x): New.
38192         (delay_cycles_16): New.
38193         (delay_cycles_16x): New.
38194         (delay_cycles_2): New.
38195         (delay_cycles_1): New.
38196         * doc/extend.texi: Document __delay_cycles().
38197
38198 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
38199
38200         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
38201         length attribute computation.
38202
38203 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
38204
38205         PR debug/61188
38206         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
38207
38208 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
38209
38210         PR target/61084
38211         * config/sparc/sparc.md: Fix types of low and high in DI constant
38212         splitter.  Use gen_int_mode in some other splitters.
38213
38214 2014-05-14  Martin Jambor  <mjambor@suse.cz>
38215
38216         PR ipa/60897
38217         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
38218
38219 2014-05-14  James Norris  <jnorris@codesourcery.com>
38220
38221         * omp-low.c (expand_parallel_call): Remove shadow variable.
38222         (expand_omp_taskreg): Likewise.
38223
38224 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
38225
38226         * common/config/i386/i386-common.c
38227         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
38228         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
38229         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
38230         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
38231         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
38232         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
38233         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
38234         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
38235         xsavecintrin.h, xsavesintrin.h.
38236         (x86_64-*-*): Ditto.
38237         * config/i386/clflushoptintrin.h: New.
38238         * config/i386/xsavecintrin.h: Ditto.
38239         * config/i386/xsavesintrin.h: Ditto.
38240         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
38241         (bit_XSAVES): Ditto.
38242         (bit_XSAVES): Ditto.
38243         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
38244         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
38245         -mno-clflushopt.
38246         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
38247         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
38248         OPTION_MASK_ISA_XSAVES.
38249         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
38250         -mxsavec, -mxsaves.
38251         (PTA_CLFLUSHOPT) Define.
38252         (PTA_XSAVEC): Ditto.
38253         (PTA_XSAVES): Ditto.
38254         (ix86_option_override_internal): Handle new options.
38255         (ix86_valid_target_attribute_inner_p): Ditto.
38256         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
38257         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
38258         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
38259         (bdesc_special_args): Add __builtin_ia32_xsaves,
38260         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
38261         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
38262         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
38263         (ix86_expand_builtin): Handle new builtins.
38264         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
38265         (TARGET_CLFLUSHOPT_P): Ditto.
38266         (TARGET_XSAVEC): Ditto.
38267         (TARGET_XSAVEC_P): Ditto.
38268         (TARGET_XSAVES): Ditto.
38269         (TARGET_XSAVES_P): Ditto.
38270         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
38271         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
38272         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
38273         (ANY_XRSTOR): New.
38274         (ANY_XRSTOR64): Ditto.
38275         (xrstor): Ditto.
38276         (xrstor): Change into <xrstor>.
38277         (xrstor_rex64): Change into <xrstor>_rex64.
38278         (xrstor64): Change into <xrstor>64
38279         (clflushopt): New.
38280         * config/i386/i386.opt (mclflushopt): New.
38281         (mxsavec): Ditto.
38282         (mxsaves): Ditto.
38283         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
38284         xsavecintrin.h.
38285         * doc/invoke.texi: Document new options.
38286
38287 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
38288
38289         PR rtl-optimization/60866
38290         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
38291         Default it to -1.  Pass it down to init_simplejump_data.
38292         (init_simplejump_data): New parameter old_seqno.  Pass it down
38293         to get_seqno_for_a_jump.
38294         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
38295         initializing new jump seqno as a last resort.  Add comment.
38296         (sel_redirect_edge_and_branch): Save old seqno of the conditional
38297         jump and pass it down to sel_init_new_insn.
38298         (sel_redirect_edge_and_branch_force): Likewise.
38299
38300 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
38301
38302         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
38303         shifted values to avoid build warning.
38304
38305 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
38306
38307         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
38308         * cfgrtl.c (rtl_merge_blocks): Fix comment.
38309         (cfg_layout_merge_blocks): Likewise.
38310         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
38311
38312 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
38313
38314         PR rtl-optimization/60901
38315         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
38316         bb predecessor belongs to the same scheduling region.  Adjust comment.
38317
38318 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
38319
38320         * doc/sourcebuild.texi: (dfp_hw): Document.
38321         (p8vector_hw): Likewise.
38322         (powerpc_eabi_ok): Likewise.
38323         (powerpc_elfv2): Likewise.
38324         (powerpc_htm_ok): Likewise.
38325         (ppc_recip_hw): Likewise.
38326         (vsx_hw): Likewise.
38327
38328 2014-05-13  Cary Coutant  <ccoutant@google.com>
38329
38330         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
38331
38332 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
38333
38334         * gengtype-parse.c (require3): Eliminate in favor of...
38335         (require4): New.
38336         (require_template_declaration): Update to support optional single *
38337         on a type.
38338
38339         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
38340         (create_user_defined_type): Handle a single level of explicit
38341         pointerness within template arguments.
38342         (struct write_types_data): Add field "kind".
38343         (filter_type_name): Handle "*" character.
38344         (write_user_func_for_structure_ptr): Require a write_types_data
38345         rather than just a prefix string, so that we can look up the kind
38346         of the wtd and use it as an index into wrote_user_func_for_ptr,
38347         ensuring that such functions are written at most once.  Support
38348         subclasses by invoking the marking function of the ultimate base class.
38349         (write_user_func_for_structure_body): Require a write_types_data
38350         rather than just a prefix string, so that we can pass this to
38351         write_user_func_for_structure_ptr.
38352         (write_func_for_structure): Likewise.
38353         (ggc_wtd): Add initializer of new "kind" field.
38354         (pch_wtd): Likewise.
38355
38356         * gengtype.h (enum write_types_kinds): New.
38357         (struct type): Add field wrote_user_func_for_ptr to the "s"
38358         union member.
38359
38360 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
38361
38362         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
38363         instead of const_binop.
38364         (fold_binary_loc): Likewise.
38365
38366 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
38367
38368         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
38369         calculation to match get_ref_base_and_extent.
38370
38371 2014-05-13  Catherine Moore  <clm@codesourcery.com>
38372             Sandra Loosemore  <sandra@codesourcery.com>
38373
38374         * configure.ac: Fix assembly for explicit JALR relocation check.
38375         * configure: Regenerate.
38376
38377 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38378
38379         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
38380         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
38381         Remove associated type declarations and initialisations.
38382         (arm_expand_neon_builtin): Likewise.
38383         (neon_emit_pair_result_insn): Delete.
38384         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
38385         * config/arm/neon.md (neon_vtrn<mode>): Delete.
38386         (neon_vzip<mode>): Likewise.
38387         (neon_vuzp<mode>): Likewise.
38388
38389 2014-05-13  Richard Biener  <rguenther@suse.de>
38390
38391         PR ipa/60973
38392         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
38393         it needs revisiting whether the call still may be tail-called.
38394
38395 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38396
38397         * rtl.def (SYMBOL_REF): Remove middle "0" field.
38398         * rtl.h (block_symbol): Reduce number of fields to 2.
38399         (rtx_def): Add u2.symbol_ref_flags.
38400         (SYMBOL_REF_FLAGS): Use it.
38401         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
38402         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
38403         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
38404         Lower index of SYMBOL_REF_DATA.
38405         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
38406         Print SYMBOL_REF_FLAGS at the same time.
38407         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
38408
38409 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38410
38411         * rtl.def (VAR_LOCATION): Remove "i" field.
38412         * rtl.h (rtx_def): Add u2.var_location_status.
38413         (PAT_VAR_LOCATION_STATUS): Use it.
38414         (gen_rtx_VAR_LOCATION): Declare.
38415         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
38416         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
38417         * var-tracking.c (emit_note_insn_var_location): Remove casts.
38418
38419 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38420
38421         * rtl.def (scratch): Fix outdated comment and remove "0" field.
38422         * gengtype.c (adjust_field_rtx_def): Update accordingly.
38423
38424 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38425
38426         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
38427         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
38428         * rtl.h (rtx_def): Add insn_uid to u2 field.
38429         (RTX_FLAG_CHECK8): Delete in favor of...
38430         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
38431         (INSN_DELETED_P): Update accordingly.
38432         (INSN_UID): Use u2.insn_uid.
38433         (INSN_CHAIN_CODE_P): Define.
38434         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
38435         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
38436         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
38437         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
38438         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
38439         indices accordingly.
38440         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
38441         Update indices for insn-chain rtxes.
38442         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
38443         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
38444         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
38445         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
38446         * combine.c (try_combine): Likewise.
38447         * ira.c (setup_prohibited_mode_move_regs): Likewise.
38448
38449 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38450
38451         * rtl.def (REG): Remove middle field.
38452         * rtl.h (rtx_def): Add orignal_regno to u2.
38453         (ORIGINAL_REGNO): Use it instead of field 1.
38454         (REG_ATTRS): Lower field index accordingly.
38455         * gengtype.c (adjust_field_rtx_def): Remove handling of
38456         ORIGINAL_REGNO.  Move REG_ATTRS index down.
38457         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
38458         code that prints the REGNO.
38459
38460 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38461
38462         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
38463         GENERATOR_FILE.
38464
38465 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38466
38467         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
38468
38469 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
38470
38471         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
38472         (alloc_iv): Lower base expressions containing ADDR_EXPR.
38473
38474 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
38475
38476         * config/aarch64/aarch64-protos.h
38477         (aarch64_hard_regno_caller_save_mode): New prototype.
38478         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
38479         New function.
38480         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
38481
38482 2014-05-13  Christian Bruel  <christian.bruel@st.com>
38483
38484         * target.def (mode_switching): New hook vector.
38485         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
38486         (mode_exit, modepriority_to_mode): Likewise.
38487         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
38488         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38489         * target.h: Include tm.h and hard-reg-set.h.
38490         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
38491         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
38492         * doc/tm.texi Regenerate.
38493         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38494         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38495         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
38496         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
38497         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38498         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38499         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
38500         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
38501         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
38502         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
38503         (ix86_emit_mode_set): Hookify.
38504         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
38505         Delete.
38506         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38507         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
38508         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
38509         (epiphany_mode_priority_to_mode): Remove declaration.
38510         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
38511         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
38512         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
38513         Likewise.
38514         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
38515         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
38516         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
38517
38518 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
38519
38520         PR target/61060
38521         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
38522         is const0_rtx, return immediately.  Don't test count == 0 when
38523         it is always true.
38524
38525 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38526
38527         * Makefile.in: add shrink-wrap.o.
38528         * config/i386/i386.c: include "shrink-wrap.h"
38529         * function.c: Likewise.
38530         (requires_stack_frame_p, next_block_for_reg,
38531         move_insn_for_shrink_wrap, prepare_shrink_wrap,
38532         dup_block_and_redirect): Move to shrink-wrap.c
38533         (thread_prologue_and_epilogue_insns): Extract three code segments
38534         as functions in shrink-wrap.c
38535         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
38536         shrink-wrap.h
38537         * shrink-wrap.c: New file.
38538         * shrink-wrap.h: New file.
38539
38540 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38541
38542         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
38543         reference to Solaris.
38544
38545 2014-05-12  Mike Stump  <mikestump@comcast.net>
38546
38547         PR other/31778
38548         * genattrtab.c (filename): Add.
38549         (convert_set_attr_alternative): Improve error message.
38550         (check_defs): Restore read_md_filename for error messages.
38551         (gen_insn): Save filename.
38552
38553 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
38554
38555         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
38556         -fno-local-ivars and -fivar-visibility.
38557         * c-family/c.opt: Make -Wshadow also implicitly enable
38558         -Wshadow-ivar.
38559
38560 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38561
38562         * doc/tm.texi: Remove reference to deleted macro.
38563         * doc/tm.texi.in: Likewise.
38564
38565 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
38566
38567         PR target/60991
38568         * config/avr/avr.c (avr_out_store_psi): Use correct constant
38569         to restore Y.
38570
38571 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
38572
38573         PR libgcc/61152
38574         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38575         * config/arm/aout.h (License): Same.
38576         * config/arm/bpabi.h (License): Same.
38577         * config/arm/elf.h (License): Same.
38578         * config/arm/linux-elf.h (License): Same.
38579         * config/arm/linux-gas.h (License): Same.
38580         * config/arm/netbsd-elf.h (License): Same.
38581         * config/arm/uclinux-eabi.h (License): Same.
38582         * config/arm/uclinux-elf.h (License): Same.
38583         * config/arm/vxworks.h (License): Same.
38584
38585 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
38586
38587         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38588         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38589         number of operands to 3.
38590         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38591         * tree-nested.c (convert_nonlocal_omp_clauses,
38592         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38593         * gimplify.c (gimplify_scan_omp_clauses): Handle
38594         OMP_CLAUSE_LINEAR_STMT.
38595         * omp-low.c (lower_rec_input_clauses): Fix typo.
38596         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38597         cast between Fortran boolean_type_node and C _Bool if
38598         needed.
38599
38600 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
38601
38602         PR tree-optimization/61136
38603         * wide-int.h (multiple_of_p): Define a version that doesn't return
38604         the quotient.
38605         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38606         integer_zerop/const_binop pair.
38607         (multiple_of_p): Likewise, converting both operands to widest_int
38608         precision.
38609
38610 2014-05-09  Teresa Johnson  <tejohnson@google.com>
38611
38612         * cgraphunit.c (analyze_functions): Use correct dump file.
38613
38614 2014-05-09  Florian Weimer  <fweimer@redhat.com>
38615
38616         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38617         expand_used_vars.
38618         (stack_protect_return_slot_p): New function.
38619         (expand_used_vars): Call stack_protect_decl_p and
38620         stack_protect_return_slot_p for -fstack-protector-strong.
38621
38622 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
38623         Andrew Haley <aph@redhat.com>
38624         Richard Sandiford <rdsandiford@googlemail.com>
38625
38626         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38627         pages.
38628
38629 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
38630
38631         PR middle-end/61111
38632         * fold-const.c (fold_binary_loc): Changed width of mask.
38633
38634 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38635
38636         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38637         unsigned int initializers for regno_in, regno_out.
38638
38639 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38640
38641         PR target/61055
38642         * config/avr/avr.md (cc): Add new attribute set_vzn.
38643         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38644         Set cc insn attribute to set_vzn instead of set_zn for alternatives
38645         with INC, DEC or NEG.
38646         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38647         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38648         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38649
38650 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38651
38652         Revert:
38653         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38654
38655         * wide-int.cc (UTItype): Define.
38656         (UDWtype): Define for appropriate W_TYPE_SIZE.
38657
38658 2014-05-09  Richard Biener  <rguenther@suse.de>
38659
38660         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38661         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38662         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38663         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38664         ssa_propagate): Adjust.
38665
38666 2014-05-08  Jeff Law  <law@redhat.com>
38667
38668         PR tree-optimization/61009
38669         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38670         tri-state rather than a boolean.  When a block is too big to
38671         thread through, inform caller via negative return value.
38672         (thread_across_edge): If a block was too big for normal threading,
38673         then it's too big for a joiner too, so remove temporary equivalences
38674         and return immediately.
38675
38676 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38677             Matthias Klose  <doko@ubuntu.com>
38678
38679         PR driver/61106
38680         * optc-gen.awk: Fix option handling for -Wunused-parameter.
38681
38682 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38683
38684         PR target/59952
38685         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38686
38687 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38688
38689         PR target/61092
38690         * config/alpha/alpha.c: Include gimple-iterator.h.
38691         (alpha_gimple_fold_builtin): New function.  Move
38692         ALPHA_BUILTIN_UMULH folding from ...
38693         (alpha_fold_builtin): ... here.
38694         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38695
38696 2014-05-08  Wei Mi  <wmi@google.com>
38697
38698         PR target/58066
38699         * config/i386/i386.c (ix86_compute_frame_layout): Update
38700         preferred_stack_boundary for call, expanded from tls descriptor.
38701         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38702         to depend on SP register.
38703         (*tls_local_dynamic_base_32_gnu): Ditto.
38704         (*tls_local_dynamic_32_once): Ditto.
38705         (tls_global_dynamic_64_<mode>): Set
38706         ix86_tls_descriptor_calls_expanded_in_cfun.
38707         (tls_local_dynamic_base_64_<mode>): Ditto.
38708         (tls_global_dynamic_32): Set
38709         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38710         to depend on SP register.
38711         (tls_local_dynamic_base_32): Ditto.
38712
38713 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38714
38715         * config/arm/arm_neon.h: Update comment.
38716         * config/arm/neon-docgen.ml: Delete.
38717         * config/arm/neon-gen.ml: Delete.
38718         * doc/arm-neon-intrinsics.texi: Update comment.
38719
38720 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38721
38722         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38723         and v4sf versions.
38724         (vand, vorr, veor, vorn, vbic): Remove.
38725         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38726         iterator.
38727         (neon_vsub_unspec): Likewise.
38728         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38729
38730 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38731
38732         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38733         (vadd_s16): Likewise.
38734         (vadd_s32): Likewise.
38735         (vadd_f32): Likewise.
38736         (vadd_u8): Likewise.
38737         (vadd_u16): Likewise.
38738         (vadd_u32): Likewise.
38739         (vadd_s64): Likewise.
38740         (vadd_u64): Likewise.
38741         (vaddq_s8): Likewise.
38742         (vaddq_s16): Likewise.
38743         (vaddq_s32): Likewise.
38744         (vaddq_s64): Likewise.
38745         (vaddq_f32): Likewise.
38746         (vaddq_u8): Likewise.
38747         (vaddq_u16): Likewise.
38748         (vaddq_u32): Likewise.
38749         (vaddq_u64): Likewise.
38750         (vmul_s8): Likewise.
38751         (vmul_s16): Likewise.
38752         (vmul_s32): Likewise.
38753         (vmul_f32): Likewise.
38754         (vmul_u8): Likewise.
38755         (vmul_u16): Likewise.
38756         (vmul_u32): Likewise.
38757         (vmul_p8): Likewise.
38758         (vmulq_s8): Likewise.
38759         (vmulq_s16): Likewise.
38760         (vmulq_s32): Likewise.
38761         (vmulq_f32): Likewise.
38762         (vmulq_u8): Likewise.
38763         (vmulq_u16): Likewise.
38764         (vmulq_u32): Likewise.
38765         (vsub_s8): Likewise.
38766         (vsub_s16): Likewise.
38767         (vsub_s32): Likewise.
38768         (vsub_f32): Likewise.
38769         (vsub_u8): Likewise.
38770         (vsub_u16): Likewise.
38771         (vsub_u32): Likewise.
38772         (vsub_s64): Likewise.
38773         (vsub_u64): Likewise.
38774         (vsubq_s8): Likewise.
38775         (vsubq_s16): Likewise.
38776         (vsubq_s32): Likewise.
38777         (vsubq_s64): Likewise.
38778         (vsubq_f32): Likewise.
38779         (vsubq_u8): Likewise.
38780         (vsubq_u16): Likewise.
38781         (vsubq_u32): Likewise.
38782         (vsubq_u64): Likewise.
38783         (vand_s8): Likewise.
38784         (vand_s16): Likewise.
38785         (vand_s32): Likewise.
38786         (vand_u8): Likewise.
38787         (vand_u16): Likewise.
38788         (vand_u32): Likewise.
38789         (vand_s64): Likewise.
38790         (vand_u64): Likewise.
38791         (vandq_s8): Likewise.
38792         (vandq_s16): Likewise.
38793         (vandq_s32): Likewise.
38794         (vandq_s64): Likewise.
38795         (vandq_u8): Likewise.
38796         (vandq_u16): Likewise.
38797         (vandq_u32): Likewise.
38798         (vandq_u64): Likewise.
38799         (vorr_s8): Likewise.
38800         (vorr_s16): Likewise.
38801         (vorr_s32): Likewise.
38802         (vorr_u8): Likewise.
38803         (vorr_u16): Likewise.
38804         (vorr_u32): Likewise.
38805         (vorr_s64): Likewise.
38806         (vorr_u64): Likewise.
38807         (vorrq_s8): Likewise.
38808         (vorrq_s16): Likewise.
38809         (vorrq_s32): Likewise.
38810         (vorrq_s64): Likewise.
38811         (vorrq_u8): Likewise.
38812         (vorrq_u16): Likewise.
38813         (vorrq_u32): Likewise.
38814         (vorrq_u64): Likewise.
38815         (veor_s8): Likewise.
38816         (veor_s16): Likewise.
38817         (veor_s32): Likewise.
38818         (veor_u8): Likewise.
38819         (veor_u16): Likewise.
38820         (veor_u32): Likewise.
38821         (veor_s64): Likewise.
38822         (veor_u64): Likewise.
38823         (veorq_s8): Likewise.
38824         (veorq_s16): Likewise.
38825         (veorq_s32): Likewise.
38826         (veorq_s64): Likewise.
38827         (veorq_u8): Likewise.
38828         (veorq_u16): Likewise.
38829         (veorq_u32): Likewise.
38830         (veorq_u64): Likewise.
38831         (vbic_s8): Likewise.
38832         (vbic_s16): Likewise.
38833         (vbic_s32): Likewise.
38834         (vbic_u8): Likewise.
38835         (vbic_u16): Likewise.
38836         (vbic_u32): Likewise.
38837         (vbic_s64): Likewise.
38838         (vbic_u64): Likewise.
38839         (vbicq_s8): Likewise.
38840         (vbicq_s16): Likewise.
38841         (vbicq_s32): Likewise.
38842         (vbicq_s64): Likewise.
38843         (vbicq_u8): Likewise.
38844         (vbicq_u16): Likewise.
38845         (vbicq_u32): Likewise.
38846         (vbicq_u64): Likewise.
38847         (vorn_s8): Likewise.
38848         (vorn_s16): Likewise.
38849         (vorn_s32): Likewise.
38850         (vorn_u8): Likewise.
38851         (vorn_u16): Likewise.
38852         (vorn_u32): Likewise.
38853         (vorn_s64): Likewise.
38854         (vorn_u64): Likewise.
38855         (vornq_s8): Likewise.
38856         (vornq_s16): Likewise.
38857         (vornq_s32): Likewise.
38858         (vornq_s64): Likewise.
38859         (vornq_u8): Likewise.
38860         (vornq_u16): Likewise.
38861         (vornq_u32): Likewise.
38862         (vornq_u64): Likewise.
38863
38864 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38865
38866         * wide-int.cc (UTItype): Define.
38867         (UDWtype): Define for appropriate W_TYPE_SIZE.
38868
38869 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
38870
38871         PR tree-optimization/59100
38872         * tree-ssa-phiopt.c: Include tree-inline.h.
38873         (neutral_element_p, absorbing_element_p): New functions.
38874         (value_replacement): Handle conditional binary operations with a
38875         neutral or absorbing element.
38876
38877 2014-05-08  Richard Biener  <rguenther@suse.de>
38878
38879         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38880         folding the expression.
38881         (valueize_expr): Remove.
38882         (visit_reference_op_load): Do not valueize the result of
38883         vn_get_expr_for.
38884         (simplify_binary_expression): Likewise.
38885         (simplify_unary_expression): Likewise.
38886
38887 2014-05-08  Richard Biener  <rguenther@suse.de>
38888
38889         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38890         looking at TYPE_ARG_TYPES.
38891
38892 2014-05-08  Richard Biener  <rguenther@suse.de>
38893
38894         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38895         pointer propagation special-case.
38896
38897 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
38898
38899         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38900         core part of address expressions.
38901
38902 2014-05-08  Alan Modra  <amodra@gmail.com>
38903
38904         PR target/60737
38905         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38906         loads and stores when -mno-strict-align at any alignment.
38907         (expand_block_clear): Similarly.  Also correct calculation of
38908         instruction count.
38909
38910 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38911
38912         PR middle-end/39246
38913         * tree-complex.c (expand_complex_move): Keep line info when expanding
38914         complex move.
38915         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38916         of complex expression. Use new argument to display correct location
38917         for values coming from phi statement.
38918         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38919         (warn_uninitialized_phi): Pass location of phi argument to
38920         warn_uninit.
38921         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38922         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38923
38924 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
38925
38926         * config/rs6000/predicates.md (indexed_address_mem): New.
38927         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38928         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38929         fpstore_ux, fpstore_u.
38930         (sign_extend, indexed, update): New.
38931         (cell_micro): Adjust.
38932         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38933         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38934         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38935         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38936         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38937         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38938         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38939         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38940         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38941         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38942         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38943         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38944         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38945         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38946         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38947
38948         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38949         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38950         *vsx_extract_<mode>_store): Adjust.
38951         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38952         is_cracked_insn, insn_must_be_first_in_group,
38953         insn_must_be_last_in_group): Adjust.
38954
38955         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38956         Adjust.
38957         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38958         ppc440-fpstore): Adjust.
38959         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38960         ppc476-fpstore): Adjust.
38961         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38962         ppc601-fpstore): Adjust.
38963         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38964         Adjust.
38965         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38966         Adjust.
38967         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38968         ppc7450-fpstore): Adjust.
38969         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38970         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38971         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38972         Adjust.
38973         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38974         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38975         cell-fpstore, cell-fpstore-update): Adjust.
38976         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38977         ppce300c3_store, ppce300c3_fpstore): Adjust.
38978         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38979         e500mc_fpstore): Adjust.
38980         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38981         e500mc64_store, e500mc64_fpstore): Adjust.
38982         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38983         e5500_fpstore): Adjust.
38984         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38985         e6500_fpstore): Adjust.
38986         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38987         Adjust.
38988         * config/rs6000/power4.md (power4-load, power4-load-ext,
38989         power4-load-ext-update, power4-load-ext-update-indexed,
38990         power4-load-update-indexed, power4-load-update, power4-fpload,
38991         power4-fpload-update, power4-store, power4-store-update,
38992         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38993         Adjust.
38994         * config/rs6000/power5.md (power5-load, power5-load-ext,
38995         power5-load-ext-update, power5-load-ext-update-indexed,
38996         power5-load-update-indexed, power5-load-update, power5-fpload,
38997         power5-fpload-update, power5-store, power5-store-update,
38998         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38999         Adjust.
39000         * config/rs6000/power6.md (power6-load, power6-load-ext,
39001         power6-load-update, power6-load-update-indexed,
39002         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
39003         power6-fpload-update, power6-store, power6-store-update,
39004         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
39005         Adjust.
39006         * config/rs6000/power7.md (power7-load, power7-load-ext,
39007         power7-load-update, power7-load-update-indexed,
39008         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
39009         power7-fpload-update, power7-store, power7-store-update,
39010         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
39011         Adjust.
39012         * config/rs6000/power8.md (power8-load, power8-load-update,
39013         power8-load-ext, power8-load-ext-update, power8-fpload,
39014         power8-fpload-update, power8-store, power8-store-update-indexed,
39015         power8-fpstore, power8-fpstore-update): Adjust.
39016         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
39017         Adjust.
39018         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
39019         titan_lsu_store, titan_lsu_fpstore): Adjust.
39020         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
39021
39022 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
39023
39024         PR target/60884
39025         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
39026         unrolled byte insns.  Emit address increments after move insns.
39027
39028 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
39029
39030         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
39031         const_gimple, rather than a gimple.
39032         (gimple_call_builtin_p): Likewise, for the three variants.
39033
39034         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
39035         (gimple_call_builtin_p): Likewise, for the three variants.
39036
39037 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
39038
39039         PR tree-optimization/61095
39040         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
39041
39042 2014-05-07  Richard Biener  <rguenther@suse.de>
39043
39044         PR tree-optimization/61034
39045         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
39046         (maybe_skip_until): Use translate to take into account
39047         lattices when trying to do disambiguations.
39048         (get_continuation_for_phi_1): Likewise.
39049         (get_continuation_for_phi): Adjust for added translate arguments.
39050         (walk_non_aliased_vuses): Likewise.
39051         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
39052         (walk_non_aliased_vuses): Likewise.
39053         (call_may_clobber_ref_p_1): Declare.
39054         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
39055         calls.  Stop early if we are only supposed to disambiguate.
39056         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
39057
39058 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
39059
39060         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
39061         Emit an error when the function has arguments.
39062
39063 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
39064
39065         * cfgloop.h (unswitch_loops): Remove.
39066         * doc/passes.texi: Remove references to loop-unswitch.c
39067         * timevar.def (TV_LOOP_UNSWITCH): Remove.
39068
39069 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
39070
39071         * tree-vect-data-refs.c (vect_grouped_load_supported): New
39072         check for loads group of length 3.
39073         (vect_permute_load_chain): New permutations for loads group of
39074         length 3.
39075         * tree-vect-stmts.c (vect_model_load_cost): Change cost
39076         of vec_perm_shuffle for the new permutations.
39077
39078 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
39079
39080         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
39081         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
39082         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
39083         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
39084         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
39085         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
39086         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
39087         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
39088
39089 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
39090
39091         * loop-unswitch.c: Delete.
39092
39093 2014-05-07  Richard Biener  <rguenther@suse.de>
39094
39095         * config.gcc: Always set need_64bit_hwint to yes.
39096
39097 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
39098
39099         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
39100         of using optimize_size.
39101
39102 2014-05-06  Mike Stump  <mikestump@comcast.net>
39103
39104         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
39105
39106 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
39107
39108         * config/i386/sse.md (*mov<mode>_internal)
39109         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
39110         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
39111         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
39112         (*<code><mode>3, *andnot<mode>3<mask_name>)
39113         (<mask_codefor><code><mode>3<mask_name>): Only consider
39114         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
39115
39116 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
39117
39118         Revert:
39119         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39120
39121         * lra-constraints.c (valid_address_p): Move earlier in file.
39122         Add a constraint argument to the address_info version.
39123         (satisfies_memory_constraint_p): New function.
39124         (satisfies_address_constraint_p): Likewise.
39125         (process_alt_operands, curr_insn_transform): Use them.
39126         (process_address): Pass the constraint to valid_address_p when
39127         checking address operands.
39128
39129 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
39130
39131         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
39132         to their respective blocks.  Fix inadvertent use of "node".
39133
39134 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
39135
39136         * emit-rtl.c (init_derived_machine_modes): New functionm, split
39137         out from...
39138         (init_emit_once): ...here.
39139         * rtl.h (init_derived_machine_modes): Declare.
39140         * toplev.c (do_compile): Call it even if no_backend.
39141
39142 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
39143             Mike Stump  <mikestump@comcast.net>
39144             Richard Sandiford  <rdsandiford@googlemail.com>
39145             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39146
39147         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
39148         (rtx_equal_for_memref_p): Update comment.
39149         (adjust_offset_for_component_ref): Use wide-int interfaces.
39150         * builtins.c (get_object_alignment_2): Likewise.
39151         (c_readstr): Likewise.
39152         (target_char_cast): Add comment.
39153         (determine_block_size): Use wide-int interfaces.
39154         (expand_builtin_signbit): Likewise.
39155         (fold_builtin_int_roundingfn): Likewise.
39156         (fold_builtin_bitop): Likewise.
39157         (fold_builtin_bswap): Likewise.
39158         (fold_builtin_logarithm): Use signop.
39159         (fold_builtin_pow): Likewise.
39160         (fold_builtin_memory_op): Use wide-int interfaces.
39161         (fold_builtin_object_size): Likewise.
39162         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
39163         nb_iterations_estimate.
39164         (record_niter_bound): Use wide-int interfaces.
39165         (get_estimated_loop_iterations_int): Likewise.
39166         (get_estimated_loop_iterations): Likewise.
39167         (get_max_loop_iterations): Likewise.
39168         * cfgloop.h: Include wide-int.h.
39169         (struct nb_iter_bound): Change bound to widest_int.
39170         (struct loop): Change nb_iterations_upper_bound and
39171         nb_iterations_estimate to widest_int.
39172         (record_niter_bound): Switch to use widest_int.
39173         (get_estimated_loop_iterations): Likewise.
39174         (get_max_loop_iterations): Likewise.
39175         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
39176         update for wide-int.
39177         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
39178         * combine.c (try_combine): Likewise.
39179         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
39180         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
39181         interfaces.
39182         (aarch64_float_const_representable_p): Likewise.
39183         * config/arc/arc.c: Include wide-int.h.
39184         (arc_can_use_doloop_p): Use wide-int interfaces.
39185         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
39186         (vfp3_const_double_index): Likewise.
39187         * config/avr/avr.c (avr_out_round): Likewise.
39188         (avr_fold_builtin): Likewise.
39189         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
39190         (bfin_can_use_doloop_p): Likewise.
39191         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
39192         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
39193         * config/i386/i386.c: Include wide-int.h.
39194         (ix86_data_alignment): Use wide-int interfaces.
39195         (ix86_local_alignment): Likewise.
39196         (ix86_emit_swsqrtsf): Update real_from_integer.
39197         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
39198         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
39199         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
39200         (zero_constant): Likewise.
39201         (input_operand): Likewise.
39202         (splat_input_operand): Likewise.
39203         (non_logical_cint_operand): Change const_double to const_wide_int.
39204         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
39205         (easy_altivec_constant): Remove comment.
39206         (paired_expand_vector_init): Use CONSTANT_P.
39207         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
39208         (rs6000_emit_move): Update checks.
39209         (rs6000_aggregate_candidate): Use wide-int interfaces.
39210         (rs6000_expand_ternop_builtin): Likewise.
39211         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
39212         (rs6000_assemble_integer): Likewise.
39213         (rs6000_hash_constant): Likewise.
39214         (output_toc): Likewise.
39215         (rs6000_rtx_costs): Likewise.
39216         (rs6000_emit_swrsqrt); Update call to real_from_integer.
39217         * config/rs6000/rs6000-c.c: Include wide-int.h.
39218         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
39219         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
39220         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
39221         Handle CONST_WIDE_INT.
39222         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
39223         Use tree_fits_uhwi_p.
39224         * config/sparc/sparc.c: Include wide-int.h.
39225         (sparc_fold_builtin): Use wide-int interfaces.
39226         * config/vax/vax.c: Include wide-int.h.
39227         (vax_float_literal): Use real_from_integer.
39228         * coretypes.h (struct hwivec_def): New.
39229         (hwivec): New.
39230         (const_hwivec): New.
39231         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
39232         (equiv_constant): Handle CONST_WIDE_INT.
39233         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
39234         (cselib_hash_rtx): Handle CONST_WIDE_INT.
39235         * dbxout.c (stabstr_U): Use wide-int interfaces.
39236         (dbxout_type): Update to use cst_fits_shwi_p.
39237         * defaults.h (LOG2_BITS_PER_UNIT): Define.
39238         (TARGET_SUPPORTS_WIDE_INT): Add default.
39239         * dfp.c: Include wide-int.h.
39240         (decimal_real_to_integer2): Use wide-int interfaces and rename to
39241         decimal_real_to_integer.
39242         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
39243         decimal_real_to_integer.
39244         * doc/generic.texi (Constant expressions): Update for wide_int.
39245         * doc/rtl.texi (const_double): Likewise.
39246         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
39247         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
39248         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
39249         (REAL_VALUE_FROM_INT): Remove.
39250         (TARGET_SUPPORTS_WIDE_INT): New.
39251         * doc/tm.texi: Regenerate.
39252         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
39253         * double-int.h: Include wide-int.h.
39254         (struct wi::int_traits): New.
39255         * dwarf2out.c (get_full_len): New.
39256         (dw_val_equal_p): Add case dw_val_class_wide_int.
39257         (size_of_loc_descr): Likewise.
39258         (output_loc_operands): Likewise.
39259         (insert_double): Remove.
39260         (insert_wide_int): New.
39261         (add_AT_wide): New.
39262         (print_die): Add case dw_val_class_wide_int.
39263         (attr_checksum): Likewise.
39264         (attr_checksum_ordered): Likewise.
39265         (same_dw_val_p): Likewise.
39266         (size_of_die): Likewise.
39267         (value_format): Likewise.
39268         (output_die): Likewise.
39269         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
39270         Use wide-int.
39271         (clz_loc_descriptor): Use wide-int interfaces.
39272         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
39273         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
39274         (round_up_to_align): Use wide-int interfaces.
39275         (field_byte_offset): Likewise.
39276         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
39277         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
39278         CONST_DOUBLE handling.  Use wide-int interfaces.
39279         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
39280         (gen_enumeration_type_die): Use add_AT_wide.
39281         (hash_loc_operands): Add case dw_val_class_wide_int.
39282         (compare_loc_operands): Likewise.
39283         * dwarf2out.h: Include wide-int.h.
39284         (wide_int_ptr): New.
39285         (enum dw_val_class): Add dw_val_class_wide_int.
39286         (struct dw_val_struct): Add val_wide.
39287         * emit-rtl.c (const_wide_int_htab): New.
39288         (const_wide_int_htab_hash): New.
39289         (const_wide_int_htab_eq): New.
39290         (lookup_const_wide_int): New.
39291         (const_double_htab_hash): Use wide-int interfaces.
39292         (const_double_htab_eq): Likewise.
39293         (rtx_to_double_int): Conditionally compile for wide-int.
39294         (immed_double_int_const): Rename to immed_wide_int_const and
39295         update for wide-int.
39296         (immed_double_const): Conditionally compile for wide-int.
39297         (init_emit_once): Use wide-int interfaces.
39298         * explow.c (plus_constant): Likewise.
39299         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
39300         (lshift_value): Use wide-int interfaces.
39301         (expand_mult): Likewise.
39302         (choose_multiplier): Likewise.
39303         (expand_smod_pow2): Likewise.
39304         (make_tree): Likewise.
39305         * expr.c (convert_modes): Consolidate handling of constants.
39306         Use wide-int interfaces.
39307         (emit_group_load_1): Add note.
39308         (store_expr): Update comment.
39309         (get_inner_reference): Use wide-int interfaces.
39310         (expand_constructor): Update comment.
39311         (expand_expr_real_2): Use wide-int interfaces.
39312         (expand_expr_real_1): Likewise.
39313         (reduce_to_bit_field_precision): Likewise.
39314         (const_vector_from_tree): Likewise.
39315         * final.c: Include wide-int-print.h.
39316         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
39317         * fixed-value.c: Include wide-int.h.
39318         (fixed_from_string): Use wide-int interfaces.
39319         (fixed_to_decimal): Likewise.
39320         (fixed_convert_from_real): Likewise.
39321         (real_convert_from_fixed): Likewise.
39322         * fold-const.h (mem_ref_offset): Return an offset_int.
39323         (div_if_zero_remainder): Remove code parameter.
39324         * fold-const.c (div_if_zero_remainder): Remove code parameter.
39325         Use wide-int interfaces.
39326         (may_negate_without_overflow_p): Use wide-int interfaces.
39327         (negate_expr_p): Likewise.
39328         (fold_negate_expr): Likewise.
39329         (int_const_binop_1): Likewise.
39330         (const_binop): Likewise.
39331         (fold_convert_const_int_from_int): Likewise.
39332         (fold_convert_const_int_from_real): Likewise.
39333         (fold_convert_const_int_from_fixed): Likewise.
39334         (fold_convert_const_fixed_from_int): Likewise.
39335         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
39336         (sign_bit_p): Use wide-int interfaces.
39337         (make_range_step): Likewise.
39338         (build_range_check): Likewise.  Pass an integer of the correct type
39339         instead of using integer_one_node.
39340         (range_predecessor): Pass an integer of the correct type instead
39341         of using integer_one_node.
39342         (range_successor): Likewise.
39343         (merge_ranges): Likewise.
39344         (unextend): Use wide-int interfaces.
39345         (extract_muldiv_1): Likewise.
39346         (fold_div_compare): Likewise.
39347         (fold_single_bit_test): Likewise.
39348         (fold_sign_changed_comparison): Likewise.
39349         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
39350         (fold_plusminus_mult_expr): Use wide-int interfaces.
39351         (native_encode_int): Likewise.
39352         (native_interpret_int): Likewise.
39353         (fold_unary_loc): Likewise.
39354         (pointer_may_wrap_p): Likewise.
39355         (size_low_cst): Likewise.
39356         (mask_with_tz): Likewise.
39357         (fold_binary_loc): Likewise.
39358         (fold_ternary_loc): Likewise.
39359         (multiple_of_p): Likewise.
39360         (tree_call_nonnegative_warnv_p): Update calls to
39361         tree_int_cst_min_precision and real_from_integer.
39362         (fold_negate_const): Use wide-int interfaces.
39363         (fold_abs_const): Likewise.
39364         (fold_relational_const): Use tree_int_cst_lt.
39365         (round_up_loc): Use wide-int interfaces.
39366         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
39367         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
39368         * gengtype.c: Remove include of double-int.h.
39369         (do_typedef): Use wide-int interfaces.
39370         (open_base_files): Add wide-int.h.
39371         (main): Add offset_int and widest_int typedefs.
39372         * gengtype-lex.l: Handle "^".
39373         (CXX_KEYWORD): Add "static".
39374         * gengtype-parse.c (require3): New.
39375         (require_template_declaration): Handle constant template arguments
39376         and nested templates.
39377         * gengtype-state.c: Don't include "double-int.h".
39378         * genpreds.c (write_one_predicate_function): Update comment.
39379         (write_tm_constrs_h): Add check for hval and lval use in
39380         CONST_WIDE_INT.
39381         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
39382         (add_to_sequence): Likewise.
39383         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
39384         and const_double_operand.
39385         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
39386         interfaces.
39387         * gimple-fold.c (get_base_constructor): Likewise.
39388         (fold_array_ctor_reference): Likewise.
39389         (fold_nonarray_ctor_reference): Likewise.
39390         (fold_const_aggregate_ref_1): Likewise.
39391         (gimple_val_nonnegative_real_p): Likewise.
39392         (gimple_fold_indirect_ref): Likewise.
39393         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
39394         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
39395         (struct slsr_cand_d): Change index to be widest_int.
39396         (struct incr_info_d): Change incr to be widest_int.
39397         (alloc_cand_and_find_basis): Use wide-int interfaces.
39398         (slsr_process_phi): Likewise.
39399         (backtrace_base_for_ref): Likewise.  Return a widest_int.
39400         (restructure_reference): Take a widest_int instead of a double_int.
39401         (slsr_process_ref): Use wide-int interfaces.
39402         (create_mul_ssa_cand): Likewise.
39403         (create_mul_imm_cand): Likewise.
39404         (create_add_ssa_cand): Likewise.
39405         (create_add_imm_cand): Take a widest_int instead of a double_int.
39406         (slsr_process_add): Use wide-int interfaces.
39407         (slsr_process_cast): Likewise.
39408         (slsr_process_copy): Likewise.
39409         (dump_candidate): Likewise.
39410         (dump_incr_vec): Likewise.
39411         (replace_ref): Likewise.
39412         (cand_increment): Likewise.  Return a widest_int.
39413         (cand_abs_increment): Likewise.
39414         (replace_mult_candidate): Take a widest_int instead of a double_int.
39415         (replace_unconditional_candidate): Use wide-int interfaces.
39416         (incr_vec_index): Take a widest_int instead of a double_int.
39417         (create_add_on_incoming_edge): Likewise.
39418         (create_phi_basis): Use wide-int interfaces.
39419         (replace_conditional_candidate): Likewise.
39420         (record_increment): Take a widest_int instead of a double_int.
39421         (record_phi_increments): Use wide-int interfaces.
39422         (phi_incr_cost): Take a widest_int instead of a double_int.
39423         (lowest_cost_path): Likewise.
39424         (total_savings): Likewise.
39425         (analyze_increments): Use wide-int interfaces.
39426         (ncd_with_phi): Take a widest_int instead of a double_int.
39427         (ncd_of_cand_and_phis): Likewise.
39428         (nearest_common_dominator_for_cands): Likewise.
39429         (insert_initializers): Use wide-int interfaces.
39430         (all_phi_incrs_profitable): Likewise.
39431         (replace_one_candidate): Likewise.
39432         (replace_profitable_candidates): Likewise.
39433         * godump.c: Include wide-int-print.h.
39434         (go_output_typedef): Use wide-int interfaces.
39435         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
39436         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
39437         (build_loop_iteration_domains): Likewise.
39438         * hooks.h: Include wide-int.h rather than double-int.h.
39439         (hook_bool_dint_dint_uint_bool_true): Delete.
39440         (hook_bool_wint_wint_uint_bool_true): Declare.
39441         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
39442         (hook_bool_wint_wint_uint_bool_true): New.
39443         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
39444         interfaces.
39445         (ubsan_expand_si_overflow_mul_check): Likewise.
39446         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
39447         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
39448         (get_ancestor_addr_info): Likewise.
39449         (ipa_modify_call_arguments): Likewise.
39450         * loop-doloop.c (doloop_modify): Likewise.
39451         (doloop_optimize): Likewise.
39452         * loop-iv.c (iv_number_of_iterations): Likewise.
39453         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
39454         (unroll_loop_constant_iterations): Likewise.
39455         (decide_unroll_runtime_iterations): Likewise.
39456         (unroll_loop_runtime_iterations): Likewise.
39457         (decide_peel_simple): Likewise.
39458         (decide_unroll_stupid): Likewise.
39459         * lto-streamer-in.c (streamer_read_wi): Add.
39460         (input_cfg): Use wide-int interfaces.
39461         (lto_input_tree_1): Likewise.
39462         * lto-streamer-out.c (streamer_write_wi): Add.
39463         (hash_tree): Use wide-int interfaces.
39464         (output_cfg): Likewise.
39465         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
39466         (GTFILES): Add wide-int.h and signop.h.
39467         (TAGS): Look for .cc files too.
39468         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
39469         * optabs.c (expand_subword_shift): Likewise.
39470         (expand_doubleword_shift): Likewise.
39471         (expand_absneg_bit): Likewise.
39472         (expand_copysign_absneg): Likewise.
39473         (expand_copysign_bit): Likewise.
39474         * postreload.c (reload_cse_simplify_set): Likewise.
39475         * predict.c (predict_iv_comparison): Likewise.
39476         * pretty-print.h: Include wide-int-print.h.
39477         (pp_wide_int) New.
39478         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
39479         * print-tree.c: Include wide-int-print.h.
39480         (print_node_brief): Use wide-int interfaces.
39481         (print_node): Likewise.
39482         * read-rtl.c (validate_const_wide_int): New.
39483         (read_rtx_code): Add CONST_WIDE_INT case.
39484         * real.c: Include wide-int.h.
39485         (real_to_integer2): Delete.
39486         (real_to_integer): New function, returning a wide_int.
39487         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39488         (ten_to_ptwo): Update call to real_from_integer.
39489         (real_digit): Likewise.
39490         * real.h: Include signop.h, wide-int.h and insn-modes.h.
39491         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
39492         (REAL_VALUE_TO_INT): Delete.
39493         (real_to_integer): Declare a wide-int form.
39494         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39495         * recog.c (const_int_operand): Improve comment.
39496         (const_scalar_int_operand): New.
39497         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
39498         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
39499         (split_double): Likewise.
39500         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
39501         (rtx_size): Likewise.
39502         (rtx_alloc_stat_v): New.
39503         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
39504         (cwi_output_hex): New.
39505         (iterative_hash_rtx): Handle CONST_WIDE_INT.
39506         (cwi_check_failed_bounds): New.
39507         * rtl.def (CONST_WIDE_INT): New.
39508         * rtl.h: Include <utility> and wide-int.h.
39509         (struct hwivec_def): New.
39510         (CWI_GET_NUM_ELEM): New.
39511         (CWI_PUT_NUM_ELEM): New.
39512         (struct rtx_def): Add num_elem and hwiv.
39513         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
39514         (CASE_CONST_UNIQUE): Likewise.
39515         (CASE_CONST_ANY): Likewise.
39516         (CONST_SCALAR_INT_P): Likewise.
39517         (CONST_WIDE_INT_P): New.
39518         (CWI_ELT): New.
39519         (HWIVEC_CHECK): New.
39520         (cwi_check_failed_bounds): New.
39521         (CWI_ELT): New.
39522         (HWIVEC_CHECK): New.
39523         (CONST_WIDE_INT_VEC) New.
39524         (CONST_WIDE_INT_NUNITS) New.
39525         (CONST_WIDE_INT_ELT) New.
39526         (rtx_mode_t): New type.
39527         (wi::int_traits <rtx_mode_t>): New.
39528         (wi::shwi): New.
39529         (wi::min_value): New.
39530         (wi::max_value): New.
39531         (rtx_alloc_v) New.
39532         (const_wide_int_alloc): New.
39533         (immed_wide_int_const): New.
39534         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
39535         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
39536         * signop.h: New file.
39537         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
39538         (simplify_const_unary_operation): Use wide-int interfaces.
39539         (simplify_binary_operation_1): Likewise.
39540         (simplify_const_binary_operation): Likewise.
39541         (simplify_const_relational_operation): Likewise.
39542         (simplify_immed_subreg): Likewise.
39543         * stmt.c (expand_case): Likewise.
39544         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
39545         signop rather than a bool.
39546         * stor-layout.c (layout_type): Use wide-int interfaces.
39547         (initialize_sizetypes): Update calls to
39548         set_min_and_max_values_for_integral_type.
39549         (set_min_and_max_values_for_integral_type): Take a signop rather
39550         than a bool.  Use wide-int interfaces.
39551         (fixup_signed_type): Update accordingly.  Remove
39552         HOST_BITS_PER_DOUBLE_INT limit.
39553         (fixup_unsigned_type): Likewise.
39554         * system.h (STATIC_CONSTANT_P): New.
39555         (STATIC_ASSERT): New.
39556         * target.def (can_use_doloop_p): Take widest_ints rather than
39557         double_ints.
39558         * target.h: Include wide-int.h rather than double-int.h.
39559         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
39560         than double_ints.
39561         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
39562         rather than INT_CST_LT_UNSIGNED.
39563         (can_use_doloop_if_innermost): Take widest_ints rather than
39564         double_ints.
39565         * tree-affine.c: Include wide-int-print.h.
39566         (double_int_ext_for_comb): Delete.
39567         (wide_int_ext_for_comb): New.
39568         (aff_combination_zero): Use wide-int interfaces.
39569         (aff_combination_const): Take a widest_int instead of a double_int.
39570         (aff_combination_elt): Use wide-int interfaces.
39571         (aff_combination_scale): Take a widest_int instead of a double_int.
39572         (aff_combination_add_elt): Likewise.
39573         (aff_combination_add_cst): Likewise.
39574         (aff_combination_add): Use wide-int interfaces.
39575         (aff_combination_convert): Likewise.
39576         (tree_to_aff_combination): Likewise.
39577         (add_elt_to_tree): Take a widest_int instead of a double_int.
39578         (aff_combination_to_tree): Use wide-int interfaces.
39579         (aff_combination_remove_elt): Likewise.
39580         (aff_combination_add_product): Take a widest_int instead of
39581         a double_int.
39582         (aff_combination_mult): Use wide-int interfaces.
39583         (aff_combination_expand): Likewise.
39584         (double_int_constant_multiple_p): Delete.
39585         (wide_int_constant_multiple_p): New.
39586         (aff_combination_constant_multiple_p): Take a widest_int pointer
39587         instead of a double_int pointer.
39588         (print_aff): Use wide-int interfaces.
39589         (get_inner_reference_aff): Take a widest_int pointer
39590         instead of a double_int pointer.
39591         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39592         * tree-affine.h: Include wide-int.h.
39593         (struct aff_comb_elt): Change type of coef to widest_int.
39594         (struct affine_tree_combination): Change type of offset to widest_int.
39595         (double_int_ext_for_comb): Delete.
39596         (wide_int_ext_for_comb): New.
39597         (aff_combination_const): Use widest_int instead of double_int.
39598         (aff_combination_scale): Likewise.
39599         (aff_combination_add_elt): Likewise.
39600         (aff_combination_constant_multiple_p): Likewise.
39601         (get_inner_reference_aff): Likewise.
39602         (aff_comb_cannot_overlap_p): Likewise.
39603         (aff_combination_zero_p): Use wide-int interfaces.
39604         * tree.c: Include tree.h.
39605         (init_ttree): Use make_int_cst.
39606         (tree_code_size): Removed code for INTEGER_CST case.
39607         (tree_size): Add INTEGER_CST case.
39608         (make_node_stat): Update comment.
39609         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39610         (build_int_cst_type): Use wide-int interfaces.
39611         (double_int_to_tree): Likewise.
39612         (double_int_fits_to_tree_p): Delete.
39613         (force_fit_type_double): Delete.
39614         (force_fit_type): New.
39615         (int_cst_hash_hash): Use wide-int interfaces.
39616         (int_cst_hash_eq): Likewise.
39617         (build_int_cst_wide): Delete.
39618         (wide_int_to_tree): New.
39619         (cache_integer_cst): Use wide-int interfaces.
39620         (build_low_bits_mask): Likewise.
39621         (cst_and_fits_in_hwi): Likewise.
39622         (real_value_from_int_cst): Likewise.
39623         (make_int_cst_stat): New.
39624         (integer_zerop): Use wide_int interfaces.
39625         (integer_onep): Likewise.
39626         (integer_all_onesp): Likewise.
39627         (integer_pow2p): Likewise.
39628         (integer_nonzerop): Likewise.
39629         (tree_log2): Likewise.
39630         (tree_floor_log2): Likewise.
39631         (tree_ctz): Likewise.
39632         (int_size_in_bytes): Likewise.
39633         (mem_ref_offset): Return an offset_int rather than a double_int.
39634         (build_type_attribute_qual_variant): Use wide_int interfaces.
39635         (type_hash_eq): Likewise
39636         (tree_int_cst_equal): Likewise.
39637         (tree_int_cst_lt): Delete.
39638         (tree_int_cst_compare): Likewise.
39639         (tree_fits_shwi_p): Use wide_int interfaces.
39640         (tree_fits_uhwi_p): Likewise.
39641         (tree_int_cst_sign_bit): Likewise.
39642         (tree_int_cst_sgn): Likewise.
39643         (tree_int_cst_min_precision): Take a signop rather than a bool.
39644         (simple_cst_equal): Use wide_int interfaces.
39645         (compare_tree_int): Likewise.
39646         (iterative_hash_expr): Likewise.
39647         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
39648         INT_CST_LT.
39649         (get_type_static_bounds): Use wide_int interfaces.
39650         (tree_int_cst_elt_check_failed): New.
39651         (build_common_tree_nodes): Reordered to set prec before filling in
39652         value.
39653         (int_cst_value): Check cst_and_fits_in_hwi.
39654         (widest_int_cst_value): Use wide_int interfaces.
39655         (upper_bound_in_type): Likewise.
39656         (lower_bound_in_type): Likewise.
39657         (num_ending_zeros): Likewise.
39658         (drop_tree_overflow): Likewise.
39659         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39660         (gen_conditions_for_pow_cst_base): Likewise.
39661         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39662         (group_case_labels_stmt): Use wide-int interfaces.
39663         (verify_gimple_assign_binary): Likewise.
39664         (print_loop): Likewise.
39665         * tree-chrec.c (tree_fold_binomial): Likewise.
39666         * tree-core.h (struct tree_base): Add int_length.
39667         (struct tree_int_cst): Change rep of value.
39668         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39669         (dr_may_alias_p): Likewise.
39670         (max_stmt_executions_tree): Likewise.
39671         * tree.def (INTEGER_CST): Update comment.
39672         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39673         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39674         * tree-dump.c: Include wide-int.h and wide-int-print.h.
39675         (dequeue_and_dump): Use wide-int interfaces.
39676         * tree.h: Include wide-int.h.
39677         (NULL_TREE): Moved to earlier loc in file.
39678         (TREE_INT_CST_ELT_CHECK): New.
39679         (tree_int_cst_elt_check_failed): New.
39680         (TYPE_SIGN): New.
39681         (TREE_INT_CST): Delete.
39682         (TREE_INT_CST_LOW): Use wide-int interfaces.
39683         (TREE_INT_CST_HIGH): Delete.
39684         (TREE_INT_CST_NUNITS): New.
39685         (TREE_INT_CST_EXT_NUNITS): Likewise.
39686         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39687         (TREE_INT_CST_ELT): Likewise.
39688         (INT_CST_LT): Delete.
39689         (tree_int_cst_elt_check): New (two forms).
39690         (type_code_size): Update comment.
39691         (make_int_cst_stat, make_int_cst): New.
39692         (tree_to_double_int): Delete.
39693         (double_int_fits_to_tree_p): Delete.
39694         (force_fit_type_double): Delete.
39695         (build_int_cstu): Replace with out-of-line function.
39696         (build_int_cst_wide): Delete.
39697         (tree_int_cst_lt): Define inline.
39698         (tree_int_cst_le): New.
39699         (tree_int_cst_compare): Define inline.
39700         (tree_int_cst_min_precision): Take a signop rather than a bool.
39701         (wi::int_traits <const_tree>): New.
39702         (wi::int_traits <tree>): New.
39703         (wi::extended_tree): New.
39704         (wi::int_traits <wi::extended_tree>): New.
39705         (wi::to_widest): New.
39706         (wi::to_offset): New.
39707         (wi::fits_to_tree_p): New.
39708         (wi::min_value): New.
39709         (wi::max_value): New.
39710         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39711         (copy_tree_body_r): Likewise.
39712         * tree-object-size.c (compute_object_offset): Likewise.
39713         (addr_object_size): Likewise.
39714         * tree-predcom.c: Include wide-int-print.h.
39715         (struct dref_d): Change type of offset to widest_int.
39716         (dump_dref): Call wide-int printer.
39717         (aff_combination_dr_offset): Use wide-int interfaces.
39718         (determine_offset): Take a widest_int pointer rather than a
39719         double_int pointer.
39720         (split_data_refs_to_components): Use wide-int interfaces.
39721         (suitable_component_p): Likewise.
39722         (order_drefs): Likewise.
39723         (add_ref_to_chain): Likewise.
39724         (valid_initializer_p): Likewise.
39725         (determine_roots_comp): Likewise.
39726         * tree-pretty-print.c: Include wide-int-print.h.
39727         (dump_generic_node): Use wide-int interfaces.
39728         * tree-sra.c (sra_ipa_modify_expr): Likewise.
39729         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39730         (move_fixed_address_to_symbol): Likewise.
39731         (move_hint_to_base): Likewise.
39732         (move_pointer_to_base): Likewise.
39733         (move_variant_to_index): Likewise.
39734         (most_expensive_mult_to_index): Likewise.
39735         (addr_to_parts): Likewise.
39736         (copy_ref_info): Likewise.
39737         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39738         (indirect_refs_may_alias_p): Likewise.
39739         (stmt_kills_ref_p_1): Likewise.
39740         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39741         * tree-ssa-ccp.c: Update comment at top of file.  Include
39742         wide-int-print.h.
39743         (struct prop_value_d): Change type of mask to widest_int.
39744         (extend_mask): New function.
39745         (dump_lattice_value): Use wide-int interfaces.
39746         (get_default_value): Likewise.
39747         (set_constant_value): Likewise.
39748         (set_value_varying): Likewise.
39749         (valid_lattice_transition): Likewise.
39750         (set_lattice_value): Likewise.
39751         (value_to_double_int): Delete.
39752         (value_to_wide_int): New.
39753         (get_value_from_alignment): Use wide-int interfaces.
39754         (get_value_for_expr): Likewise.
39755         (do_dbg_cnt): Likewise.
39756         (ccp_finalize): Likewise.
39757         (ccp_lattice_meet): Likewise.
39758         (bit_value_unop_1): Use widest_ints rather than double_ints.
39759         (bit_value_binop_1): Likewise.
39760         (bit_value_unop): Use wide-int interfaces.
39761         (bit_value_binop): Likewise.
39762         (bit_value_assume_aligned): Likewise.
39763         (evaluate_stmt): Likewise.
39764         (ccp_fold_stmt): Likewise.
39765         (visit_cond_stmt): Likewise.
39766         (ccp_visit_stmt): Likewise.
39767         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39768         (constant_pointer_difference): Likewise.
39769         (associate_pointerplus): Likewise.
39770         (combine_conversions): Likewise.
39771         * tree-ssa-loop.h: Include wide-int.h.
39772         (struct tree_niter_desc): Change type of max to widest_int.
39773         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39774         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39775         (remove_redundant_iv_tests): Likewise.
39776         (canonicalize_loop_induction_variables): Likewise.
39777         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39778         (constant_multiple_of): Take a widest_int pointer instead of
39779         a double_int pointer.
39780         (get_computation_aff): Use wide-int interfaces.
39781         (ptr_difference_cost): Likewise.
39782         (difference_cost): Likewise.
39783         (get_loop_invariant_expr_id): Likewise.
39784         (get_computation_cost_at): Likewise.
39785         (iv_elimination_compare_lt): Likewise.
39786         (may_eliminate_iv): Likewise.
39787         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39788         instead of double_int.
39789         (max_loop_iterations): Likewise.
39790         (max_stmt_executions): Likewise.
39791         (estimated_stmt_executions): Likewise.
39792         * tree-ssa-loop-niter.c: Include wide-int-print.h.
39793         (split_to_var_and_offset): Use wide-int interfaces.
39794         (determine_value_range): Likewise.
39795         (bound_difference_of_offsetted_base): Likewise.
39796         (bounds_add): Take a widest_int instead of a double_int.
39797         (number_of_iterations_ne_max): Use wide-int interfaces.
39798         (number_of_iterations_ne): Likewise.
39799         (number_of_iterations_lt_to_ne): Likewise.
39800         (assert_loop_rolls_lt): Likewise.
39801         (number_of_iterations_lt): Likewise.
39802         (number_of_iterations_le): Likewise.
39803         (number_of_iterations_cond): Likewise.
39804         (number_of_iterations_exit): Likewise.
39805         (finite_loop_p): Likewise.
39806         (derive_constant_upper_bound_assign): Likewise.
39807         (derive_constant_upper_bound): Return a widest_int.
39808         (derive_constant_upper_bound_ops): Likewise.
39809         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39810         (record_estimate): Take a widest_int rather than a double_int.
39811         (record_nonwrapping_iv): Use wide-int interfaces.
39812         (double_int_cmp): Delete.
39813         (wide_int_cmp): New.
39814         (bound_index): Take a widest_int rather than a double_int.
39815         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39816         (maybe_lower_iteration_bound): Likewise.
39817         (estimate_numbers_of_iterations_loop): Likewise.
39818         (estimated_loop_iterations): Take a widest_int pointer than than
39819         a double_int pointer.
39820         (estimated_loop_iterations_int): Use wide-int interfaces.
39821         (max_loop_iterations): Take a widest_int pointer than than
39822         a double_int pointer.
39823         (max_loop_iterations_int): Use wide-int interfaces.
39824         (max_stmt_executions): Take a widest_int pointer than than
39825         a double_int pointer.
39826         (estimated_stmt_executions): Likewise.
39827         (n_of_executions_at_most): Use wide-int interfaces.
39828         (scev_probably_wraps_p): Likewise.
39829         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39830         to real_to_integer.
39831         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39832         interfaces.
39833         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39834         double_ints.  Adjust for trailing_wide_ints <3> representation.
39835         (set_nonzero_bits): Likewise.
39836         (get_range_info): Return wide_ints rather than double_ints.
39837         Adjust for trailing_wide_ints <3> representation.
39838         (get_nonzero_bits): Likewise.
39839         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39840         representation.
39841         * tree-ssanames.h (struct range_info_def): Replace min, max and
39842         nonzero_bits with a trailing_wide_ints <3>.
39843         (set_range_info): Use wide_int_refs rather than double_ints.
39844         (set_nonzero_bits): Likewise.
39845         (get_range_info): Return wide_ints rather than double_ints.
39846         (get_nonzero_bits): Likewise.
39847         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39848         * tree-ssa-pre.c (phi_translate_1): Likewise.
39849         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39850         (acceptable_pow_call): Likewise.
39851         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39852         interfaces.
39853         (vn_reference_fold_indirect): Likewise.
39854         (vn_reference_maybe_forwprop_address): Likewise.
39855         (valueize_refs_1): Likewise.
39856         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39857         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39858         tree_int_cst_lt and tree_int_cst_le.
39859         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39860         interfaces.
39861         (streamer_alloc_tree): Likewise.
39862         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39863         (streamer_write_tree_header): Likewise.
39864         (streamer_write_integer_cst): Likewise.
39865         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39866         (build_constructors): Likewise.
39867         (array_value_type): Likewise.
39868         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39869         (vect_check_gather): Likewise.
39870         * tree-vect-generic.c (build_replicated_const): Likewise.
39871         (expand_vector_divmod): Likewise.
39872         * tree-vect-loop.c (vect_transform_loop): Likewise.
39873         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39874         (vect_do_peeling_for_alignment): Likewise.
39875         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39876         * tree-vrp.c: Include wide-int.h.
39877         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39878         (extract_range_from_assert): Use wide-int interfaces.
39879         (vrp_int_const_binop): Likewise.
39880         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39881         double_int pointers.
39882         (ranges_from_anti_range): Use wide-int interfaces.
39883         (quad_int_cmp): Delete.
39884         (quad_int_pair_sort): Likewise.
39885         (extract_range_from_binary_expr_1): Use wide-int interfaces.
39886         (extract_range_from_unary_expr_1): Likewise.
39887         (adjust_range_with_scev): Likewise.
39888         (masked_increment): Take and return wide_ints rather than double_ints.
39889         (register_edge_assert_for_2): Use wide-int interfaces.
39890         (check_array_ref): Likewise.
39891         (search_for_addr_array): Likewise.
39892         (maybe_set_nonzero_bits): Likewise.
39893         (union_ranges): Pass an integer of the correct type instead of
39894         using integer_one_node.
39895         (intersect_ranges): Likewise.
39896         (simplify_truth_ops_using_ranges): Likewise.
39897         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39898         (range_fits_type_p): Likewise.
39899         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
39900         a bool.
39901         (simplify_conversion_using_ranges): Use wide-int interfaces.
39902         (simplify_float_conversion_using_ranges): Likewise.
39903         (vrp_finalize): Likewise.
39904         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39905         (gimple_stringops_transform): Likewise.
39906         * varasm.c (decode_addr_const): Likewise.
39907         (const_hash_1): Likewise.
39908         (const_rtx_hash_1): Likewise
39909         (output_constant): Likewise.
39910         (array_size_for_constructor): Likewise.
39911         (output_constructor_regular_field): Likewise.
39912         (output_constructor_bitfield): Likewise.
39913         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39914         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39915         GENERATOR_FILEs.
39916         * gencheck.c: Define BITS_PER_UNIT.
39917         * wide-int.cc: New.
39918         * wide-int.h: New.
39919         * wide-int-print.cc: New.
39920         * wide-int-print.h: New.
39921
39922 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39923
39924         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39925
39926 2014-05-06  Richard Biener  <rguenther@suse.de>
39927
39928         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39929         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39930         (TODO_verify_all): Adjust.
39931         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39932         TODO_verify_stmts and TODO_verify_rtl_sharing.
39933         * bb-reorder.c: Likewise.
39934         * cfgexpand.c: Likewise.
39935         * cprop.c: Likewise.
39936         * cse.c: Likewise.
39937         * function.c: Likewise.
39938         * fwprop.c: Likewise.
39939         * gcse.c: Likewise.
39940         * gimple-ssa-isolate-paths.c: Likewise.
39941         * gimple-ssa-strength-reduction.c: Likewise.
39942         * ipa-split.c: Likewise.
39943         * loop-init.c: Likewise.
39944         * loop-unroll.c: Likewise.
39945         * lower-subreg.c: Likewise.
39946         * modulo-sched.c: Likewise.
39947         * postreload-gcse.c: Likewise.
39948         * predict.c: Likewise.
39949         * recog.c: Likewise.
39950         * sched-rgn.c: Likewise.
39951         * store-motion.c: Likewise.
39952         * tracer.c: Likewise.
39953         * trans-mem.c: Likewise.
39954         * tree-call-cdce.c: Likewise.
39955         * tree-cfg.c: Likewise.
39956         * tree-cfgcleanup.c: Likewise.
39957         * tree-complex.c: Likewise.
39958         * tree-eh.c: Likewise.
39959         * tree-emutls.c: Likewise.
39960         * tree-if-conv.c: Likewise.
39961         * tree-into-ssa.c: Likewise.
39962         * tree-loop-distribution.c: Likewise.
39963         * tree-object-size.c: Likewise.
39964         * tree-parloops.c: Likewise.
39965         * tree-pass.h: Likewise.
39966         * tree-sra.c: Likewise.
39967         * tree-ssa-ccp.c: Likewise.
39968         * tree-ssa-copy.c: Likewise.
39969         * tree-ssa-copyrename.c: Likewise.
39970         * tree-ssa-dce.c: Likewise.
39971         * tree-ssa-dom.c: Likewise.
39972         * tree-ssa-dse.c: Likewise.
39973         * tree-ssa-forwprop.c: Likewise.
39974         * tree-ssa-ifcombine.c: Likewise.
39975         * tree-ssa-loop-ch.c: Likewise.
39976         * tree-ssa-loop-ivcanon.c: Likewise.
39977         * tree-ssa-loop.c: Likewise.
39978         * tree-ssa-math-opts.c: Likewise.
39979         * tree-ssa-phiopt.c: Likewise.
39980         * tree-ssa-phiprop.c: Likewise.
39981         * tree-ssa-pre.c: Likewise.
39982         * tree-ssa-reassoc.c: Likewise.
39983         * tree-ssa-sink.c: Likewise.
39984         * tree-ssa-strlen.c: Likewise.
39985         * tree-ssa-tail-merge.c: Likewise.
39986         * tree-ssa-uncprop.c: Likewise.
39987         * tree-switch-conversion.c: Likewise.
39988         * tree-tailcall.c: Likewise.
39989         * tree-vect-generic.c: Likewise.
39990         * tree-vectorizer.c: Likewise.
39991         * tree-vrp.c: Likewise.
39992         * tsan.c: Likewise.
39993         * var-tracking.c: Likewise.
39994         * bt-load.c: Likewise.
39995         * cfgcleanup.c: Likewise.
39996         * combine-stack-adj.c: Likewise.
39997         * combine.c: Likewise.
39998         * compare-elim.c: Likewise.
39999         * config/epiphany/resolve-sw-modes.c: Likewise.
40000         * config/i386/i386.c: Likewise.
40001         * config/mips/mips.c: Likewise.
40002         * config/s390/s390.c: Likewise.
40003         * config/sh/sh_treg_combine.cc: Likewise.
40004         * config/sparc/sparc.c: Likewise.
40005         * dce.c: Likewise.
40006         * dse.c: Likewise.
40007         * final.c: Likewise.
40008         * ifcvt.c: Likewise.
40009         * mode-switching.c: Likewise.
40010         * passes.c: Likewise.
40011         * postreload.c: Likewise.
40012         * ree.c: Likewise.
40013         * reg-stack.c: Likewise.
40014         * regcprop.c: Likewise.
40015         * regrename.c: Likewise.
40016         * web.c: Likewise.
40017
40018 2014-05-06  Richard Biener  <rguenther@suse.de>
40019
40020         PR middle-end/61070
40021         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
40022         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
40023
40024 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
40025
40026         PR ipa/60965
40027         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
40028
40029 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
40030             Tom de Vries  <tom@codesourcery.com>
40031
40032         * target.def (call_fusage_contains_non_callee_clobbers): New
40033         DEFHOOKPOD.
40034         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
40035         Hooks to @menu.
40036         (@node Miscellaneous Register Hooks): New node.
40037         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
40038         * doc/tm.texi: Regenerate.
40039
40040 2014-05-05  Marek Polacek  <polacek@redhat.com>
40041
40042         PR driver/61065
40043         * opts.c (common_handle_option): Call error_at instead of warning_at.
40044
40045 2014-05-05  Richard Biener  <rguenther@suse.de>
40046
40047         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
40048         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
40049         under the TODO_verify_il umbrella.
40050
40051 2014-05-05  Richard Biener  <rguenther@suse.de>
40052
40053         * passes.c (execute_function_todo): Move TODO_verify_flow under
40054         the TODO_verify_ul umbrella.
40055
40056 2014-05-05  Richard Biener  <rguenther@suse.de>
40057
40058         PR middle-end/61010
40059         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
40060         X & CST away from a CST that is the mask of a mode.
40061
40062 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40063
40064         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
40065         int argument to enum machine_mode.
40066         (picochip_class_max_nregs): Ditto.
40067         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
40068         (picochip_class_max_nregs): Ditto.
40069
40070 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
40071
40072         * target.def: Add new target hook.
40073         * doc/tm.texi: Regenerate.
40074         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
40075         * targhooks.c (default_keep_leaf_when_profiled): New function.
40076
40077         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
40078         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
40079
40080 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
40081
40082         PR tree-optimization/60363
40083         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
40084         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
40085         (update_destination_phis): New parameter.
40086         (create_edge_and_update_destination_phis): Ditto.
40087         (ssa_fix_duplicate_block_edges): Pass new arguments.
40088         (thread_single_edge): Ditto.
40089
40090 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
40091
40092         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
40093         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
40094         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
40095         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
40096         Use RS6000_BTM_HARD_FLOAT.
40097         (BU_MISC_2): Likewise.
40098         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
40099         RS6000_BTM_HARD_FLOAT.
40100         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
40101         is explicitly used.
40102         (rs6000_invalid_builtin): Add hard floating builtin support.
40103         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
40104         hard float builtins.
40105         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
40106
40107 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40108
40109         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
40110         Add missing function* argument.
40111
40112 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
40113
40114         * lra-constraints.c (valid_address_p): Move earlier in file.
40115         Add a constraint argument to the address_info version.
40116         (satisfies_memory_constraint_p): New function.
40117         (satisfies_address_constraint_p): Likewise.
40118         (process_alt_operands, curr_insn_transform): Use them.
40119         (process_address): Pass the constraint to valid_address_p when
40120         checking address operands.
40121
40122 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
40123
40124         * config/mips/mips.c (mips_isa_rev): New variable.
40125         (mips_set_architecture): Set it.
40126         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
40127         from mips_isa_rev.
40128         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
40129         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
40130         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
40131         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
40132         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
40133         conditions in terms of mips_isa_rev.
40134         (mips_isa_rev): Declare.
40135
40136 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40137
40138         * config/sh/sh-mem.cc: Use tabs instead of spaces.
40139         (prob_unlikely, prob_likely): Make variables const.
40140
40141 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
40142
40143         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
40144
40145 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40146
40147         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
40148
40149 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40150
40151         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
40152         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
40153         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
40154         functions.
40155         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
40156         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
40157         sh_pass_in_reg_p.
40158         Replace usage of ROUND_REG with sh_round_reg.
40159         Use CEIL instead of ROUND_ADVANCE.
40160
40161 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40162
40163         PR target/61026
40164         * config/sh/sh.c: Include stdlib headers before everything else.
40165
40166 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
40167
40168         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
40169         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
40170         (gimplify_adjust_omp_clauses): Simd region is never
40171         directly nested in combined parallel.  Instead, for linear
40172         with copyin/copyout, if in combined for simd loop, make decl
40173         firstprivate/lastprivate on OMP_FOR.
40174         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
40175         expand_omp_for_static_chunk): When setting endvar, also set
40176         fd->loop.v to the same value.
40177
40178 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
40179
40180         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
40181
40182 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
40183
40184         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
40185         expression.
40186
40187 2014-05-02  Marek Polacek  <polacek@redhat.com>
40188
40189         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
40190
40191 2014-05-02  Kito Cheng  <kito@0xlab.org>
40192
40193         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
40194         to a C expression marco.
40195         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
40196         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
40197         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
40198         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
40199         HONOR_REG_ALLOC_ORDER.
40200         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
40201
40202 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40203
40204         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
40205
40206 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40207
40208         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
40209
40210 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
40211
40212         * tree-if-conv.c (is_cond_scalar_reduction): New function.
40213         (convert_scalar_cond_reduction): Likewise.
40214         (predicate_scalar_phi): Add recognition and transformation
40215         of simple conditioanl reduction to be vectorizable.
40216
40217 2014-05-01  Marek Polacek  <polacek@redhat.com>
40218
40219         PR c/43245
40220         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
40221
40222 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
40223
40224         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
40225         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
40226         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
40227         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
40228         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
40229         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
40230         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
40231         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
40232
40233 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
40234
40235         * config/arc/arc.opt (mlra): Move comment above option name
40236         to avoid mis-parsing as language options.
40237
40238 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40239
40240         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
40241         * config/sol2.h: ... here.
40242         * config/sol2-10.h: Remove.
40243
40244         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
40245         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
40246         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
40247         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
40248         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
40249         * config/sol2.h: ... here.
40250         (SECTION_NAME_FORMAT): Don't redefine.
40251         (STARTFILE_ARCH32_SPEC): Rename to ...
40252         (STARTFILE_ARCH_SPEC): ... this.
40253         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
40254         * config/sparc/sol2.h: ... here.
40255         (SECTION_NAME_FORMAT): Don't undef.
40256         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
40257         (SUBTARGET_EXTRA_SPECS): Remove.
40258         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
40259
40260         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
40261         (MD_STARTFILE_PREFIX): Remove.
40262         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
40263         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
40264         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
40265         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
40266         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
40267         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
40268         * config/i386/sol2.h: ... here.
40269         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
40270         * config/i386/sol2-bi.h: Remove.
40271         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
40272         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
40273
40274         * config/i386/t-sol2-64: Rename to ...
40275         * config/i386/t-sol2: ... this.
40276         * config/sparc/t-sol2-64: Rename to ...
40277         * config/sparc/t-sol2: ... this.
40278
40279         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
40280         sol2_tm_file_head, sol2_tm_file_tail.
40281         Include ${cpu_type}/sol2.h before sol2.h.
40282         Remove sol2-10.h.
40283         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
40284         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
40285         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
40286         Reflect i386/t-sol2-64 renaming.
40287         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
40288         Reflect sparc/t-sol2-64 renaming.
40289
40290 2014-04-30  Richard Biener  <rguenther@suse.de>
40291
40292         * passes.c (execute_function_todo): Move TODO_verify_stmts
40293         and TODO_verify_ssa under the TODO_verify_il umbrella.
40294         * tree-ssa.h (verify_ssa): Adjust prototype.
40295         * tree-ssa.c (verify_ssa): Add parameter to tell whether
40296         we should verify SSA operands.
40297         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
40298         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
40299         whether we should verify whether not throwing stmts have EH info.
40300         * graphite-scop-detection.c (create_sese_edges): Adjust.
40301         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
40302         * tree-eh.c (lower_try_finally_switch): Do not add the
40303         default case label twice.
40304
40305 2014-04-30  Marek Polacek  <polacek@redhat.com>
40306
40307         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
40308         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
40309         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
40310         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
40311
40312 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
40313
40314         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
40315         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
40316         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
40317         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
40318         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
40319         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
40320         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
40321         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
40322
40323 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
40324
40325         * tree-cfg.c (dump_function_to_file): Dump the return type of
40326         functions, in a line to itself before the function body, mimicking
40327         the layout of a C function.
40328
40329 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
40330
40331         PR tree-optimization/60971
40332         * tree-tailcall.c (process_assignment): Reject conversions which
40333         reduce precision.
40334
40335 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
40336
40337         * calls.c (initialize_argument_information): Always treat
40338         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
40339         (expand_call): Likewise.
40340         (emit_library_call_calue_1): Likewise.
40341         * expr.c (PUSH_ARGS_REVERSED): Do not define.
40342         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
40343         code accordingly.
40344
40345 2014-04-29  Nick Clifton  <nickc@redhat.com>
40346
40347         * config/msp430/msp430.md (umulsidi): Fix typo.
40348         (mulhisi3): Enable even inside interrupt handlers.
40349         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
40350         bigger return address pushed in large mode.
40351
40352 2014-04-29  Nick Clifton  <nickc@redhat.com>
40353
40354         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
40355         (arc_init_reg_tables): Use a machine_mode enum to iterate over
40356         available modes.
40357         * config/m32r/m32r.c (init_reg_tables): Likewise.
40358         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
40359         enum to hold the modes.
40360
40361 2014-04-29  Richard Biener  <rguenther@suse.de>
40362
40363         * dominance.c (free_dominance_info): Add overload with
40364         function parameter.
40365         (dom_info_state): Likewise.
40366         (dom_info_available_p): Likewise.
40367         * basic-block.h (free_dominance_info, dom_info_state,
40368         dom_info_available_p): Declare overloads.
40369         * passes.c (execute_function_todo): Verify that verifiers
40370         don't change dominator info state.  Drop dominator info
40371         for IPA pass invocations.
40372         * cgraph.c (release_function_body): Restore asserts that
40373         dominator information is released.
40374
40375 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
40376
40377         * doc/invoke.texi: Fix typo.
40378         * tree-vrp.c: Fix typos.
40379         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
40380
40381 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
40382
40383         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
40384
40385 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40386
40387         * config/aarch64/aarch64-builtins.c
40388         (aarch64_types_storestruct_lane_qualifiers): New.
40389         (TYPES_STORESTRUCT_LANE): Likewise.
40390         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
40391         (st3_lane): Likewise.
40392         (st4_lane): Likewise.
40393         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
40394         (vec_store_lanesci_lane<mode>): Likewise.
40395         (vec_store_lanesxi_lane<mode>): Likewise.
40396         (aarch64_st2_lane<VQ:mode>): Likewise.
40397         (aarch64_st3_lane<VQ:mode>): Likewise.
40398         (aarch64_st4_lane<VQ:mode>): Likewise.
40399         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
40400         * config/aarch64/arm_neon.h
40401         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
40402         use new macro arguments.
40403         (__ST3_LANE_FUNC): Likewise.
40404         (__ST4_LANE_FUNC): Likewise.
40405         * config/aarch64/iterators.md (V_TWO_ELEM): New.
40406         (V_THREE_ELEM): Likewise.
40407         (V_FOUR_ELEM): Likewise.
40408
40409 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
40410
40411         * doc/gimple.texi: Replace the description of the now-defunct
40412         union gimple_statement_d with a diagram showing the
40413         gimple_statement_base class hierarchy and its relationships to
40414         the GSS_ and GIMPLE_ enums.
40415
40416 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40417
40418         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
40419         * config/aarch64/aarch64.c
40420         (aarch64_cannot_change_mode_class): Weaken conditions.
40421         (aarch64_modes_tieable_p): New.
40422         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
40423
40424 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
40425
40426         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
40427         (loadsync_<mode>): Change mode.
40428         (load_quadpti, store_quadpti): New.
40429         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40430         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40431
40432 2014-04-28  Martin Jambor  <mjambor@suse.cz>
40433
40434         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
40435         same alias type as the original statement.
40436         (subreplacement_assignment_data): New type.
40437         (handle_unscalarized_data_in_subtree): New type of parameter,
40438         generate new memory accesses with same alias type as the original
40439         statement.
40440         (load_assign_lhs_subreplacements): Likewise.
40441         (sra_modify_constructor_assign): Generate new memory accesses with
40442         same alias type as the original statement.
40443
40444 2014-04-28  Richard Biener  <rguenther@suse.de>
40445
40446         * tree-pass.h (TODO_verify_il): Define.
40447         (TODO_verify_all): Complete properly.
40448         * passes.c (execute_function_todo): Move existing loop-closed
40449         SSA verification under TODO_verify_il.
40450         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
40451         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
40452         Fix tree sharing issue.
40453
40454 2014-04-28  Richard Biener  <rguenther@suse.de>
40455
40456         PR middle-end/60092
40457         * builtins.def (DEF_C11_BUILTIN): Add.
40458         (BUILT_IN_ALIGNED_ALLOC): Likewise.
40459         * coretypes.h (enum function_class): Add function_c11_misc.
40460         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
40461         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
40462         (call_may_clobber_ref_p_1): Likewise.
40463         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
40464         (mark_all_reaching_defs_necessary_1): Likewise.
40465         (propagate_necessity): Likewise.
40466         (eliminate_unnecessary_stmts): Likewise.
40467         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
40468
40469 2014-04-28  Richard Biener  <rguenther@suse.de>
40470
40471         * tree-vrp.c (vrp_var_may_overflow): Remove.
40472         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
40473         with overflow immediately bump to one before that value and
40474         let iteration figure out overflow status.
40475
40476 2014-04-28  Richard Biener  <rguenther@suse.de>
40477
40478         * configure.ac: Do valgrind header checks unconditionally.
40479         Add --enable-valgrind-annotations.
40480         * system.h: Guard valgrind header inclusion with
40481         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
40482         * alloc-pool.c (pool_alloc, pool_free): Use
40483         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
40484         to guard possibly dead code.
40485         * config.in: Regenerated.
40486         * configure: Likewise.
40487
40488 2014-04-28  Jeff Law  <law@redhat.com>
40489
40490         PR tree-optimization/60902
40491         * tree-ssa-threadedge.c
40492         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
40493         over real defs when invalidating outputs from statements that do not
40494         produce useful outputs for threading.
40495
40496 2014-04-28  Richard Biener  <rguenther@suse.de>
40497
40498         PR tree-optimization/60979
40499         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
40500         SCOPs that end in a block with a successor with abnormal
40501         predecessors.
40502
40503 2014-04-28  Richard Biener  <rguenther@suse.de>
40504
40505         * tree-pass.h (execute_pass_list): Adjust prototype.
40506         * passes.c (pass_manager::execute_early_local_passes): Adjust.
40507         (do_per_function): Change callback signature, push all actual
40508         work to the callbals.
40509         (do_per_function_toporder): Likewise.
40510         (execute_function_dump): Adjust.
40511         (execute_function_todo): Likewise.
40512         (clear_last_verified): Likewise.
40513         (verify_curr_properties): Likewise.
40514         (update_properties_after_pass): Likewise.
40515         (execute_pass_list_1): Split out from ...
40516         (execute_pass_list): ... here.  Adjust.
40517         (execute_ipa_pass_list): Likewise.
40518         * cgraphunit.c (cgraph_add_new_function): Adjust.
40519         (analyze_function): Likewise.
40520         (expand_function): Likewise.
40521         * cgraph.c (release_function_body): Free dominance info
40522         here instead of asserting it was magically freed elsewhere.
40523
40524 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
40525
40526         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
40527         * configure: Regenerate.
40528         * config/sparc/sparc.opt (muser-mode): New option.
40529         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
40530         for LEON3.
40531         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
40532         * doc/invoke.texi (SPARC options): Document -muser-mode.
40533
40534 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
40535
40536         * cselib.c (find_slot_memmode): Delete.
40537         (cselib_hasher): Change compare_type to a struct.
40538         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
40539         constants.
40540         (preserve_constants_and_equivs): Adjust for new compare_type.
40541         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
40542         (wrap_constant): Delete.
40543         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
40544
40545 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
40546
40547         * doc/install.texi (Building with profile feedback): Remove
40548         outdated sentence.
40549
40550 2014-04-26  Tom de Vries  <tom@codesourcery.com>
40551
40552         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
40553         array accesses.
40554
40555 2014-04-25  Cary Coutant  <ccoutant@google.com>
40556
40557         PR debug/60929
40558         * dwarf2out.c (should_move_die_to_comdat): A type definition
40559         can contain a subprogram definition, but don't move it to a
40560         comdat unit.
40561         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
40562         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
40563         from original DIE.
40564         (clone_tree_hash): Rename to...
40565         (clone_tree_partial): ...this; change callers.  Copy
40566         DW_TAG_subprogram DIEs as declarations.
40567         (copy_decls_walk): Don't copy children of a declaration into a
40568         type unit.
40569
40570 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
40571
40572         PR target/60969
40573         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40574         alternative 12.
40575
40576 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
40577
40578         * config/arm/predicates.md (call_insn_operand): Add long_call check.
40579         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40580         reg for long_call.
40581         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40582         restriction.
40583
40584 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40585
40586         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40587
40588 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40589
40590         PR tree-optimization/60930
40591         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
40592         creating a multiply candidate by folding two constant
40593         multiplicands when the result overflows.
40594
40595 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
40596
40597         PR tree-optimization/60960
40598         * tree-vect-generic.c (expand_vector_operation): Only call
40599         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40600
40601 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40602
40603         * expr.c (clobber_reg_mode): New function.
40604         * expr.h (clobber_reg): New function.
40605
40606 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40607
40608         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40609         clobbers.
40610
40611 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
40612             Tom de Vries  <tom@codesourcery.com>
40613
40614         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40615         handle.
40616         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40617         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40618         new argument to find_all_hard_reg_sets call.
40619
40620 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40621
40622         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40623         Use HOST_WIDE_INT_C for mask literal.
40624         (aarch_rev16_shleft_mask_imm_p): Likewise.
40625
40626 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
40627
40628         PR target/60941
40629         * config/sparc/sparc.md (ashlsi3_extend): Delete.
40630
40631 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
40632
40633         PR preprocessor/56540
40634         * config/i386/i386-c.c (ix86_target_macros): Define
40635         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40636
40637 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40638
40639         * configure.ac (tga_func): Remove.
40640         (LIB_TLS_SPEC): Remove.
40641         * configure: Regenerate.
40642         * config.in: Regenerate.
40643         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40644
40645 2014-04-25  Richard Biener  <rguenther@suse.de>
40646
40647         PR ipa/60912
40648         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40649         call stmt use/clobber sets during stmt walk instead of
40650         walking the possibly incomplete set of caller edges.
40651
40652 2014-04-25  Richard Biener  <rguenther@suse.de>
40653
40654         PR ipa/60911
40655         * passes.c (apply_ipa_transforms): Inline into only caller ...
40656         (execute_one_pass): ... here.  Properly bring in function
40657         bodies for nodes we want to apply IPA transforms to.
40658
40659 2014-04-24  Cong Hou  <congh@google.com>
40660
40661         PR tree-optimization/60896
40662         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40663         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40664         (vect_mark_pattern_stmts): Set the def type of all statements in
40665         PATTERN_DEF_SEQ as vect_internal_def.
40666
40667 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
40668
40669         * doc/extend.texi (PowerPC Built-in Functions): Document new
40670         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40671         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40672
40673         * config/rs6000/predicates.md (const_0_to_3_operand): New
40674         predicate to match 0..3 integer constants.
40675
40676         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40677         to support adding miscellaneous builtin functions.
40678         (BU_DFP_MISC_2): Likewise.
40679         (BU_P7_MISC_1): Likewise.
40680         (BU_P7_MISC_2): Likewise.
40681         (BU_P8V_MISC_3): Likewise.
40682         (BU_MISC_1): Likewise.
40683         (BU_MISC_2): Likewise.
40684         (DIVWE): Add extended divide builtin functions.
40685         (DIVWEO): Likewise.
40686         (DIVWEU): Likewise.
40687         (DIVWEUO): Likewise.
40688         (DIVDE): Likewise.
40689         (DIVDEO): Likewise.
40690         (DIVDEU): Likewise.
40691         (DIVDEUO): Likewise.
40692         (DXEX): Add decimal floating-point builtin functions.
40693         (DXEXQ): Likewise.
40694         (DDEDPD): Likewise.
40695         (DDEDPDQ): Likewise.
40696         (DENBCD): Likewise.
40697         (DENBCDQ): Likewise.
40698         (DIEX): Likewise.
40699         (DIEXQ): Likewise.
40700         (DSCLI): Likewise.
40701         (DSCLIQ): Likewise.
40702         (DSCRI): Likewise.
40703         (DSCRIQ): Likewise.
40704         (CDTBCD): Add new BCD builtin functions.
40705         (CBCDTD): Likewise.
40706         (ADDG6S): Likewise.
40707         (BCDADD): Likewise.
40708         (BCDADD_LT): Likewise.
40709         (BCDADD_EQ): Likewise.
40710         (BCDADD_GT): Likewise.
40711         (BCDADD_OV): Likewise.
40712         (BCDSUB): Likewise.
40713         (BCDSUB_LT): Likewise.
40714         (BCDSUB_EQ): Likewise.
40715         (BCDSUB_GT): Likewise.
40716         (BCDSUB_OV): Likewise.
40717         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40718         (UNPACK_TD): Likewise.
40719         (PACK_TF): Likewise.
40720         (UNPACK_TF): Likewise.
40721         (UNPACK_TF_0): Likewise.
40722         (UNPACK_TF_1): Likewise.
40723         (PACK_V1TI): Likewise.
40724         (UNPACK_V1TI): Likewise.
40725
40726         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40727         support for decimal floating point builtin functions.
40728         (rs6000_expand_ternop_builtin): Add checks for the new builtin
40729         functions that take constant arguments.
40730         (rs6000_invalid_builtin): Add decimal floating point builtin support.
40731         (rs6000_init_builtins): Setup long double, _Decimal64, and
40732         _Decimal128 types for new builtin functions.
40733         (builtin_function_type): Set the unsigned flags appropriately for
40734         the new builtin functions.
40735         (rs6000_opt_masks): Add support for decimal floating point builtin
40736         functions.
40737
40738         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40739         floating point builtin functions.
40740         (RS6000_BTM_COMMON): Likewise.
40741         (RS6000_BTI_long_double): Likewise.
40742         (RS6000_BTI_dfloat64): Likewise.
40743         (RS6000_BTI_dfloat128): Likewise.
40744         (long_double_type_internal_node): Likewise.
40745         (dfloat64_type_internal_node): Likewise.
40746         (dfloat128_type_internal_node): Likewise.
40747
40748         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40749         2.07 bcd arithmetic instructions.
40750         (UNSPEC_BCDSUB): Likewise.
40751         (UNSPEC_BCD_OVERFLOW): Likewise.
40752         (UNSPEC_BCD_ADD_SUB): Likewise.
40753         (bcd_add_sub): Likewise.
40754         (BCD_TEST): Likewise.
40755         (bcd<bcd_add_sub>): Likewise.
40756         (bcd<bcd_add_sub>_test): Likewise.
40757         (bcd<bcd_add_sub>_test2): Likewise.
40758         (bcd<bcd_add_sub>_<code>): Likewise.
40759         (peephole2 for combined bcd ops): Likewise.
40760
40761         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40762         decimal floating point builtin functions.
40763         (UNSPEC_DENBCD): Likewise.
40764         (UNSPEC_DXEX): Likewise.
40765         (UNSPEC_DIEX): Likewise.
40766         (UNSPEC_DSCLI): Likewise.
40767         (UNSPEC_DSCRI): Likewise.
40768         (D64_D128): Likewise.
40769         (dfp_suffix): Likewise.
40770         (dfp_ddedpd_<mode>): Likewise.
40771         (dfp_denbcd_<mode>): Likewise.
40772         (dfp_dxex_<mode>): Likewise.
40773         (dfp_diex_<mode>): Likewise.
40774         (dfp_dscli_<mode>): Likewise.
40775         (dfp_dscri_<mode>): Likewise.
40776
40777         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40778         builtin functions.
40779         (UNSPEC_CDTBCD): Likewise.
40780         (UNSPEC_CBCDTD): Likewise.
40781         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40782         (UNSPEC_DIVEO): Likewise.
40783         (UNSPEC_DIVEU): Likewise.
40784         (UNSPEC_DIVEUO): Likewise.
40785         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40786         pack/unpack 128-bit types.
40787         (UNSPEC_PACK_128BIT): Likewise.
40788         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40789         (udiv<mode>3): Use idiv_ldiv mode attribute.
40790         (div<mode>3): Likewise.
40791         (addg6s): Add new BCD builtin functions.
40792         (cdtbcd): Likewise.
40793         (cbcdtd): Likewise.
40794         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40795         (div_extend): Likewise.
40796         (div<div_extend>_<mode>"): Likewise.
40797         (FP128_64): Add support for new builtin functions to pack/unpack
40798         128-bit types.
40799         (unpack<mode>): Likewise.
40800         (unpacktf_0): Likewise.
40801         (unpacktf_1): Likewise.
40802         (unpack<mode>_dm): Likewise.
40803         (unpack<mode>_nodm): Likewise.
40804         (pack<mode>): Likewise.
40805         (unpackv1ti): Likewise.
40806         (packv1ti): Likewise.
40807
40808 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
40809
40810         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40811         is disabled.
40812
40813 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
40814
40815         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40816         * gimplify.c (omp_is_private): Change last argument's type to int.
40817         Only diagnose lastprivate if the simd argument is 1, only diagnose
40818         linear if the simd argument is 2.
40819         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
40820         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
40821         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
40822         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40823         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40824         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40825         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40826         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40827         * tree-nested.c (convert_nonlocal_omp_clauses,
40828         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40829
40830 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
40831
40832         PR target/60822
40833         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40834         operand 1.
40835
40836 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
40837
40838         * flag-types.h (enum ivar_visibility): Add.
40839
40840 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
40841
40842         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40843         function * argument.
40844
40845 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
40846
40847         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40848
40849 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40850             Tom de Vries  <tom@codesourcery.com>
40851
40852         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40853         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40854         reg-note.
40855         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40856         * emit-rtl.c (try_split): Same.
40857
40858 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40859             Tom de Vries  <tom@codesourcery.com>
40860
40861         * common.opt (fuse-caller-save): New option.
40862
40863 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
40864
40865         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40866         elements for big-endian.
40867
40868 2014-04-24  Richard Biener  <rguenther@suse.de>
40869
40870         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40871         during TER and instead use the sepops interface for expanding
40872         non-GIMPLE_SINGLE_RHS.
40873
40874 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40875
40876         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40877         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40878
40879 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40880
40881         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40882         assembler 64-bit option.
40883         * configure: Regenerate.
40884
40885 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40886
40887         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40888         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40889         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40890         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40891         (TARGET_CRYPTO): Take TARGET_SIMD into account.
40892
40893 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40894
40895         * config/aarch64/aarch64-builtins.c
40896         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40897         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40898         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40899         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40900         builtins.
40901         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40902         (Vrevsuff): New mode attribute.
40903
40904 2014-04-24  Terry Guo  <terry.guo@arm.com>
40905
40906         * config/arm/arm.h (machine_function): Define variable
40907         after_arm_reorg here.
40908         * config/arm/arm.c (after_arm_reorg): Remove the definition.
40909         (arm_split_constant): Update the way to access variable
40910         after_arm_reorg.
40911         (arm_reorg): Ditto.
40912         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40913
40914 2014-04-23  Tom de Vries  <tom@codesourcery.com>
40915
40916         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40917
40918 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
40919
40920         * is-a.h: Update comments to reflect the following changes to the
40921         "pointerness" of the API, making the template parameter match the
40922         return type, allowing use of is-a.h with typedefs of pointers.
40923         (is_a_helper::cast): Return a T rather then a pointer to a T, so
40924         that the return type matches the parameter to the is_a_helper.
40925         (as_a): Likewise.
40926         (dyn_cast): Likewise.
40927
40928         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40929         pointer from the is-a.h API.
40930
40931         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40932         (is_a_helper <cgraph_node *>::test): ...this, matching change to
40933         is-a.h API.
40934         (is_a_helper <varpool_node>::test): Likewise, convert to...
40935         (is_a_helper <varpool_node *>::test): ...this.
40936
40937         (varpool_first_variable): Update for removal of implicit pointer
40938         from the is-a.h API.
40939         (varpool_next_variable): Likewise.
40940         (varpool_first_static_initializer): Likewise.
40941         (varpool_next_static_initializer): Likewise.
40942         (varpool_first_defined_variable): Likewise.
40943         (varpool_next_defined_variable): Likewise.
40944         (cgraph_first_defined_function): Likewise.
40945         (cgraph_next_defined_function): Likewise.
40946         (cgraph_first_function): Likewise.
40947         (cgraph_next_function): Likewise.
40948         (cgraph_first_function_with_gimple_body): Likewise.
40949         (cgraph_next_function_with_gimple_body): Likewise.
40950         (cgraph_alias_target): Likewise.
40951         (varpool_alias_target): Likewise.
40952         (cgraph_function_or_thunk_node): Likewise.
40953         (varpool_variable_node): Likewise.
40954         (symtab_real_symbol_p): Likewise.
40955         * cgraphunit.c (referred_to_p): Likewise.
40956         (analyze_functions): Likewise.
40957         (handle_alias_pairs): Likewise.
40958         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40959         * gimple-ssa.h (gimple_vuse_op): Likewise.
40960         (gimple_vdef_op): Likewise.
40961         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40962         * gimple.c (gimple_build_asm_1): Likewise.
40963         (gimple_build_try): Likewise.
40964         (gimple_build_resx): Likewise.
40965         (gimple_build_eh_dispatch): Likewise.
40966         (gimple_build_omp_for): Likewise.
40967         (gimple_omp_for_set_clauses): Likewise.
40968
40969         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40970         (is_a_helper <gimple_statement_asm *>::test): ...this.
40971         (is_a_helper <gimple_statement_bind>::test): Convert to...
40972         (is_a_helper <gimple_statement_bind *>::test): ...this.
40973         (is_a_helper <gimple_statement_call>::test): Convert to...
40974         (is_a_helper <gimple_statement_call *>::test): ...this.
40975         (is_a_helper <gimple_statement_catch>::test): Convert to...
40976         (is_a_helper <gimple_statement_catch *>::test): ...this.
40977         (is_a_helper <gimple_statement_resx>::test): Convert to...
40978         (is_a_helper <gimple_statement_resx *>::test): ...this.
40979         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40980         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40981         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40982         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40983         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40984         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40985         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40986         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40987         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40988         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40989         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40990         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40991         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40992         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40993         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40994         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40995         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40996         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40997         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40998         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40999         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
41000         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
41001         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
41002         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
41003         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
41004         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
41005         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
41006         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
41007         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
41008         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
41009         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
41010         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
41011         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
41012         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
41013         (is_a_helper <gimple_statement_phi>::test): Convert to...
41014         (is_a_helper <gimple_statement_phi *>::test): ...this.
41015         (is_a_helper <gimple_statement_transaction>::test): Convert to...
41016         (is_a_helper <gimple_statement_transaction *>::test): ...this.
41017         (is_a_helper <gimple_statement_try>::test): Convert to...
41018         (is_a_helper <gimple_statement_try *>::test): ...this.
41019         (is_a_helper <gimple_statement_wce>::test): Convert to...
41020         (is_a_helper <gimple_statement_wce *>::test): ...this.
41021         (is_a_helper <const gimple_statement_asm>::test): Convert to...
41022         (is_a_helper <const gimple_statement_asm *>::test): ...this.
41023         (is_a_helper <const gimple_statement_bind>::test): Convert to...
41024         (is_a_helper <const gimple_statement_bind *>::test): ...this.
41025         (is_a_helper <const gimple_statement_call>::test): Convert to...
41026         (is_a_helper <const gimple_statement_call *>::test): ...this.
41027         (is_a_helper <const gimple_statement_catch>::test): Convert to...
41028         (is_a_helper <const gimple_statement_catch *>::test): ...this.
41029         (is_a_helper <const gimple_statement_resx>::test): Convert to...
41030         (is_a_helper <const gimple_statement_resx *>::test): ...this.
41031         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
41032         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
41033         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
41034         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
41035         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
41036         Convert to...
41037         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
41038         ...this.
41039         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
41040         Convert to...
41041         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
41042         ...this.
41043         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
41044         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
41045         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
41046         to...
41047         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
41048         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
41049         to...
41050         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
41051         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
41052         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
41053         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
41054         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
41055         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
41056         to...
41057         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
41058         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
41059         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
41060         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
41061         to...
41062         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
41063         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
41064         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
41065         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
41066         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
41067         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
41068         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
41069         (is_a_helper <const gimple_statement_phi>::test): Convert to...
41070         (is_a_helper <const gimple_statement_phi *>::test): ...this.
41071         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
41072         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
41073         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
41074         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
41075         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
41076         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
41077         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
41078         to...
41079         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
41080         ...this.
41081         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
41082         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
41083
41084         (gimple_use_ops): Update for removal of implicit pointer from the
41085         is-a.h API.
41086         (gimple_set_use_ops): Likewise.
41087         (gimple_vuse): Likewise.
41088         (gimple_vdef): Likewise.
41089         (gimple_vuse_ptr): Likewise.
41090         (gimple_vdef_ptr): Likewise.
41091         (gimple_set_vuse): Likewise.
41092         (gimple_set_vdef): Likewise.
41093         (gimple_omp_return_set_lhs): Likewise.
41094         (gimple_omp_return_lhs): Likewise.
41095         (gimple_omp_return_lhs_ptr): Likewise.
41096         (gimple_call_fntype): Likewise.
41097         (gimple_call_set_fntype): Likewise.
41098         (gimple_call_set_internal_fn): Likewise.
41099         (gimple_call_use_set): Likewise.
41100         (gimple_call_clobber_set): Likewise.
41101         (gimple_bind_vars): Likewise.
41102         (gimple_bind_set_vars): Likewise.
41103         (gimple_bind_body_ptr): Likewise.
41104         (gimple_bind_set_body): Likewise.
41105         (gimple_bind_add_stmt): Likewise.
41106         (gimple_bind_block): Likewise.
41107         (gimple_bind_set_block): Likewise.
41108         (gimple_asm_ninputs): Likewise.
41109         (gimple_asm_noutputs): Likewise.
41110         (gimple_asm_nclobbers): Likewise.
41111         (gimple_asm_nlabels): Likewise.
41112         (gimple_asm_input_op): Likewise.
41113         (gimple_asm_input_op_ptr): Likewise.
41114         (gimple_asm_output_op): Likewise.
41115         (gimple_asm_output_op_ptr): Likewise.
41116         (gimple_asm_set_output_op): Likewise.
41117         (gimple_asm_clobber_op): Likewise.
41118         (gimple_asm_set_clobber_op): Likewise.
41119         (gimple_asm_label_op): Likewise.
41120         (gimple_asm_set_label_op): Likewise.
41121         (gimple_asm_string): Likewise.
41122         (gimple_catch_types): Likewise.
41123         (gimple_catch_types_ptr): Likewise.
41124         (gimple_catch_handler_ptr): Likewise.
41125         (gimple_catch_set_types): Likewise.
41126         (gimple_catch_set_handler): Likewise.
41127         (gimple_eh_filter_types): Likewise.
41128         (gimple_eh_filter_types_ptr): Likewise.
41129         (gimple_eh_filter_failure_ptr): Likewise.
41130         (gimple_eh_filter_set_types): Likewise.
41131         (gimple_eh_filter_set_failure): Likewise.
41132         (gimple_eh_must_not_throw_fndecl): Likewise.
41133         (gimple_eh_must_not_throw_set_fndecl): Likewise.
41134         (gimple_eh_else_n_body_ptr): Likewise.
41135         (gimple_eh_else_e_body_ptr): Likewise.
41136         (gimple_eh_else_set_n_body): Likewise.
41137         (gimple_eh_else_set_e_body): Likewise.
41138         (gimple_try_eval_ptr): Likewise.
41139         (gimple_try_cleanup_ptr): Likewise.
41140         (gimple_try_set_eval): Likewise.
41141         (gimple_try_set_cleanup): Likewise.
41142         (gimple_wce_cleanup_ptr): Likewise.
41143         (gimple_wce_set_cleanup): Likewise.
41144         (gimple_phi_capacity): Likewise.
41145         (gimple_phi_num_args): Likewise.
41146         (gimple_phi_result): Likewise.
41147         (gimple_phi_result_ptr): Likewise.
41148         (gimple_phi_set_result): Likewise.
41149         (gimple_phi_arg): Likewise.
41150         (gimple_phi_set_arg): Likewise.
41151         (gimple_resx_region): Likewise.
41152         (gimple_resx_set_region): Likewise.
41153         (gimple_eh_dispatch_region): Likewise.
41154         (gimple_eh_dispatch_set_region): Likewise.
41155         (gimple_omp_critical_name): Likewise.
41156         (gimple_omp_critical_name_ptr): Likewise.
41157         (gimple_omp_critical_set_name): Likewise.
41158         (gimple_omp_for_clauses): Likewise.
41159         (gimple_omp_for_clauses_ptr): Likewise.
41160         (gimple_omp_for_set_clauses): Likewise.
41161         (gimple_omp_for_collapse): Likewise.
41162         (gimple_omp_for_index): Likewise.
41163         (gimple_omp_for_index_ptr): Likewise.
41164         (gimple_omp_for_set_index): Likewise.
41165         (gimple_omp_for_initial): Likewise.
41166         (gimple_omp_for_initial_ptr): Likewise.
41167         (gimple_omp_for_set_initial): Likewise.
41168         (gimple_omp_for_final): Likewise.
41169         (gimple_omp_for_final_ptr): Likewise.
41170         (gimple_omp_for_set_final): Likewise.
41171         (gimple_omp_for_incr): Likewise.
41172         (gimple_omp_for_incr_ptr): Likewise.
41173         (gimple_omp_for_set_incr): Likewise.
41174         (gimple_omp_for_pre_body_ptr): Likewise.
41175         (gimple_omp_for_set_pre_body): Likewise.
41176         (gimple_omp_parallel_clauses): Likewise.
41177         (gimple_omp_parallel_clauses_ptr): Likewise.
41178         (gimple_omp_parallel_set_clauses): Likewise.
41179         (gimple_omp_parallel_child_fn): Likewise.
41180         (gimple_omp_parallel_child_fn_ptr): Likewise.
41181         (gimple_omp_parallel_set_child_fn): Likewise.
41182         (gimple_omp_parallel_data_arg): Likewise.
41183         (gimple_omp_parallel_data_arg_ptr): Likewise.
41184         (gimple_omp_parallel_set_data_arg): Likewise.
41185         (gimple_omp_task_clauses): Likewise.
41186         (gimple_omp_task_clauses_ptr): Likewise.
41187         (gimple_omp_task_set_clauses): Likewise.
41188         (gimple_omp_task_child_fn): Likewise.
41189         (gimple_omp_task_child_fn_ptr): Likewise.
41190         (gimple_omp_task_set_child_fn): Likewise.
41191         (gimple_omp_task_data_arg): Likewise.
41192         (gimple_omp_task_data_arg_ptr): Likewise.
41193         (gimple_omp_task_set_data_arg): Likewise.
41194         (gimple_omp_taskreg_clauses): Likewise.
41195         (gimple_omp_taskreg_clauses_ptr): Likewise.
41196         (gimple_omp_taskreg_set_clauses): Likewise.
41197         (gimple_omp_taskreg_child_fn): Likewise.
41198         (gimple_omp_taskreg_child_fn_ptr): Likewise.
41199         (gimple_omp_taskreg_set_child_fn): Likewise.
41200         (gimple_omp_taskreg_data_arg): Likewise.
41201         (gimple_omp_taskreg_data_arg_ptr): Likewise.
41202         (gimple_omp_taskreg_set_data_arg): Likewise.
41203         (gimple_omp_task_copy_fn): Likewise.
41204         (gimple_omp_task_copy_fn_ptr): Likewise.
41205         (gimple_omp_task_set_copy_fn): Likewise.
41206         (gimple_omp_task_arg_size): Likewise.
41207         (gimple_omp_task_arg_size_ptr): Likewise.
41208         (gimple_omp_task_set_arg_size): Likewise.
41209         (gimple_omp_task_arg_align): Likewise.
41210         (gimple_omp_task_arg_align_ptr): Likewise.
41211         (gimple_omp_task_set_arg_align): Likewise.
41212         (gimple_omp_single_clauses): Likewise.
41213         (gimple_omp_single_clauses_ptr): Likewise.
41214         (gimple_omp_single_set_clauses): Likewise.
41215         (gimple_omp_target_clauses): Likewise.
41216         (gimple_omp_target_clauses_ptr): Likewise.
41217         (gimple_omp_target_set_clauses): Likewise.
41218         (gimple_omp_target_child_fn): Likewise.
41219         (gimple_omp_target_child_fn_ptr): Likewise.
41220         (gimple_omp_target_set_child_fn): Likewise.
41221         (gimple_omp_target_data_arg): Likewise.
41222         (gimple_omp_target_data_arg_ptr): Likewise.
41223         (gimple_omp_target_set_data_arg): Likewise.
41224         (gimple_omp_teams_clauses): Likewise.
41225         (gimple_omp_teams_clauses_ptr): Likewise.
41226         (gimple_omp_teams_set_clauses): Likewise.
41227         (gimple_omp_sections_clauses): Likewise.
41228         (gimple_omp_sections_clauses_ptr): Likewise.
41229         (gimple_omp_sections_set_clauses): Likewise.
41230         (gimple_omp_sections_control): Likewise.
41231         (gimple_omp_sections_control_ptr): Likewise.
41232         (gimple_omp_sections_set_control): Likewise.
41233         (gimple_omp_for_set_cond): Likewise.
41234         (gimple_omp_for_cond): Likewise.
41235         (gimple_omp_atomic_store_set_val): Likewise.
41236         (gimple_omp_atomic_store_val): Likewise.
41237         (gimple_omp_atomic_store_val_ptr): Likewise.
41238         (gimple_omp_atomic_load_set_lhs): Likewise.
41239         (gimple_omp_atomic_load_lhs): Likewise.
41240         (gimple_omp_atomic_load_lhs_ptr): Likewise.
41241         (gimple_omp_atomic_load_set_rhs): Likewise.
41242         (gimple_omp_atomic_load_rhs): Likewise.
41243         (gimple_omp_atomic_load_rhs_ptr): Likewise.
41244         (gimple_omp_continue_control_def): Likewise.
41245         (gimple_omp_continue_control_def_ptr): Likewise.
41246         (gimple_omp_continue_set_control_def): Likewise.
41247         (gimple_omp_continue_control_use): Likewise.
41248         (gimple_omp_continue_control_use_ptr): Likewise.
41249         (gimple_omp_continue_set_control_use): Likewise.
41250         (gimple_transaction_body_ptr): Likewise.
41251         (gimple_transaction_label): Likewise.
41252         (gimple_transaction_label_ptr): Likewise.
41253         (gimple_transaction_set_body): Likewise.
41254         (gimple_transaction_set_label): Likewise.
41255
41256         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
41257         * ipa-inline-analysis.c (inline_write_summary): Likewise.
41258         * ipa-ref.c (ipa_record_reference): Likewise.
41259         * ipa-reference.c (analyze_function): Likewise.
41260         (ipa_reference_write_optimization_summary): Likewise.
41261         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
41262         (address_taken_from_non_vtable_p): Likewise.
41263         (comdat_can_be_unshared_p_1): Likewise.
41264         * lto-cgraph.c (lto_output_ref): Likewise.
41265         (add_references): Likewise.
41266         (compute_ltrans_boundary): Likewise.
41267         (output_symtab): Likewise.
41268         (input_ref): Likewise.
41269         (input_cgraph_1): Likewise.
41270         (output_cgraph_opt_summary): Likewise.
41271         * lto-streamer-out.c (lto_output): Likewise.
41272         (output_symbol_p): Likewise.
41273         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
41274         (lsei_start_function_in_partition): Likewise.
41275         (lsei_next_variable_in_partition): Likewise.
41276         (lsei_start_variable_in_partition): Likewise.
41277         * symtab.c (insert_to_assembler_name_hash): Likewise.
41278         (unlink_from_assembler_name_hash): Likewise.
41279         (symtab_unregister_node): Likewise.
41280         (symtab_remove_node): Likewise.
41281         (dump_symtab_node): Likewise.
41282         (verify_symtab_base): Likewise.
41283         (verify_symtab_node): Likewise.
41284         (symtab_make_decl_local): Likewise.
41285         (symtab_alias_ultimate_target): Likewise.
41286         (symtab_resolve_alias): Likewise.
41287         (symtab_get_symbol_partitioning_class): Likewise.
41288         * tree-phinodes.c (allocate_phi_node): Likewise.
41289         (reserve_phi_args_for_new_edge): Likewise.
41290         (remove_phi_args): Likewise.
41291         * varpool.c (varpool_node_for_asm): Likewise.
41292         (varpool_remove_unreferenced_decls): Likewise.
41293
41294 2014-04-23  Jeff Law  <law@redhat.com>
41295
41296         PR tree-optimization/60902
41297         * tree-ssa-threadedge.c
41298         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
41299         invalidate outputs from statements that do not produce useful
41300         outputs for threading.
41301
41302 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
41303
41304         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
41305         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
41306         machine descriptions for Stack Smashing Protector.
41307
41308 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
41309
41310         * aarch64.md (<optab>_rol<mode>3): New pattern.
41311         (<optab>_rolsi3_uxtw): Likewise.
41312         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
41313
41314 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
41315
41316         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
41317         (arm_cortex_a12_tune): Likewise.
41318
41319 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41320
41321         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
41322
41323 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41324
41325         * config/arm/arm.md (arm_rev16si2): New pattern.
41326         (arm_rev16si2_alt): Likewise.
41327         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
41328
41329 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41330
41331         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
41332         (rev16<mode>2_alt): Likewise.
41333         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
41334         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
41335         (aarch_rev16_shleft_mask_imm_p): Likewise.
41336         (aarch_rev16_p_1): Likewise.
41337         (aarch_rev16_p): Likewise.
41338         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
41339         (aarch_rev16_shright_mask_imm_p): Likewise.
41340         (aarch_rev16_shleft_mask_imm_p): Likewise.
41341
41342 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41343
41344         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
41345         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
41346         rev cost.
41347         (cortex_a53_extra_costs): Likewise.
41348         (cortex_a57_extra_costs): Likewise.
41349         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
41350         (cortexa7_extra_costs): Likewise.
41351         (cortexa8_extra_costs): Likewise.
41352         (cortexa12_extra_costs): Likewise.
41353         (cortexa15_extra_costs): Likewise.
41354         (v7m_extra_costs): Likewise.
41355         (arm_new_rtx_costs): Handle BSWAP.
41356
41357 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41358
41359         * config/arm/arm.c (cortexa8_extra_costs): New table.
41360         (arm_cortex_a8_tune): New tuning struct.
41361         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
41362
41363 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41364
41365         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
41366
41367 2014-04-23  Richard Biener  <rguenther@suse.de>
41368
41369         * Makefile.in (OBJS): Remove loop-unswitch.o.
41370         * tree-pass.h (make_pass_rtl_unswitch): Remove.
41371         * passes.def (pass_rtl_unswitch): Likewise.
41372         * loop-init.c (gate_rtl_unswitch): Likewise.
41373         (rtl_unswitch): Likewise.
41374         (pass_data_rtl_unswitch): Likewise.
41375         (pass_rtl_unswitch): Likewise.
41376         (make_pass_rtl_unswitch): Likewise.
41377         * rtl.h (reversed_condition): Likewise.
41378         (compare_and_jump_seq): Likewise.
41379         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
41380         and make static.
41381         * loop-unroll.c (compare_and_jump_seq): Likewise.
41382
41383 2014-04-23  Richard Biener  <rguenther@suse.de>
41384
41385         PR tree-optimization/60903
41386         * tree-ssa-loop-im.c (analyze_memory_references): Remove
41387         commented code block.
41388         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
41389         loop flags to newly created BBs and edges.
41390
41391 2014-04-23  Nick Clifton  <nickc@redhat.com>
41392
41393         * config/msp430/msp430.c (msp430_handle_option): Move function
41394         to msp430-common.c
41395         (msp430_option_override): Simplify mcu and mcpu option handling.
41396         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
41397         support for -mhwmult command line option.
41398         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
41399         -mhwmult command line option.
41400         (msp430_hwmult_enabled): Delete.
41401         (msp43o_output_labelref): Add support for -mhwmult command line option.
41402         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
41403         (umulsidi3): Likewise.
41404         * config/msp430/msp430.opt (mmcu): Add Report attribute.
41405         (mcpu, mlarge, msmall): Likewise.
41406         (mhwmult): New option.
41407         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
41408         prototype.
41409         (msp430_is_f5_mcu): Remove prototype.
41410         (msp430_use_f5_series_hwmult): Add prototype.
41411         * config/msp430/msp430-opts.h: New file.
41412         * common/config/msp430: New directory.
41413         * common/config/msp430/msp430-common.c: New file.
41414         * config.gcc (msp430): Remove target_has_targetm_common.
41415         * doc/invoke.texi: Document -mhwmult command line option.
41416
41417 2014-04-23  Nick Clifton  <nickc@redhat.com>
41418
41419         * config/i386/cygwin.h (ENDFILE_SPEC): Include
41420         default-manifest.o if it can be found in the search path.
41421         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
41422
41423 2014-04-23  Terry Guo  <terry.guo@arm.com>
41424
41425         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
41426
41427 2014-04-23  Richard Biener  <rguenther@suse.de>
41428
41429         PR middle-end/60895
41430         * tree-inline.c (declare_return_variable): Use mark_addressable.
41431
41432 2014-04-23  Richard Biener  <rguenther@suse.de>
41433
41434         PR middle-end/60891
41435         * loop-init.c (loop_optimizer_init): Make sure to apply
41436         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
41437
41438 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41439
41440         PR sanitizer/60275
41441         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
41442         New options.
41443         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
41444         if flag_sanitize_undefined_trap_on_error.
41445         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
41446         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
41447         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
41448         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
41449         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
41450         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
41451         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
41452         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
41453         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
41454         * ubsan.c (ubsan_instrument_unreachable): Return
41455         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
41456         (ubsan_expand_null_ifn): Emit __builtin_trap ()
41457         if flag_sanitize_undefined_trap_on_error and
41458         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
41459         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
41460         instrument_bool_enum_load): Emit __builtin_trap () if
41461         flag_sanitize_undefined_trap_on_error and
41462         __builtin_handle_*_abort () if !flag_sanitize_recover.
41463         * doc/invoke.texi (-fsanitize-recover,
41464         -fsanitize-undefined-trap-on-error): Document.
41465
41466 2014-04-22  Christian Bruel  <christian.bruel@st.com>
41467
41468         * config/sh/sh.md (mov<mode>): Replace movQIHI.
41469         Force immediates to SImode.
41470
41471 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
41472
41473         * config/nios2/nios2.md (UNSPEC_ROUND): New.
41474         (lroundsfsi2): New.
41475         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
41476         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
41477         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
41478         (nios2_fpu_insn): Add entry for round.
41479         (N2FPU_NO_ERRNO_P): Define.
41480         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
41481         flag_errno_math.
41482         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
41483
41484 2014-04-22  Richard Henderson  <rth@redhat.com>
41485
41486         * config/aarch64/aarch64 (addti3, subti3): New expanders.
41487         (add<GPI>3_compare0): Remove leading * from name.
41488         (add<GPI>3_carryin): Likewise.
41489         (sub<GPI>3_compare0): Likewise.
41490         (sub<GPI>3_carryin): Likewise.
41491         (<su_optab>mulditi3): New expander.
41492         (multi3): New expander.
41493         (madd<GPI>): Remove leading * from name.
41494
41495 2014-04-22  Martin Jambor  <mjambor@suse.cz>
41496
41497         * cgraphclones.c (cgraph_function_versioning): Copy
41498         ipa_transforms_to_apply instead of asserting it is empty.
41499
41500 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
41501
41502         PR target/60868
41503         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
41504         on count_exp to get mode.
41505
41506 2014-04-22  Andrew Pinski  <apinski@cavium.com>
41507
41508         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
41509         Handle TLS for ILP32.
41510         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
41511         (tlsie_small_<mode>): this and handle PTR.
41512         (tlsie_small_sidi): New pattern.
41513         (tlsle_small): Change to an expand to handle ILP32.
41514         (tlsle_small_<mode>): New pattern.
41515         (tlsdesc_small): Rename to ...
41516         (tlsdesc_small_<mode>): this and handle PTR.
41517
41518 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41519
41520         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
41521
41522 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41523
41524         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41525         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
41526         (aarch64_types_signed_poly_qualifiers): Likewise.
41527         (aarch64_types_unsigned_signed_qualifiers): Likewise.
41528         (aarch64_types_poly_signed_qualifiers): Likewise.
41529         (TYPES_REINTERP_SS): Type macro added.
41530         (TYPES_REINTERP_SU): Likewise.
41531         (TYPES_REINTERP_SP): Likewise.
41532         (TYPES_REINTERP_US): Likewise.
41533         (TYPES_REINTERP_PS): Likewise.
41534         (aarch64_fold_builtin): New expression folding added.
41535         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
41536         Declarations removed.
41537         (REINTERP_SS): Declarations added.
41538         (REINTERP_US): Likewise.
41539         (REINTERP_PS): Likewise.
41540         (REINTERP_SU): Likewise.
41541         (REINTERP_SP): Likewise.
41542         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
41543         (vreinterpretq_p8_f64): Likewise.
41544         (vreinterpret_p16_f64): Likewise.
41545         (vreinterpretq_p16_f64): Likewise.
41546         (vreinterpret_f32_f64): Likewise.
41547         (vreinterpretq_f32_f64): Likewise.
41548         (vreinterpret_f64_f32): Likewise.
41549         (vreinterpret_f64_p8): Likewise.
41550         (vreinterpret_f64_p16): Likewise.
41551         (vreinterpret_f64_s8): Likewise.
41552         (vreinterpret_f64_s16): Likewise.
41553         (vreinterpret_f64_s32): Likewise.
41554         (vreinterpret_f64_s64): Likewise.
41555         (vreinterpret_f64_u8): Likewise.
41556         (vreinterpret_f64_u16): Likewise.
41557         (vreinterpret_f64_u32): Likewise.
41558         (vreinterpret_f64_u64): Likewise.
41559         (vreinterpretq_f64_f32): Likewise.
41560         (vreinterpretq_f64_p8): Likewise.
41561         (vreinterpretq_f64_p16): Likewise.
41562         (vreinterpretq_f64_s8): Likewise.
41563         (vreinterpretq_f64_s16): Likewise.
41564         (vreinterpretq_f64_s32): Likewise.
41565         (vreinterpretq_f64_s64): Likewise.
41566         (vreinterpretq_f64_u8): Likewise.
41567         (vreinterpretq_f64_u16): Likewise.
41568         (vreinterpretq_f64_u32): Likewise.
41569         (vreinterpretq_f64_u64): Likewise.
41570         (vreinterpret_s64_f64): Likewise.
41571         (vreinterpretq_s64_f64): Likewise.
41572         (vreinterpret_u64_f64): Likewise.
41573         (vreinterpretq_u64_f64): Likewise.
41574         (vreinterpret_s8_f64): Likewise.
41575         (vreinterpretq_s8_f64): Likewise.
41576         (vreinterpret_s16_f64): Likewise.
41577         (vreinterpretq_s16_f64): Likewise.
41578         (vreinterpret_s32_f64): Likewise.
41579         (vreinterpretq_s32_f64): Likewise.
41580         (vreinterpret_u8_f64): Likewise.
41581         (vreinterpretq_u8_f64): Likewise.
41582         (vreinterpret_u16_f64): Likewise.
41583         (vreinterpretq_u16_f64): Likewise.
41584         (vreinterpret_u32_f64): Likewise.
41585         (vreinterpretq_u32_f64): Likewise.
41586
41587 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41588
41589         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41590         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41591         (vreinterpret_p8_s8): Likewise.
41592         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41593         (vreinterpret_p8_s16): Likewise.
41594         (vreinterpret_p8_s32): Likewise.
41595         (vreinterpret_p8_s64): Likewise.
41596         (vreinterpret_p8_f32): Likewise.
41597         (vreinterpret_p8_u8): Likewise.
41598         (vreinterpret_p8_u16): Likewise.
41599         (vreinterpret_p8_u32): Likewise.
41600         (vreinterpret_p8_u64): Likewise.
41601         (vreinterpret_p8_p16): Likewise.
41602         (vreinterpretq_p8_s8): Likewise.
41603         (vreinterpretq_p8_s16): Likewise.
41604         (vreinterpretq_p8_s32): Likewise.
41605         (vreinterpretq_p8_s64): Likewise.
41606         (vreinterpretq_p8_f32): Likewise.
41607         (vreinterpretq_p8_u8): Likewise.
41608         (vreinterpretq_p8_u16): Likewise.
41609         (vreinterpretq_p8_u32): Likewise.
41610         (vreinterpretq_p8_u64): Likewise.
41611         (vreinterpretq_p8_p16): Likewise.
41612         (vreinterpret_p16_s8): Likewise.
41613         (vreinterpret_p16_s16): Likewise.
41614         (vreinterpret_p16_s32): Likewise.
41615         (vreinterpret_p16_s64): Likewise.
41616         (vreinterpret_p16_f32): Likewise.
41617         (vreinterpret_p16_u8): Likewise.
41618         (vreinterpret_p16_u16): Likewise.
41619         (vreinterpret_p16_u32): Likewise.
41620         (vreinterpret_p16_u64): Likewise.
41621         (vreinterpret_p16_p8): Likewise.
41622         (vreinterpretq_p16_s8): Likewise.
41623         (vreinterpretq_p16_s16): Likewise.
41624         (vreinterpretq_p16_s32): Likewise.
41625         (vreinterpretq_p16_s64): Likewise.
41626         (vreinterpretq_p16_f32): Likewise.
41627         (vreinterpretq_p16_u8): Likewise.
41628         (vreinterpretq_p16_u16): Likewise.
41629         (vreinterpretq_p16_u32): Likewise.
41630         (vreinterpretq_p16_u64): Likewise.
41631         (vreinterpretq_p16_p8): Likewise.
41632         (vreinterpret_f32_s8): Likewise.
41633         (vreinterpret_f32_s16): Likewise.
41634         (vreinterpret_f32_s32): Likewise.
41635         (vreinterpret_f32_s64): Likewise.
41636         (vreinterpret_f32_u8): Likewise.
41637         (vreinterpret_f32_u16): Likewise.
41638         (vreinterpret_f32_u32): Likewise.
41639         (vreinterpret_f32_u64): Likewise.
41640         (vreinterpret_f32_p8): Likewise.
41641         (vreinterpret_f32_p16): Likewise.
41642         (vreinterpretq_f32_s8): Likewise.
41643         (vreinterpretq_f32_s16): Likewise.
41644         (vreinterpretq_f32_s32): Likewise.
41645         (vreinterpretq_f32_s64): Likewise.
41646         (vreinterpretq_f32_u8): Likewise.
41647         (vreinterpretq_f32_u16): Likewise.
41648         (vreinterpretq_f32_u32): Likewise.
41649         (vreinterpretq_f32_u64): Likewise.
41650         (vreinterpretq_f32_p8): Likewise.
41651         (vreinterpretq_f32_p16): Likewise.
41652         (vreinterpret_s64_s8): Likewise.
41653         (vreinterpret_s64_s16): Likewise.
41654         (vreinterpret_s64_s32): Likewise.
41655         (vreinterpret_s64_f32): Likewise.
41656         (vreinterpret_s64_u8): Likewise.
41657         (vreinterpret_s64_u16): Likewise.
41658         (vreinterpret_s64_u32): Likewise.
41659         (vreinterpret_s64_u64): Likewise.
41660         (vreinterpret_s64_p8): Likewise.
41661         (vreinterpret_s64_p16): Likewise.
41662         (vreinterpretq_s64_s8): Likewise.
41663         (vreinterpretq_s64_s16): Likewise.
41664         (vreinterpretq_s64_s32): Likewise.
41665         (vreinterpretq_s64_f32): Likewise.
41666         (vreinterpretq_s64_u8): Likewise.
41667         (vreinterpretq_s64_u16): Likewise.
41668         (vreinterpretq_s64_u32): Likewise.
41669         (vreinterpretq_s64_u64): Likewise.
41670         (vreinterpretq_s64_p8): Likewise.
41671         (vreinterpretq_s64_p16): Likewise.
41672         (vreinterpret_u64_s8): Likewise.
41673         (vreinterpret_u64_s16): Likewise.
41674         (vreinterpret_u64_s32): Likewise.
41675         (vreinterpret_u64_s64): Likewise.
41676         (vreinterpret_u64_f32): Likewise.
41677         (vreinterpret_u64_u8): Likewise.
41678         (vreinterpret_u64_u16): Likewise.
41679         (vreinterpret_u64_u32): Likewise.
41680         (vreinterpret_u64_p8): Likewise.
41681         (vreinterpret_u64_p16): Likewise.
41682         (vreinterpretq_u64_s8): Likewise.
41683         (vreinterpretq_u64_s16): Likewise.
41684         (vreinterpretq_u64_s32): Likewise.
41685         (vreinterpretq_u64_s64): Likewise.
41686         (vreinterpretq_u64_f32): Likewise.
41687         (vreinterpretq_u64_u8): Likewise.
41688         (vreinterpretq_u64_u16): Likewise.
41689         (vreinterpretq_u64_u32): Likewise.
41690         (vreinterpretq_u64_p8): Likewise.
41691         (vreinterpretq_u64_p16): Likewise.
41692         (vreinterpret_s8_s16): Likewise.
41693         (vreinterpret_s8_s32): Likewise.
41694         (vreinterpret_s8_s64): Likewise.
41695         (vreinterpret_s8_f32): Likewise.
41696         (vreinterpret_s8_u8): Likewise.
41697         (vreinterpret_s8_u16): Likewise.
41698         (vreinterpret_s8_u32): Likewise.
41699         (vreinterpret_s8_u64): Likewise.
41700         (vreinterpret_s8_p8): Likewise.
41701         (vreinterpret_s8_p16): Likewise.
41702         (vreinterpretq_s8_s16): Likewise.
41703         (vreinterpretq_s8_s32): Likewise.
41704         (vreinterpretq_s8_s64): Likewise.
41705         (vreinterpretq_s8_f32): Likewise.
41706         (vreinterpretq_s8_u8): Likewise.
41707         (vreinterpretq_s8_u16): Likewise.
41708         (vreinterpretq_s8_u32): Likewise.
41709         (vreinterpretq_s8_u64): Likewise.
41710         (vreinterpretq_s8_p8): Likewise.
41711         (vreinterpretq_s8_p16): Likewise.
41712         (vreinterpret_s16_s8): Likewise.
41713         (vreinterpret_s16_s32): Likewise.
41714         (vreinterpret_s16_s64): Likewise.
41715         (vreinterpret_s16_f32): Likewise.
41716         (vreinterpret_s16_u8): Likewise.
41717         (vreinterpret_s16_u16): Likewise.
41718         (vreinterpret_s16_u32): Likewise.
41719         (vreinterpret_s16_u64): Likewise.
41720         (vreinterpret_s16_p8): Likewise.
41721         (vreinterpret_s16_p16): Likewise.
41722         (vreinterpretq_s16_s8): Likewise.
41723         (vreinterpretq_s16_s32): Likewise.
41724         (vreinterpretq_s16_s64): Likewise.
41725         (vreinterpretq_s16_f32): Likewise.
41726         (vreinterpretq_s16_u8): Likewise.
41727         (vreinterpretq_s16_u16): Likewise.
41728         (vreinterpretq_s16_u32): Likewise.
41729         (vreinterpretq_s16_u64): Likewise.
41730         (vreinterpretq_s16_p8): Likewise.
41731         (vreinterpretq_s16_p16): Likewise.
41732         (vreinterpret_s32_s8): Likewise.
41733         (vreinterpret_s32_s16): Likewise.
41734         (vreinterpret_s32_s64): Likewise.
41735         (vreinterpret_s32_f32): Likewise.
41736         (vreinterpret_s32_u8): Likewise.
41737         (vreinterpret_s32_u16): Likewise.
41738         (vreinterpret_s32_u32): Likewise.
41739         (vreinterpret_s32_u64): Likewise.
41740         (vreinterpret_s32_p8): Likewise.
41741         (vreinterpret_s32_p16): Likewise.
41742         (vreinterpretq_s32_s8): Likewise.
41743         (vreinterpretq_s32_s16): Likewise.
41744         (vreinterpretq_s32_s64): Likewise.
41745         (vreinterpretq_s32_f32): Likewise.
41746         (vreinterpretq_s32_u8): Likewise.
41747         (vreinterpretq_s32_u16): Likewise.
41748         (vreinterpretq_s32_u32): Likewise.
41749         (vreinterpretq_s32_u64): Likewise.
41750         (vreinterpretq_s32_p8): Likewise.
41751         (vreinterpretq_s32_p16): Likewise.
41752         (vreinterpret_u8_s8): Likewise.
41753         (vreinterpret_u8_s16): Likewise.
41754         (vreinterpret_u8_s32): Likewise.
41755         (vreinterpret_u8_s64): Likewise.
41756         (vreinterpret_u8_f32): Likewise.
41757         (vreinterpret_u8_u16): Likewise.
41758         (vreinterpret_u8_u32): Likewise.
41759         (vreinterpret_u8_u64): Likewise.
41760         (vreinterpret_u8_p8): Likewise.
41761         (vreinterpret_u8_p16): Likewise.
41762         (vreinterpretq_u8_s8): Likewise.
41763         (vreinterpretq_u8_s16): Likewise.
41764         (vreinterpretq_u8_s32): Likewise.
41765         (vreinterpretq_u8_s64): Likewise.
41766         (vreinterpretq_u8_f32): Likewise.
41767         (vreinterpretq_u8_u16): Likewise.
41768         (vreinterpretq_u8_u32): Likewise.
41769         (vreinterpretq_u8_u64): Likewise.
41770         (vreinterpretq_u8_p8): Likewise.
41771         (vreinterpretq_u8_p16): Likewise.
41772         (vreinterpret_u16_s8): Likewise.
41773         (vreinterpret_u16_s16): Likewise.
41774         (vreinterpret_u16_s32): Likewise.
41775         (vreinterpret_u16_s64): Likewise.
41776         (vreinterpret_u16_f32): Likewise.
41777         (vreinterpret_u16_u8): Likewise.
41778         (vreinterpret_u16_u32): Likewise.
41779         (vreinterpret_u16_u64): Likewise.
41780         (vreinterpret_u16_p8): Likewise.
41781         (vreinterpret_u16_p16): Likewise.
41782         (vreinterpretq_u16_s8): Likewise.
41783         (vreinterpretq_u16_s16): Likewise.
41784         (vreinterpretq_u16_s32): Likewise.
41785         (vreinterpretq_u16_s64): Likewise.
41786         (vreinterpretq_u16_f32): Likewise.
41787         (vreinterpretq_u16_u8): Likewise.
41788         (vreinterpretq_u16_u32): Likewise.
41789         (vreinterpretq_u16_u64): Likewise.
41790         (vreinterpretq_u16_p8): Likewise.
41791         (vreinterpretq_u16_p16): Likewise.
41792         (vreinterpret_u32_s8): Likewise.
41793         (vreinterpret_u32_s16): Likewise.
41794         (vreinterpret_u32_s32): Likewise.
41795         (vreinterpret_u32_s64): Likewise.
41796         (vreinterpret_u32_f32): Likewise.
41797         (vreinterpret_u32_u8): Likewise.
41798         (vreinterpret_u32_u16): Likewise.
41799         (vreinterpret_u32_u64): Likewise.
41800         (vreinterpret_u32_p8): Likewise.
41801         (vreinterpret_u32_p16): Likewise.
41802         (vreinterpretq_u32_s8): Likewise.
41803         (vreinterpretq_u32_s16): Likewise.
41804         (vreinterpretq_u32_s32): Likewise.
41805         (vreinterpretq_u32_s64): Likewise.
41806         (vreinterpretq_u32_f32): Likewise.
41807         (vreinterpretq_u32_u8): Likewise.
41808         (vreinterpretq_u32_u16): Likewise.
41809         (vreinterpretq_u32_u64): Likewise.
41810         (vreinterpretq_u32_p8): Likewise.
41811         (vreinterpretq_u32_p16): Likewise.
41812
41813 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41814
41815         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41816         Pattern extended.
41817         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41818         (sqabs): Likewise.
41819         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41820         (vqnegd_s64): Likewise.
41821         (vqabs_s64): Likewise.
41822         (vqabsd_s64): Likewise.
41823
41824 2014-04-22  Richard Henderson  <rth@redhat.com>
41825
41826         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41827         computation to the top of the loop.
41828
41829 2014-04-22  Renlin  <renlin.li@arm.com>
41830             Jiong Wang  <jiong.wang@arm.com>
41831
41832         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41833         * config/aarch64/aarch64.c (aarch64_layout_frame)
41834         (aarch64_initial_elimination_offset): Likewise.
41835
41836 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41837
41838         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41839         Fix indentation.
41840
41841 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
41842
41843         * machmode.h (bitwise_mode_for_mode): Declare.
41844         * stor-layout.h (bitwise_type_for_mode): Likewise.
41845         * stor-layout.c (bitwise_mode_for_mode): New function.
41846         (bitwise_type_for_mode): Likewise.
41847         * builtins.c (fold_builtin_memory_op): Use it instead of
41848         int_mode_for_mode and build_nonstandard_integer_type.
41849
41850 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41851
41852         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41853         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41854         (*-*-solaris2*): Simplify.
41855         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41856         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41857         *-*-solaris2.9* handling.
41858
41859         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41860         as bug.
41861         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41862         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41863         handling, simplify.
41864         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41865         * configure: Regenerate.
41866
41867         * config/i386/sol2-9.h: Remove.
41868
41869         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41870         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41871         Remove Solaris 9 references.
41872
41873 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
41874
41875         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41876         (floatuns<GPI:mode><GPF:mode>2): Remove.
41877         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41878         and floatuns conversions.
41879         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41880         and floatuns conversions.
41881         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41882         (w1,w2): New mode attributes for inequal width conversions.
41883
41884 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
41885
41886         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41887         the output asm format.
41888
41889 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
41890
41891         * config/aarch64/aarch64-simd.md
41892         (aarch64_cm<optab>di): Always split.
41893         (*aarch64_cm<optab>di): New.
41894         (aarch64_cmtstdi): Always split.
41895         (*aarch64_cmtstdi): New.
41896
41897 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41898
41899         PR tree-optimization/60823
41900         * omp-low.c (ipa_simd_modify_function_body): Go through
41901         all SSA_NAMEs and for those refering to vector arguments
41902         which are going to be replaced adjust SSA_NAME_VAR and,
41903         if it is a default definition, change it into a non-default
41904         definition assigned at the beginning of function from new_decl.
41905         (ipa_simd_modify_stmt_ops): Rewritten.
41906         * tree-dfa.c (set_ssa_default_def): When removing default def,
41907         check for NULL loc instead of NULL *loc.
41908
41909 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41910
41911         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41912         restrictions on core registers for DImode values in Thumb2.
41913
41914 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41915
41916         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41917         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41918
41919 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41920
41921         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41922         (*iordi_notzesidi_di): Likewise.
41923         (*iordi_notsesidi_di): Likewise.
41924
41925 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41926
41927         * config/arm/arm-protos.h (tune_params): New struct members.
41928         * config/arm/arm.c: Initialise tune_params per processor.
41929         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41930         for speed, based on new tune_params.
41931
41932 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41933
41934         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41935         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41936         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41937         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41938         * config/aarch64/arm_neon.h (vrnd_f64): Added.
41939         (vrnda_f64): Likewise.
41940         (vrndi_f64): Likewise.
41941         (vrndm_f64): Likewise.
41942         (vrndn_f64): Likewise.
41943         (vrndp_f64): Likewise.
41944         (vrndx_f64): Likewise.
41945
41946 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
41947
41948         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41949         GET_MODE_SIZE argument is enum machine_mode.
41950
41951 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41952
41953         PR target/60910
41954         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41955         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41956
41957 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
41958
41959         PR middle-end/60281
41960         * asan.c (asan_emit_stack_protection): Force the base to align to
41961         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
41962         appropriate bits if STRICT_ALIGNMENT.
41963         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41964         when asan is on.
41965         (expand_used_vars): Leave a space in the stack frame for alignment
41966         if STRICT_ALIGNMENT.
41967
41968 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
41969
41970         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41971         than a gimple.
41972         (gimple_store_p): Likewise.
41973         (gimple_assign_load_p): Likewise.
41974         (gimple_assign_cast_p): Likewise.
41975         (gimple_clobber_p): Likewise.
41976
41977         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41978         rather than a gimple.
41979         (gimple_assign_cast_p): Likewise.
41980
41981 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
41982
41983         PR target/60735
41984         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41985         If mode is DDmode and TARGET_E500_DOUBLE allow move.
41986
41987         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41988         more debug information for E500 if -mdebug=reg.
41989
41990 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
41991
41992         PR target/60909
41993         * config/i386/i386.c (ix86_expand_builtin)
41994         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41995         register for target RTX.
41996         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41997
41998 2014-04-18  Cong Hou  <congh@google.com>
41999
42000         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
42001         the widen-mult pattern by handling two operands with different sizes,
42002         and operands whose size is smaller than half of the result type.
42003
42004 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
42005
42006         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
42007         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
42008         (do_estimate_edge_time): Compute it.
42009         * ipa-inline.c (want_inline_small_function_p): Bypass
42010         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
42011
42012 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
42013
42014         * ipa-inline.c (spec_rem): New static variable.
42015         (dump_overall_stats): New function.
42016         (dump_inline_stats): New function.
42017
42018 2014-04-18  Richard Henderson  <rth@redhat.com>
42019
42020         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
42021         to GET_MODE_SIZE, not a reg_class_t.
42022
42023 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42024
42025         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
42026         (vsx_xxmrglw_<mode>): Likewise.
42027
42028 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
42029
42030         PR target/60876
42031         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
42032         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
42033         (rs6000_init_hard_regno_mode_ok): Likewise.
42034
42035 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
42036
42037         * ipa-inline.c (inline_small_functions): Account only non-cold
42038         functions.
42039         * doc/invoke.texi (inline-unit-growth): Update documentation.
42040
42041 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
42042
42043         * config/rs6000/rs6000.md (addti3, subti3): New.
42044
42045 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
42046
42047         PR target/60863
42048         * config/i386/i386.c (ix86_expand_clear): Remove outdated
42049         comment.  Check optimize_insn_for_size_p instead of
42050         optimize_insn_for_speed_p.
42051
42052 2014-04-17  Martin Jambor  <mjambor@suse.cz>
42053
42054         * gimple-iterator.c (gsi_start_edge): New function.
42055         * gimple-iterator.h (gsi_start_edge): Declare.
42056         * tree-sra.c (single_non_eh_succ): New function.
42057         (disqualify_ops_if_throwing_stmt): Renamed to
42058         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
42059         having one non-EH successor BB.
42060         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
42061         generate loads into replacements.
42062         (sra_modify_assign): Likewise and and also use the simple path for
42063         such statements.
42064         (sra_modify_function_body): Commit statements on edges.
42065
42066 2014-04-17  Richard Biener  <rguenther@suse.de>
42067
42068         PR middle-end/60849
42069         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
42070         comparison results and add clarifying comment.
42071
42072 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
42073
42074         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
42075         (blank_mode): Initialize it.
42076         (emit_mode_size_inline, emit_mode_nunits_inline,
42077         emit_mode_inner_inline): New functions.
42078         (emit_insn_modes_h): Call them and surround their output with
42079         #if GCC_VERSION >= 4001 ... #endif.
42080         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
42081         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
42082         mode_* arrays if the argument is __builtin_constant_p.
42083         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
42084         is enum machine_mode.
42085
42086 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42087
42088         * passes.c (opt_pass::execute): Adjust.
42089         (pass_manager::execute_pass_mode_switching): Likewise.
42090         (early_local_passes::execute): Likewise.
42091         (execute_one_pass): Pass cfun to the pass's execute method.
42092         * tree-pass.h (opt_pass::execute): Add function * argument.
42093         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
42094         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
42095         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
42096         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
42097         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
42098         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
42099         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
42100         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
42101         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
42102         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
42103         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
42104         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
42105         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
42106         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
42107         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
42108         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
42109         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
42110         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
42111         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
42112         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
42113         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
42114         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
42115         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
42116         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
42117         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
42118         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
42119         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
42120         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
42121         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
42122         Adjust.
42123
42124 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42125
42126         * passes.c (opt_pass::gate): Take function * argument.
42127         (gate_all_early_local_passes): Merge into
42128         (early_local_passes::gate): this.
42129         (gate_all_early_optimizations): Merge into
42130         (all_early_optimizations::gate): this.
42131         (gate_all_optimizations): Mege into
42132         (all_optimizations::gate): this.
42133         (gate_all_optimizations_g): Merge into
42134         (all_optimizations_g::gate): this.
42135         (gate_rest_of_compilation): Mege into
42136         (rest_of_compilation::gate): this.
42137         (gate_postreload): Merge into
42138         (postreload::gate): this.
42139         (dump_one_pass): Pass cfun to the pass's gate method.
42140         (execute_ipa_summary_passes): Likewise.
42141         (execute_one_pass): Likewise.
42142         (ipa_write_summaries_2): Likewise.
42143         (ipa_write_optimization_summaries_1): Likewise.
42144         (ipa_read_summaries_1): Likewise.
42145         (ipa_read_optimization_summaries_1): Likewise.
42146         (execute_ipa_stmt_fixups): Likewise.
42147         * tree-pass.h (opt_pass::gate): Add function * argument.
42148         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
42149         combine-stack-adj.c, combine.c, compare-elim.c,
42150         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
42151         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
42152         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
42153         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
42154         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
42155         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
42156         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
42157         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
42158         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
42159         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
42160         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
42161         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
42162         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
42163         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
42164         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
42165         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
42166         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
42167         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
42168         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
42169         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
42170         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
42171         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
42172         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
42173         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
42174         var-tracking.c, vtable-verify.c, web.c: Adjust.
42175
42176 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42177
42178         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
42179         * configure: Regenerate.
42180
42181 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42182
42183         * passes.c (dump_one_pass): don't check pass->has_gate.
42184         (execute_ipa_summary_passes): Likewise.
42185         (execute_one_pass): Likewise.
42186         (ipa_write_summaries_2): Likewise.
42187         (ipa_write_optimization_summaries_1): Likewise.
42188         (ipa_read_optimization_summaries_1): Likewise.
42189         (execute_ipa_stmt_fixups): Likewise.
42190         * tree-pass.h (pass_data::has_gate): Remove.
42191         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
42192         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
42193         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
42194         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
42195         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
42196         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
42197         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
42198         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
42199         gimple-low.c, gimple-ssa-isolate-paths.c,
42200         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
42201         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
42202         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
42203         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
42204         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
42205         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
42206         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
42207         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
42208         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
42209         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
42210         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
42211         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
42212         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
42213         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
42214         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
42215         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
42216         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
42217         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
42218         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
42219         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
42220         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
42221         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
42222         Adjust.
42223
42224 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42225
42226         * pass_manager.h (pass_manager::register_dump_files_1): Remove
42227         declaration.
42228         * passes.c (pass_manager::register_dump_files_1): Merge into
42229         (pass_manager::register_dump_files): this, and remove its handling of
42230         properties since the pass always has the properties anyway.
42231         (pass_manager::pass_manager): Adjust.
42232
42233 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42234
42235         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
42236         * passes.c (pass_manager::register_dump_files_1): Remove dead code
42237         dealing with properties.
42238         (pass_manager::register_dump_files): Adjust.
42239
42240 2014-03-20  Mark Wielaard  <mjw@redhat.com>
42241
42242         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
42243         then represent the bound as normal constant value.
42244
42245 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
42246
42247         PR target/60847
42248         Forward port from 4.8 branch
42249         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
42250
42251         * config/i386/bmiintrin.h (_blsi_u32): New.
42252         (_blsi_u64): Ditto.
42253         (_blsr_u32): Ditto.
42254         (_blsr_u64): Ditto.
42255         (_blsmsk_u32): Ditto.
42256         (_blsmsk_u64): Ditto.
42257         (_tzcnt_u32): Ditto.
42258         (_tzcnt_u64): Ditto.
42259
42260 2014-04-17  Kito Cheng  <kito@0xlab.org>
42261
42262         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
42263
42264 2014-04-17  Richard Biener  <rguenther@suse.de>
42265
42266         PR middle-end/60849
42267         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
42268         boolean results for comparisons.
42269
42270 2014-04-17  Richard Biener  <rguenther@suse.de>
42271
42272         PR tree-optimization/60836
42273         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
42274         initial PHI args to be gimple values.
42275
42276 2014-04-17  Richard Biener  <rguenther@suse.de>
42277
42278         PR tree-optimization/60841
42279         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
42280         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
42281         of stmts to SLP build.
42282         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
42283         (vect_analyze_slp): Likewise.
42284         (vect_analyze_slp_instance): Likewise.
42285         (vect_build_slp_tree): Limit overall SLP tree growth.
42286         * tree-vectorizer.h (vect_analyze_data_refs,
42287         vect_analyze_slp): Adjust prototypes.
42288
42289 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
42290
42291         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
42292         Silvermont.
42293
42294 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
42295
42296         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
42297         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
42298         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
42299         for TARGET_SLOW_PSHUFB
42300
42301 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
42302
42303         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
42304         * config/i386/i386.c (intel_cost): Ditto.
42305
42306 2014-04-17  Joey Ye  <joey.ye@arm.com>
42307
42308         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
42309
42310 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
42311
42312         * opts.c (common_handle_option): Disable -fipa-reference coorectly
42313         with -fuse-profile.
42314
42315 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
42316
42317         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
42318         (type_all_derivations_known_p): New predicate.
42319         (type_all_ctors_visible_p): New predicate.
42320         (type_possibly_instantiated_p): New predicate.
42321         (get_odr_type): Compute all_derivations_known.
42322         (dump_odr_type): Dump the flag.
42323         (maybe_record_type): Cleanup.
42324         (record_target_from_binfo): Add bases_to_consider array;
42325         record bases for types w/o instances and skip CXX destructor.
42326         (possible_polymorphic_call_targets_1): Add bases_to_consider
42327         and consider_construction parameters; check if type may have instance.
42328         (get_polymorphic_call_info): Set maybe_in_construction to true
42329         when we know nothing.
42330         (record_targets_from_bases): Skip CXX destructors; they are
42331         never called for types in construction.
42332         (possible_polymorphic_call_targets): Do not record target when
42333         type may not have instance.
42334
42335 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
42336
42337         PR ipa/60854
42338         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
42339         external aliases alive, too.
42340
42341 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
42342
42343         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
42344         definition.
42345
42346 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
42347
42348         * final.c (compute_alignments): Do not apply loop alignment to a block
42349         falling through to the exit.
42350
42351 2014-04-16  Catherine Moore  <clm@codesourcery.com>
42352
42353         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
42354         Adjust constraints for microMIPS store patterns.
42355
42356 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42357
42358         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
42359
42360 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
42361
42362         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
42363         (append_use): Run at -O0.
42364         (append_vdef): Likewise.
42365         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
42366         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
42367
42368 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
42369
42370         PR tree-optimization/60844
42371         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
42372         (propagate_op_to_single_use, remove_visited_stmt_chain,
42373         linearize_expr, repropagate_negates, reassociate_bb): Use it
42374         instead of gsi_remove.
42375
42376 2014-04-16  Martin Jambor  <mjambor@suse.cz>
42377
42378         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
42379         ipa_transforms_to_apply.
42380         (cgraph_function_versioning): Assert that old_node has empty
42381         ipa_transforms_to_apply.
42382         * trans-mem.c (ipa_tm_create_version): Likewise.
42383         * tree-inline.c (tree_function_versioning): Do not duplicate
42384         ipa_transforms_to_apply.
42385
42386 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42387
42388         PR target/60817
42389         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
42390         x86_64-*-* cases.
42391         Pass necessary as flags on 64-bit Solaris/x86.
42392         Use lowercase relocs for x86_64-*-*.
42393         * configure: Regenerate.
42394
42395 2014-04-15  Jan Hubicka  <jh@suse.cz>
42396
42397         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
42398         (maybe_record_node, likely_target_p): Use it.
42399
42400 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42401
42402         PR target/60839
42403         Revert following patch
42404
42405         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42406
42407         PR target/60735
42408         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42409         software floating point or no floating point registers, do not
42410         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42411         in GPRs that occurs after we tested for GPRs that would never be
42412         true.
42413
42414         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42415         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42416         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42417         specifically allow DDmode, since that does not use the SPE SIMD
42418         instructions.
42419
42420 2014-03-21  Mark Wielaard  <mjw@redhat.com>
42421
42422         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
42423         as unsigned or int depending on type and value used.
42424
42425 2014-04-15  Richard Biener  <rguenther@suse.de>
42426
42427         PR rtl-optimization/56965
42428         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
42429         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
42430         ... here.
42431         * alias.c (true_dependence_1): Do not call
42432         nonoverlapping_component_refs_p.
42433         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
42434         nonoverlapping_component_refs_p.
42435         (indirect_refs_may_alias_p): Likewise.
42436
42437 2014-04-15  Teresa Johnson  <tejohnson@google.com>
42438
42439         * cfg.c (dump_bb_info): Fix flags check.
42440         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
42441
42442 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42443
42444         PR rtl-optimization/60663
42445         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
42446         avoid 0 cost.
42447
42448 2014-04-15  Richard Biener  <rguenther@suse.de>
42449
42450         * lto-streamer.h (LTO_major_version): Bump to 4.
42451
42452 2014-04-15  Richard Biener  <rguenther@suse.de>
42453
42454         * common.opt (lto_partition_model): New enum.
42455         (flto-partition=): Merge separate options with a single with argument,
42456         add -flto-partition=one support.
42457         * flag-types.h (enum lto_partition_model): Declare.
42458         * opts.c (finish_options): Remove duplicate -flto-partition=
42459         option check.
42460         * lto-wrapper.c (run_gcc): Adjust.
42461
42462 2014-04-15  Richard Biener  <rguenther@suse.de>
42463
42464         * alias.c (ncr_compar): New function.
42465         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
42466
42467 2014-04-15  Richard Biener  <rguenther@suse.de>
42468
42469         * alias.c (record_component_aliases): Do not walk BINFOs.
42470
42471 2014-04-15  Richard Biener  <rguenther@suse.de>
42472
42473         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
42474         Add struct function argument and adjust.
42475         (find_func_aliases_for_call): Likewise.
42476         (find_func_aliases): Likewise.
42477         (find_func_clobbers): Likewise.
42478         (intra_create_variable_infos): Likewise.
42479         (compute_points_to_sets): Likewise.
42480         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
42481
42482 2014-04-15  Richard Biener  <rguenther@suse.de>
42483
42484         * tree.c (iterative_hash_expr): Use enum tree_code_class
42485         to store TREE_CODE_CLASS.
42486         (tree_block): Likewise.
42487         (tree_set_block): Likewise.
42488         * tree.h (fold_build_pointer_plus_loc): Use
42489         convert_to_ptrofftype_loc.
42490
42491 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
42492
42493         PR plugins/59335
42494         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
42495         added in 4.9.
42496
42497 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
42498
42499         * cfgloop.h (struct loop): Move force_vectorize down.
42500         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
42501         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
42502         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
42503         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
42504         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
42505         * tree-core.h (enum annot_expr_kind): Add new kind values.
42506         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
42507         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
42508         kinds.
42509         * tree.def (ANNOTATE_EXPR): Tweak comment.
42510
42511 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42512
42513         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
42514         cxa_pure_virtual).
42515
42516 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
42517
42518         * tree.h (TYPE_IDENTIFIER): Declare.
42519         * tree.c (subrange_type_for_debug_p): Use it.
42520         * godump.c (go_format_type): Likewise.
42521         * dwarf2out.c (is_cxx_auto, modified_type_die,
42522         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
42523         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
42524
42525 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42526
42527         PR lto/60820
42528         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
42529
42530 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
42531
42532         * config/i386/i386.c (examine_argument): Return bool.  Return true if
42533         parameter should be passed in memory.
42534         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
42535         (construct_container): Update calls to examine_argument.
42536         (function_arg_advance_64): Ditto.
42537         (return_in_memory_32): Merge with ix86_return_in_memory.
42538         (return_in_memory_64): Ditto.
42539         (return_in_memory_ms_64): Ditto.
42540
42541 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42542
42543         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
42544         * coverage.c (coverage_compute_profile_id): Handle externally visible
42545         symbols.
42546
42547 2014-04-14  Martin Jambor  <mjambor@suse.cz>
42548
42549         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
42550         DECL_DISREGARD_INLINE_LIMITS functions.
42551
42552 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42553
42554         PR target/60827
42555         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
42556
42557 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42558
42559         PR target/60827
42560         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
42561         optimize_insn_for_speed_p instead of
42562         optimize_function_for_speed_p.
42563
42564 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
42565
42566         * doc/invoke.texi (free): Document AArch64.
42567
42568 2014-04-14  Richard Biener  <rguenther@suse.de>
42569
42570         PR tree-optimization/60042
42571         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42572         (insert_into_preds_of_block): Do not prevent PHI insertion
42573         for REFERENCE exprs here ...
42574         (eliminate_dom_walker::before_dom_children): ... but prevent
42575         their use here under similar conditions when applied to the
42576         IL after PRE optimizations.
42577
42578 2014-04-14  Richard Biener  <rguenther@suse.de>
42579
42580         * passes.def: Move early points-to after early SRA.
42581
42582 2014-04-14  Richard Biener  <rguenther@suse.de>
42583
42584         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42585         check for which sign-changes we allow when forwarding
42586         a converted value into a switch.
42587
42588 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42589
42590         * stor-layout.c (place_field): Finalize non-constant offset for the
42591         field, if any.
42592
42593 2014-04-14  Richard Biener  <rguenther@suse.de>
42594
42595         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42596         as argument.
42597         (expand_switch_using_bit_tests_p): Likewise.
42598         (process_switch): Compute and pass on speed_p based on the
42599         switch stmt.
42600         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42601         optimize_bb_for_speed_p.
42602
42603 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42604
42605         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42606         * function.h (struct function): Rename has_force_vect_loops into
42607         has_force_vectorize_loops.
42608         * lto-streamer-in.c (input_cfg): Adjust for renaming.
42609         (input_struct_function_base): Likewise.
42610         * lto-streamer-out.c (output_cfg): Likewise.
42611         (output_struct_function_base): Likewise.
42612         * omp-low.c (expand_omp_simd): Likewise.
42613         * tree-cfg.c (move_sese_region_to_fn): Likewise.
42614         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42615         (version_loop_for_if_conversion): Likewise.
42616         (tree_if_conversion): Likewise.
42617         (main_tree_if_conversion): Likewise.
42618         (gate_tree_if_conversion): Likewise.
42619         * tree-inline.c (copy_loops): Likewise.
42620         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42621         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42622         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42623         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42624         * tree-vectorizer.c (vectorize_loops): Likewise.
42625         * tree-vectorizer.h (unlimited_cost_model): Likewise.
42626
42627 2014-04-14  Richard Biener  <rguenther@suse.de>
42628
42629         PR lto/60720
42630         * lto-streamer-out.c (wrap_refs): New function.
42631         (lto_output): Wrap symbol references in global initializes in
42632         type-preserving MEM_REFs.
42633
42634 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42635
42636         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42637
42638 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42639
42640         * config/sh/sh.md (setmemqi): New expand pattern.
42641         * config/sh/sh.h (CLEAR_RATIO): Define.
42642         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42643         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42644
42645 2014-04-14  Richard Biener  <rguenther@suse.de>
42646
42647         PR middle-end/55022
42648         * fold-const.c (negate_expr_p): Don't negate directional rounding
42649         division.
42650         (fold_negate_expr): Likewise.
42651
42652 2014-04-14  Richard Biener  <rguenther@suse.de>
42653
42654         PR tree-optimization/59817
42655         PR tree-optimization/60453
42656         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42657         recursion to catch all CHRECs in the scalar evolution and restrict
42658         the predicate for the remains appropriately.
42659
42660 2014-04-12  Catherine Moore  <clm@codesourcery.com>
42661
42662         * config/mips/constraints.md: Add new register constraint "kb".
42663         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42664         (*movhi_internal): Likewise.
42665         (*movqi_internal): Likewise.
42666         * config/mips/mips.h (M16_STORE_REGS): New register class.
42667         (REG_CLASS_NAMES): Add M16_STORE_REGS.
42668         (REG_CLASS_CONTENTS): Likewise.
42669         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42670
42671 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42672
42673         PR c/60194
42674         * doc/invoke.texi (-Wformat-signedness): Document it.
42675         (Wformat=2): Mention that this enables -Wformat-signedness.
42676
42677 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42678
42679         * common/config/epiphany/epiphany-common.c
42680         (epiphany_option_optimization_table): Enable section anchors by
42681         default at -O1 or higher.
42682         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42683         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42684         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42685         carries no extra cost.
42686         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42687         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42688         * config/epiphany/predicates.md (memclob_operand): New predicate.
42689         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42690         Use memclob_operand predicate and X constraint for operand 3.
42691
42692 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42693
42694         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42695         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42696         its operands.
42697
42698 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42699
42700         PR rtl-optimization/60651
42701         * mode-switching.c (optimize_mode_switching): Make sure to emit
42702         sets of a lower numbered entity before sets of a higher numbered
42703         entity to a mode of the same or lower priority.
42704         When creating a seginfo for a basic block that starts with a code
42705         label, move the insertion point past the code label.
42706         (new_seginfo): Document and enforce requirement that
42707         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42708         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42709         * doc/tm.texi: Regenerate.
42710
42711 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42712
42713         PR target/60811
42714         * config/arc/arc.c (arc_save_restore): Fix assert typo.
42715
42716 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
42717
42718         * BASE-VER: Set to 4.10.0.
42719
42720 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42721
42722         PR other/59055
42723         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42724         * doc/gcc.texi (Service): Update description in the @menu
42725         * doc/invoke.texi (Option Summary): Remove misplaced and
42726         duplicated @menu.
42727
42728 2014-04-11  Steve Ellcey  <sellcey@mips.com>
42729             Jakub Jelinek  <jakub@redhat.com>
42730
42731         PR middle-end/60556
42732         * expr.c (convert_move): Use emit_store_flag_force instead of
42733         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
42734         argument to it.
42735
42736 2014-04-11  Richard Biener  <rguenther@suse.de>
42737
42738         PR middle-end/60797
42739         * varasm.c (assemble_alias): Avoid endless error reporting
42740         recursion by setting TREE_ASM_WRITTEN.
42741
42742 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42743
42744         * config/s390/s390.md: Add a splitter for NOT rtx.
42745
42746 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
42747
42748         PR rtl-optimization/60663
42749         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42750
42751 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
42752             Jakub Jelinek  <jakub@redhat.com>
42753
42754         PR lto/60567
42755         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42756         flag from decl_node to node.
42757
42758 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42759
42760         PR debug/60655
42761         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42762         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42763         ameliorating the cases where it can be.
42764
42765 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
42766
42767         Revert
42768         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42769
42770         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42771         (loadsync_<mode>): Change mode.
42772         (load_quadpti, store_quadpti): New.
42773         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42774         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42775         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42776
42777 2014-04-09  Cong Hou  <congh@google.com>
42778
42779         PR testsuite/60773
42780         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42781         documentation.
42782
42783 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42784
42785         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42786         instead of vnor to exploit possible fusion opportunity in the
42787         future.
42788         (altivec_expand_vec_perm_const_le): Likewise.
42789
42790 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42791
42792         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42793         (loadsync_<mode>): Change mode.
42794         (load_quadpti, store_quadpti): New.
42795         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42796         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42797
42798 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
42799
42800         PR target/60763
42801         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42802         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42803         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42804
42805 2014-04-08  Richard Biener  <rguenther@suse.de>
42806
42807         PR middle-end/60706
42808         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42809         a 64bit widest int print double-int similar to on HWI64 hosts.
42810
42811 2014-04-08  Richard Biener  <rguenther@suse.de>
42812
42813         PR tree-optimization/60785
42814         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42815         default defs properly.
42816
42817 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
42818
42819         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42820         (Weffc++): Likewise.
42821
42822 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
42823
42824         * ipa-devirt.c (maybe_record_node): When node is not recorded,
42825         set completep to false rather than true.
42826
42827 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
42828
42829         PR target/60504
42830         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42831         ARM_TARGET2_DWARF_FORMAT.
42832
42833 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
42834
42835         PR target/60609
42836         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42837         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42838         ADDR_DIFF_VEC.
42839
42840 2014-04-07  Richard Biener  <rguenther@suse.de>
42841
42842         PR tree-optimization/60766
42843         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42844         (may_eliminate_iv): Convert cand_value_at result to desired type.
42845
42846 2014-04-07  Jason Merrill  <jason@redhat.com>
42847
42848         PR c++/60731
42849         * common.opt (-fno-gnu-unique): Add.
42850         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42851
42852 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42853
42854         * haifa-sched.c: Fix outdated function reference and minor
42855         grammar errors in introductory comment.
42856
42857 2014-04-07  Richard Biener  <rguenther@suse.de>
42858
42859         PR middle-end/60750
42860         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42861         for noreturn calls.
42862         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42863
42864 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
42865
42866         PR debug/55794
42867         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42868         size accounting for thunks.
42869         (pa_asm_output_mi_thunk): Use final_start_function() and
42870         final_end_function() to output function start and end directives.
42871
42872 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42873
42874         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42875         device specific ISA/ feature information. Remove short_sp and
42876         errata_skip ds.  Add avr_device_specific_features enum to have device
42877         specific info.
42878         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42879         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42880         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42881         updated device specific info.
42882         * config/avr/avr-mcus.def: Merge device specific details to
42883         dev_attribute field.
42884         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42885         errata_skip.
42886         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42887         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42888         assembler if RMW isa supported by current device.
42889         * config/avr/genmultilib.awk: Update as device info structure changed.
42890         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42891
42892 2014-04-04  Cong Hou  <congh@google.com>
42893
42894         PR tree-optimization/60656
42895         * tree-vect-stmts.c (supportable_widening_operation):
42896         Fix a bug that elements in a vector with vect_used_by_reduction
42897         property are incorrectly reordered when the operation on it is not
42898         consistant with the one in reduction operation.
42899
42900 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
42901
42902         PR rtl-optimization/60155
42903         * gcse.c (record_set_data): New function.
42904         (single_set_gcse): New function.
42905         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42906         (hoist_code): Likewise.
42907         (get_pressure_class_and_nregs): Likewise.
42908
42909 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
42910
42911         * explow.c (probe_stack_range): Emit a final optimization blockage.
42912
42913 2014-04-04  Anthony Green  <green@moxielogic.com>
42914
42915         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42916         typos.
42917
42918 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
42919
42920         PR ipa/59626
42921         * lto-cgraph.c (input_overwrite_node): Check that partitioning
42922         flags are set only during streaming.
42923         * ipa.c (process_references, walk_polymorphic_call_targets,
42924         symtab_remove_unreachable_nodes): Drop bodies of always inline
42925         after early inlining.
42926         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42927
42928 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
42929         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42930
42931         PR debug/60655
42932         * dwarf2out.c (const_ok_for_output_1): Reject expressions
42933         containing a NOT.
42934
42935 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42936
42937         PR bootstrap/60743
42938         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42939         duration.
42940         (cortex_a53_fdivd): Likewise.
42941
42942 2014-04-04  Martin Jambor  <mjambor@suse.cz>
42943
42944         PR ipa/60640
42945         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42946         Adjust all callers.
42947         * cgraph.c (clone_of_p): Also return true if thunks match.
42948         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42949         cgraph_function_or_thunk_node and an obsolete comment.
42950         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42951         file.
42952         (build_function_decl_skip_args): Likewise.
42953         (set_new_clone_decl_and_node_flags): New function.
42954         (duplicate_thunk_for_node): Likewise.
42955         (redirect_edge_duplicating_thunks): Likewise.
42956         (cgraph_clone_node): New parameter args_to_skip, pass it to
42957         redirect_edge_duplicating_thunks which is called instead of
42958         cgraph_redirect_edge_callee.
42959         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42960         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42961
42962 2014-04-04  Jeff Law  <law@redhat.com>
42963
42964         PR target/60657
42965         * config/arm/predicates.md (const_int_I_operand): New predicate.
42966         (const_int_M_operand): Similarly.
42967         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42968         const_int_operand.
42969         (insv_t2, extv_reg, extzv_t2): Likewise.
42970         (load_multiple_with_writeback): Similarly for const_int_I_operand.
42971         (pop_multiple_with_writeback_and_return): Likewise.
42972         (vfp_pop_multiple_with_writeback): Likewise
42973
42974 2014-04-04  Richard Biener  <rguenther@suse.de>
42975
42976         PR ipa/60746
42977         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42978         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42979         non-GIMPLE_LABELs.
42980         * gimplify.h (gimple_add_tmp_var_fn): Declare.
42981         * gimplify.c (gimple_add_tmp_var_fn): New function.
42982         * gimple-expr.h (create_tmp_reg_fn): Declare.
42983         * gimple-expr.c (create_tmp_reg_fn): New function.
42984         * gimple-low.c (record_vars_into): Don't change cfun.
42985         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42986         code generation without cfun.
42987
42988 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
42989
42990         PR bootstrap/60719
42991         * Makefile.in (install-driver): Fix shell scripting.
42992
42993 2014-04-03  Cong Hou  <congh@google.com>
42994
42995         PR tree-optimization/60505
42996         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42997         threshold of number of iterations below which no vectorization
42998         will be done.
42999         * tree-vect-loop.c (new_loop_vec_info):
43000         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
43001         * tree-vect-loop.c (vect_analyze_loop_operations):
43002         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
43003         * tree-vect-loop.c (vect_transform_loop):
43004         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
43005         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
43006         of iterations of the loop and see if we should build the epilogue.
43007
43008 2014-04-03  Richard Biener  <rguenther@suse.de>
43009
43010         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
43011         (streamer_tree_cache_create): Adjust.
43012         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
43013         to allow optional nodes array.
43014         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
43015         (streamer_tree_cache_append): Likewise.
43016         (streamer_tree_cache_create): Create nodes array optionally
43017         as specified by parameter.
43018         * lto-streamer-out.c (create_output_block): Avoid maintaining
43019         the node array in the writer cache.
43020         (DFS_write_tree): Remove assertion.
43021         (produce_asm_for_decls): Free the out decl state hash table early.
43022         * lto-streamer-in.c (lto_data_in_create): Adjust for
43023         streamer_tree_cache_create prototype change.
43024
43025 2014-04-03  Richard Biener  <rguenther@suse.de>
43026
43027         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
43028         set TREE_CHAIN to NULL_TREE.
43029
43030 2014-04-03  Richard Biener  <rguenther@suse.de>
43031
43032         PR tree-optimization/60740
43033         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
43034         over all GIMPLE_COND operands.
43035
43036 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
43037
43038         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
43039         (Weffc++): Remove Scott's numbering, merge lists and reference
43040         Wnon-virtual-dtor.
43041
43042 2014-04-03  Nick Clifton  <nickc@redhat.com>
43043
43044         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
43045         properly.
43046
43047 2014-04-03  Martin Jambor  <mjambor@suse.cz>
43048
43049         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
43050         mention gcc_unreachable before failing.
43051         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
43052         removed symbols.
43053
43054 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
43055
43056         PR ipa/60659
43057         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
43058         inconsistent code and instead mark the context inconsistent.
43059         (possible_polymorphic_call_targets): For inconsistent contexts
43060         return empty complete list.
43061
43062 2014-04-02  Anthony Green  <green@moxielogic.com>
43063
43064         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
43065         (extendqisi2, extendhisi2): Define.
43066         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
43067         (WCHAR_TYPE): Change to unsigned int.
43068
43069 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43070
43071         PR tree-optimization/60733
43072         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
43073         insertion point for PHI candidates to be the end of the feeding
43074         block for the PHI argument.
43075
43076 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
43077
43078         PR rtl-optimization/60650
43079         * lra-constraints.c (process_alt_operands): Decrease reject for
43080         earlyclobber matching.
43081
43082 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43083
43084         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
43085
43086 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43087
43088         * config/spu/spu.c (pad_bb): Do not crash when the last
43089         insn is CODE_FOR_blockage.
43090
43091 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43092
43093         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
43094         lies outside the target mode.
43095
43096 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
43097
43098         PR target/60735
43099         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
43100         software floating point or no floating point registers, do not
43101         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
43102         in GPRs that occurs after we tested for GPRs that would never be
43103         true.
43104
43105         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
43106         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
43107         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
43108         specifically allow DDmode, since that does not use the SPE SIMD
43109         instructions.
43110
43111 2014-04-02  Richard Biener  <rguenther@suse.de>
43112
43113         PR middle-end/60729
43114         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
43115         MODE_INTs.  Properly use negv_optab.
43116         (expand_abs): Likewise.
43117
43118 2014-04-02  Richard Biener  <rguenther@suse.de>
43119
43120         PR bootstrap/60719
43121         * Makefile.in (install-driver): Guard extra installs with special
43122         names properly.
43123
43124 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
43125
43126         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43127         Document vec_vgbbd.
43128
43129 2014-04-01  Richard Henderson  <rth@redhat.com>
43130
43131         PR target/60704
43132         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
43133         alternative enabled before register allocation.
43134
43135 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
43136
43137         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
43138         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
43139         typo.
43140         (nios2_large_got_address): Remove unneeded 'sym' parameter.
43141         (nios2_got_address): Update nios2_large_got_address call site.
43142         (nios2_delegitimize_address): New function.
43143         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
43144         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
43145         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
43146
43147 2014-04-01  Martin Husemann  <martin@duskware.de>
43148
43149         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
43150         for -mabi=32.
43151
43152 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
43153
43154         PR rtl-optimization/60604
43155         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
43156         check from register_operand.
43157         (register_operand): Redefine in terms of general_operand.
43158         (nonmemory_operand): Use register_operand for the non-constant cases.
43159
43160 2014-04-01  Richard Biener  <rguenther@suse.de>
43161
43162         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
43163
43164 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
43165
43166         * doc/invoke.texi (mapp-regs): Clarify.
43167
43168 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
43169
43170         * config/i386/avx512fintrin.h (__v32hi): Define type.
43171         (__v64qi): Likewise.
43172         (_mm512_set1_epi8): Define.
43173         (_mm512_set1_epi16): Define.
43174         (_mm512_set4_epi32): Define.
43175         (_mm512_set4_epi64): Define.
43176         (_mm512_set4_pd): Define.
43177         (_mm512_set4_ps): Define.
43178         (_mm512_setr4_epi64): Define.
43179         (_mm512_setr4_epi32): Define.
43180         (_mm512_setr4_pd): Define.
43181         (_mm512_setr4_ps): Define.
43182         (_mm512_setzero_epi32): Define.
43183
43184 2014-03-31  Martin Jambor  <mjambor@suse.cz>
43185
43186         PR middle-end/60647
43187         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
43188         callsite_arguments_match_p.  Updated all callers.  Also check types of
43189         corresponding formal parameters and actual arguments.
43190         (not_all_callers_have_enough_arguments_p) Renamed to
43191         some_callers_have_mismatched_arguments_p.
43192
43193 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
43194
43195         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
43196
43197 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
43198
43199         PR target/60034
43200         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
43201         section anchor.
43202
43203 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
43204
43205         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
43206         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
43207         Split out
43208         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
43209         Use FMAMODE_NOVF512 mode iterator.
43210         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
43211         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
43212         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
43213         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
43214         Split out
43215         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
43216         Use VF_128_256 mode iterator.
43217         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
43218         Ditto.
43219
43220 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
43221
43222         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
43223         static chain if needed.
43224
43225 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
43226
43227         PR target/60697
43228         * lra-constraints.c (index_part_to_reg): New.
43229         (process_address): Use it.
43230
43231 2014-03-27  Jeff Law  <law@redhat.com>
43232             Jakub Jelinek  <jakub@redhat.com>
43233
43234         PR target/60648
43235         * expr.c (do_tablejump): Use simplify_gen_binary rather than
43236         gen_rtx_{PLUS,MULT} to build up the address expression.
43237
43238         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
43239         creating non-canonical RTL.
43240
43241 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
43242
43243         PR ipa/60243
43244         * ipa-inline.c (want_inline_small_function_p): Short circuit large
43245         functions; reorganize to make cheap checks first.
43246         (inline_small_functions): Do not estimate growth when dumping;
43247         it is expensive.
43248         * ipa-inline.h (inline_summary): Add min_size.
43249         (growth_likely_positive): New function.
43250         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
43251         (set_cond_stmt_execution_predicate): Cleanup.
43252         (estimate_edge_size_and_time): Compute min_size.
43253         (estimate_calls_size_and_time): Likewise.
43254         (estimate_node_size_and_time): Likewise.
43255         (inline_update_overall_summary): Update min_size.
43256         (do_estimate_edge_time): Likewise.
43257         (do_estimate_edge_size): Update.
43258         (do_estimate_edge_hints): Update.
43259         (growth_likely_positive): New function.
43260
43261 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
43262
43263         PR target/60693
43264         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
43265         also if addr has VOIDmode.
43266
43267 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43268
43269         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
43270         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
43271         Declare extern.
43272         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
43273         instructions as well as AdvancedSIMD loads.
43274
43275 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43276
43277         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
43278         Use crypto_aese type.
43279         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
43280         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
43281         crypto_aese, crypto_aesmc.  Move to types.md.
43282         * config/arm/types.md (crypto_aes): Split into crypto_aese,
43283         crypto_aesmc.
43284         * config/arm/iterators.md (crypto_type): Likewise.
43285
43286 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
43287
43288         * cgraph.c: Include expr.h and tree-dfa.h.
43289         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
43290         remove LHS.
43291
43292 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
43293
43294         PR target/60675
43295         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
43296         regs from checking multi-reg pseudos.
43297
43298 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43299
43300         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
43301
43302 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43303
43304         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
43305         if it would clobber the stack pointer, even temporarily.
43306
43307 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
43308
43309         * mode-switching.c: Make small adjustments to the top comment.
43310
43311 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
43312
43313         * config/rs6000/constraints.md (wD constraint): New constraint to
43314         match the constant integer to get the top DImode/DFmode out of a
43315         vector in a VSX register.
43316
43317         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
43318         match the constant integer to get the top DImode/DFmode out of a
43319         vector in a VSX register.
43320
43321         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
43322         for ISA 2.07.
43323
43324         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
43325         vbpermq builtins.
43326
43327         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
43328         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
43329
43330         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
43331         Optimize vec_extract of 64-bit values, where the value being
43332         extracted is in the top word, where we can use scalar
43333         instructions.  Add direct move and store support.  Combine the big
43334         endian/little endian vector select load support into a single insn.
43335         (vsx_extract_<mode>_internal1): Likewise.
43336         (vsx_extract_<mode>_internal2): Likewise.
43337         (vsx_extract_<mode>_load): Likewise.
43338         (vsx_extract_<mode>_store): Likewise.
43339         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
43340         combined into vsx_extract_<mode>_load.
43341         (vsx_extract_<mode>_one_le): Likewise.
43342
43343         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
43344         define the top 64-bit vector element.
43345
43346         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
43347         constraint.
43348
43349         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43350         Document vec_vbpermq builtin.
43351
43352         PR target/60672
43353         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
43354         enable use of xxsldwi and xxpermdi builtin functions.
43355         (vec_xxpermdi): Likewise.
43356
43357         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43358         Document use of vec_xxsldwi and vec_xxpermdi builtins.
43359
43360 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
43361
43362         PR rtl-optimization/60650
43363         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
43364         first_p.  Use it.
43365         (find_spills_for): New.
43366         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
43367         Spill all pseudos on the second iteration.
43368
43369 2014-03-27  Marek Polacek  <polacek@redhat.com>
43370
43371         PR c/50347
43372         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
43373         types.
43374
43375 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43376
43377         * config/s390/s390.c (s390_can_use_return_insn): Check for
43378         call-saved FPRs on 31 bit.
43379
43380 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
43381
43382         PR middle-end/60682
43383         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
43384         if they need regimplification, just drop them instead of
43385         calling gimple_regimplify_operands on them.
43386
43387 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
43388
43389         PR target/60580
43390         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
43391         (aarch64_frame_pointer_required): Adjust logic.
43392         (aarch64_can_eliminate): Adjust logic.
43393         (aarch64_override_options_after_change): Adjust logic.
43394
43395 2014-03-27  Dehao Chen  <dehao@google.com>
43396
43397         * ipa-inline.c (early_inliner): Update node's inline info.
43398
43399 2014-03-26  Dehao Chen  <dehao@google.com>
43400
43401         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
43402         compiler inserted conditional jumps for NAN float check.
43403
43404 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43405
43406         * ubsan.h (ubsan_create_data): Change second argument's type
43407         to const location_t *.
43408         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
43409         _("<unknown>").
43410         (ubsan_create_data): Change second argument to const location_t *PLOC.
43411         Create Loc field whenever PLOC is non-NULL.
43412         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
43413         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
43414         callers.
43415
43416         PR other/59545
43417         * real.c (real_to_integer2): Change type of low to UHWI.
43418
43419 2014-03-26  Tobias Burnus  <burnus@net-b.de>
43420
43421         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
43422         (CILK_SELF_SPECS): New define.
43423         (driver_self_specs): Use it.
43424
43425 2014-03-26  Richard Biener  <rguenther@suse.de>
43426
43427         * tree-pretty-print.c (percent_K_format): Implement special
43428         case for LTO and its stripped down BLOCK tree.
43429
43430 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43431
43432         PR sanitizer/60636
43433         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
43434
43435         * tree-vrp.c (simplify_internal_call_using_ranges): If only
43436         one range is range_int_cst_p, but not both, at least optimize
43437         addition/subtraction of 0 and multiplication by 0 or 1.
43438         * gimple-fold.c (gimple_fold_call): Fold
43439         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
43440         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
43441         INTEGER_CSTs, try to fold at least x * 0 and y - y.
43442
43443 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
43444
43445         PR rtl-optimization/60452
43446         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
43447         <case REG>: Return 1 for invalid offsets from the frame pointer.
43448
43449 2014-03-26  Marek Polacek  <polacek@redhat.com>
43450
43451         PR c/37428
43452         * doc/extend.texi (C Extensions): Mention variable-length arrays in
43453         a structure/union.
43454
43455 2014-03-26  Marek Polacek  <polacek@redhat.com>
43456
43457         PR c/39525
43458         * doc/extend.texi (Designated Inits): Describe what happens to omitted
43459         field members.
43460
43461 2014-03-26  Marek Polacek  <polacek@redhat.com>
43462
43463         PR other/59545
43464         * ira-color.c (update_conflict_hard_regno_costs): Perform the
43465         multiplication in unsigned type.
43466
43467 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43468
43469         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
43470
43471 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43472
43473         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
43474
43475 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43476
43477         PR ipa/60315
43478         * cif-code.def (UNREACHABLE) New code.
43479         * ipa-inline.c (inline_small_functions): Skip edges to
43480         __builtlin_unreachable.
43481         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
43482         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
43483         predicate to __bulitin_unreachable.
43484         (set_cond_stmt_execution_predicate): Fix issue when
43485         invert_tree_comparison returns ERROR_MARK.
43486         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
43487         propagate to inline clones.
43488         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
43489         to unreachable.
43490         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
43491         * cgraphclones.c (cgraph_clone_node): If call destination is already
43492         ureachable, do not redirect it back.
43493         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
43494         unreachable.
43495
43496 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43497
43498         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
43499         Do not modify inline clones.
43500
43501 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43502
43503         * config/i386/i386.md (general_sext_operand): New mode attr.
43504         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
43505         don't generate (sign_extend (const_int)).
43506         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
43507         operands[2].  Use We constraint instead of <i> and
43508         <general_sext_operand> predicate instead of <general_operand>.
43509         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
43510         * config/i386/constraints.md (We): New constraint.
43511         * config/i386/predicates.md (x86_64_sext_operand,
43512         sext_operand): New predicates.
43513
43514 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43515
43516         PR ipa/60600
43517         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
43518         inconsistent devirtualizations to __builtin_unreachable.
43519
43520 2014-03-25  Marek Polacek  <polacek@redhat.com>
43521
43522         PR c/35449
43523         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
43524
43525 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
43526
43527         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
43528         order of elements for big-endian.
43529
43530 2014-03-25  Richard Biener  <rguenther@suse.de>
43531
43532         PR middle-end/60635
43533         * gimplify-me.c (gimple_regimplify_operands): Update the
43534         re-gimplifed stmt.
43535
43536 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43537
43538         PR ipa/59176
43539         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
43540         (lto_output_varpool_node): Likewise.
43541         (input_overwrite_node): Likewise.
43542         (input_varpool_node): Likewise.
43543
43544 2014-03-25  Richard Biener  <rguenther@suse.de>
43545
43546         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
43547         (run_gcc): Likewise.
43548
43549 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43550
43551         * combine.c (simplify_compare_const): Add MODE argument.
43552         Handle mode_width 0 as very large mode_width.
43553         (try_combine, simplify_comparison): Adjust callers.
43554
43555         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
43556         type to avoid signed integer overflow.
43557         * explow.c (plus_constant): Likewise.
43558
43559 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
43560
43561         * doc/generic.texi: Correct typos.
43562
43563 2014-03-24  Tobias Burnus  <burnus@net-b.de>
43564
43565         * doc/invoke.texi (-flto): Expand section about
43566         using static libraries with LTO.
43567
43568 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43569
43570         PR rtl-optimization/60501
43571         * optabs.def (addptr3_optab): New optab.
43572         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43573         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43574         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43575
43576         * lra.c (emit_add3_insn): Use the addptr pattern if available.
43577
43578         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43579
43580 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
43581
43582         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43583         _mm512_set1_pd.
43584
43585         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43586         (_mm256_undefined_ps): Define.
43587         (_mm256_undefined_pd): Define.
43588         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43589         (_mm_undefined_pd): Define.
43590         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43591         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43592         (_mm512_undefined_ps): Define.
43593         (_mm512_undefined_pd): Define.
43594         Use _mm*_undefined_*.
43595         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43596
43597 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
43598
43599         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43600         (lshr_simd): DI mode added.
43601         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43602         (aarch64_ushr_simddi): Likewise.
43603         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43604         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43605         (vshrd_n_u64): Likewise.
43606
43607 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43608
43609         * Makefile.in (s-macro_list): Depend on cc1.
43610
43611 2014-03-23  Teresa Johnson  <tejohnson@google.com>
43612
43613         * ipa-utils.c (ipa_print_order): Use specified dump file.
43614
43615 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
43616
43617         PR rtl-optimization/60601
43618         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43619
43620         * gcc.c (eval_spec_function): Initialize save_growing_value.
43621
43622 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
43623
43624         PR sanitizer/60613
43625         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43626         code == MINUS_EXPR, never swap op0 with op1.
43627
43628         * toplev.c (init_local_tick): Avoid signed integer multiplication
43629         overflow.
43630         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43631         shift by first operand's bitsize.
43632
43633 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
43634
43635         PR target/60610
43636         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43637         redefine to 1 or 0.
43638         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43639         TARGET_ISA_64BIT_P(x).
43640
43641 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43642
43643         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43644         pattern for vector nor instead of subtract from splat(-1).
43645         (altivec_expand_vec_perm_const_le): Likewise.
43646
43647 2014-03-21  Richard Henderson  <rth@twiddle.net>
43648
43649         PR target/60598
43650         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43651         related insns after epilogue_completed.
43652
43653 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43654
43655         PR ipa/59176
43656         * cgraph.h (symtab_node): New flag body_removed.
43657         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43658         when removing bodies.
43659         * symtab.c (dump_symtab_base): Dump body_removed flag.
43660         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43661         had their bodies removed.
43662
43663 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43664
43665         PR ipa/60419
43666         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43667         in the border.
43668
43669 2014-03-21  Richard Biener  <rguenther@suse.de>
43670
43671         PR tree-optimization/60577
43672         * tree-core.h (struct tree_base): Document nothrow_flag use
43673         in DECL_NONALIASED.
43674         * tree.h (DECL_NONALIASED): New.
43675         (may_be_aliased): Adjust.
43676         * coverage.c (build_var): Set DECL_NONALIASED.
43677
43678 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43679
43680         * expr.c (expand_expr_real_1): Remove outdated comment.
43681
43682 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
43683
43684         PR middle-end/60597
43685         * ira.c (adjust_cleared_regs): Call copy_rtx on
43686         *reg_equiv[REGNO (loc)].src_p before passing it to
43687         simplify_replace_fn_rtx.
43688
43689         PR target/60568
43690         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43691         into CONST, put pic register as first operand of PLUS.  Use
43692         gen_const_mem for both 32-bit and 64-bit PIC got loads.
43693
43694 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43695
43696         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43697
43698 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43699
43700         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43701         around for store forwarding issue in the FPU on the UT699.
43702         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43703         loads and operations if -mfix-ut699 is specified.
43704         (divtf3_hq): Tweak attribute.
43705         (sqrttf2_hq): Likewise.
43706
43707 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43708
43709         * calls.c (store_one_arg): Remove incorrect const qualification on the
43710         type of the temporary.
43711         * cfgexpand.c (expand_return): Likewise.
43712         * expr.c (expand_constructor): Likewise.
43713         (expand_expr_real_1): Likewise.
43714
43715 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
43716
43717         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43718         of parts.
43719
43720 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
43721
43722         PR target/60039
43723         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43724
43725 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
43726
43727         * config/arm/aarch-common-protos.h
43728         (alu_cost_table): Fix spelling of "extend".
43729         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43730
43731 2014-03-19  Richard Biener  <rguenther@suse.de>
43732
43733         PR middle-end/60553
43734         * tree-core.h (tree_type_common): Re-order pointer members
43735         to reduce recursion depth during GC walks.
43736
43737 2014-03-19  Marek Polacek  <polacek@redhat.com>
43738
43739         PR sanitizer/60569
43740         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43741         before accessing it.
43742
43743 2014-03-19  Richard Biener  <rguenther@suse.de>
43744
43745         PR lto/59543
43746         * lto-streamer-in.c (input_function): In WPA stage do not drop
43747         debug stmts.
43748
43749 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
43750
43751         PR tree-optimization/60559
43752         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43753         with build_zero_cst assignment.
43754
43755 2014-03-18  Kai Tietz  <ktietz@redhat.com>
43756
43757         PR rtl-optimization/56356
43758         * sdbout.c (sdbout_parms): Verify that parms'
43759         incoming argument is valid.
43760         (sdbout_reg_parms): Likewise.
43761
43762 2014-03-18  Richard Henderson  <rth@redhat.com>
43763
43764         PR target/60562
43765         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43766         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
43767         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43768
43769 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
43770
43771         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43772         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43773         Italicize plugin event names in description.  Explain that
43774         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
43775         Remind that no GCC functions should be called after PLUGIN_FINISH.
43776         Explain what pragmas with expansion are.
43777
43778 2014-03-18  Martin Liska  <mliska@suse.cz>
43779
43780         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43781         gimple call statement is update.
43782         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43783         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43784
43785 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43786
43787         PR sanitizer/60557
43788         * ubsan.c (ubsan_instrument_unreachable): Call
43789         initialize_sanitizer_builtins.
43790         (ubsan_pass): Likewise.
43791
43792         PR sanitizer/60535
43793         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43794         varpool_finalize_decl instead of rest_of_decl_compilation.
43795
43796 2014-03-18  Richard Biener  <rguenther@suse.de>
43797
43798         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43799         by using bitmap_and_compl instead of bitmap_and_compl_into.
43800         (df_rd_transfer_function): Likewise.
43801
43802 2014-03-18  Richard Biener  <rguenther@suse.de>
43803
43804         * doc/lto.texi (fresolution): Fix typo.
43805
43806 2014-03-18  Richard Biener  <rguenther@suse.de>
43807
43808         * doc/invoke.texi (flto): Update for changes in 4.9.
43809
43810 2014-03-18  Richard Biener  <rguenther@suse.de>
43811
43812         * doc/loop.texi: Remove section on the removed lambda framework.
43813         Update loop docs with recent changes in preserving loop structure.
43814
43815 2014-03-18  Richard Biener  <rguenther@suse.de>
43816
43817         * doc/lto.texi (-fresolution): Document.
43818
43819 2014-03-18  Richard Biener  <rguenther@suse.de>
43820
43821         * doc/contrib.texi: Adjust my name.
43822
43823 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43824
43825         PR ipa/58721
43826         * internal-fn.c: Include diagnostic-core.h.
43827         (expand_BUILTIN_EXPECT): New function.
43828         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43829         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43830         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43831         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43832         IFN_BUILTIN_EXPECT.
43833         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43834         Revert 3 argument __builtin_expect code.
43835         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43836         * gimple-fold.c (gimple_fold_call): Likewise.
43837         * tree.h (fold_builtin_expect): New prototype.
43838         * builtins.c (build_builtin_expect_predicate): Add predictor
43839         argument, if non-NULL, create 3 argument __builtin_expect.
43840         (fold_builtin_expect): No longer static.  Add ARG2 argument,
43841         pass it through to build_builtin_expect_predicate.
43842         (fold_builtin_2): Adjust caller.
43843         (fold_builtin_3): Handle BUILT_IN_EXPECT.
43844         * internal-fn.def (BUILTIN_EXPECT): New.
43845
43846 2014-03-18  Tobias Burnus  <burnus@net-b.de>
43847
43848         PR ipa/58721
43849         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43850         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43851         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43852
43853 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
43854
43855         PR ipa/58721
43856         * predict.c (combine_predictions_for_bb): Fix up formatting.
43857         (expr_expected_value_1, expr_expected_value): Add predictor argument,
43858         fill what it points to if non-NULL.
43859         (tree_predict_by_opcode): Adjust caller, use the predictor.
43860         * predict.def (PRED_COMPARE_AND_SWAP): Add.
43861
43862 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
43863
43864         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43865         proper constant for the store mode.
43866
43867 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
43868
43869         * symtab.c (change_decl_assembler_name): Fix transparent alias
43870         chain construction.
43871
43872 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
43873
43874         * config/aarch64/aarch64.c: Correct the comments about the
43875         aarch64 stack layout.
43876
43877 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
43878
43879         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43880         check for GF_OMP_FOR_KIND_FOR.
43881
43882 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
43883
43884         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43885         ymm and zmm register names.
43886
43887 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
43888
43889         PR target/60516
43890         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43891         note creation for the 2010-08-31 changes.
43892
43893 2014-03-17  Marek Polacek  <polacek@redhat.com>
43894
43895         PR middle-end/60534
43896         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43897         as -fno-tree-loop-vectorize.
43898         (expand_omp_simd): Likewise.
43899
43900 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
43901
43902         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43903         (eligible_for_call_delay): New prototype.
43904         * config/sparc/sparc.c (tls_call_delay): Rename into...
43905         (eligible_for_call_delay): ...this.  Return false if the instruction
43906         cannot be put in the delay slot of a branch.
43907         (eligible_for_restore_insn): Simplify.
43908         (eligible_for_return_delay): Return false if the instruction cannot be
43909         put in the delay slot of a branch and simplify.
43910         (eligible_for_sibcall_delay): Return false if the instruction cannot be
43911         put in the delay slot of a branch.
43912         * config/sparc/sparc.md (fix_ut699): New attribute.
43913         (tls_call_delay): Delete.
43914         (in_call_delay): Reimplement.
43915         (eligible_for_sibcall_delay): Rename into...
43916         (in_sibcall_delay): ...this.
43917         (eligible_for_return_delay): Rename into...
43918         (in_return_delay): ...this.
43919         (in_branch_delay): Reimplement.
43920         (in_uncond_branch_delay): Delete.
43921         (in_annul_branch_delay): Delete.
43922
43923 2014-03-14  Richard Henderson  <rth@redhat.com>
43924
43925         PR target/60525
43926         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43927         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43928         (*floathi<X87MODEF>2_i387_with_temp): Remove.
43929         (floathi splitters): Remove.
43930         (float<SWI48x>xf2): New pattern.
43931         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
43932         code that tried to handle DImode for 32-bit, but which was excluded
43933         by the pattern's condition.  Drop allocation of stack temporary.
43934         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43935         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43936         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43937         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43938         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43939         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43940         (*float<SWI48><MODEF>2_sse_interunit): Remove.
43941         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43942         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43943         (*float<SWI48x><X87MODEF>2_i387): Remove.
43944         (all float _with_temp splitters): Remove.
43945         (*float<SWI48x><MODEF>2_i387): New pattern.
43946         (*float<SWI48><MODEF>2_sse): New pattern.
43947         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43948         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43949
43950 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
43951             Marek Polacek  <polacek@redhat.com>
43952
43953         PR middle-end/60484
43954         * common.opt (dump_base_name_prefixed): New Variable.
43955         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43956         if x_dump_base_name_prefixed is already set, set it at the end.
43957
43958 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
43959
43960         PR rtl-optimization/60508
43961         * lra-constraints.c (get_reload_reg): Add new parameter
43962         in_subreg_p.
43963         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43964         Pass the new parameter values.
43965
43966 2014-03-14  Richard Biener  <rguenther@suse.de>
43967
43968         * common.opt: Revert unintented changes from r205065.
43969         * opts.c: Likewise.
43970
43971 2014-03-14  Richard Biener  <rguenther@suse.de>
43972
43973         PR middle-end/60518
43974         * cfghooks.c (split_block): Properly adjust all loops the
43975         block was a latch of.
43976
43977 2014-03-14  Martin Jambor  <mjambor@suse.cz>
43978
43979         PR lto/60461
43980         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43981         and simplify it.
43982
43983 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
43984
43985         PR target/59396
43986         * config/avr/avr.c (avr_set_current_function): Pass function name
43987         through default_strip_name_encoding before sanity checking instead
43988         of skipping the first char of the assembler name.
43989
43990 2014-03-13  Richard Henderson  <rth@redhat.com>
43991
43992         PR debug/60438
43993         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43994         (ix86_force_to_memory, ix86_free_from_memory): Remove.
43995         * config/i386/i386-protos.h: Likewise.
43996         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43997         in the expander instead of a splitter.
43998         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43999         any possibility of requiring a memory.
44000         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
44001         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
44002         (fp branch splitters): Update for ix86_split_fp_branch.
44003         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
44004         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
44005         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
44006         (*fop_<MODEF>_2_i387): Remove f/r alternative.
44007         (*fop_<MODEF>_3_i387): Likewise.
44008         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
44009         (splitters for the fop_* register patterns): Remove.
44010         (fscalexf4_i387): Rename from *fscalexf4_i387.
44011         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
44012
44013 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
44014
44015         PR tree-optimization/59779
44016         * tree-dfa.c (get_ref_base_and_extent): Use double_int
44017         type for bitsize and maxsize instead of HOST_WIDE_INT.
44018
44019 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
44020
44021         PR rtl-optimization/57320
44022         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
44023         the CFG after thread_prologue_and_epilogue_insns.
44024
44025 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
44026
44027         PR rtl-optimization/57189
44028         * lra-constraints.c (process_alt_operands): Disfavor spilling
44029         vector pseudos.
44030
44031 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
44032
44033         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
44034
44035 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
44036
44037         PR tree-optimization/59025
44038         PR middle-end/60418
44039         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
44040         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
44041
44042 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
44043
44044         PR target/60486
44045         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
44046         calls of avr_out_plus_1.
44047
44048 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
44049
44050         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
44051         BB's single pred and update the father loop's latch info later.
44052
44053 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
44054
44055         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
44056         (VEC_M): Likewise.
44057         (VEC_N): Likewise.
44058         (VEC_R): Likewise.
44059         (VEC_base): Likewise.
44060         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
44061         registers, we need to swap double words in little endian mode.
44062
44063         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
44064         to be a container mode for 128-bit integer operations added in ISA
44065         2.07.  Unlike TImode and PTImode, the preferred register set is
44066         the Altivec/VMX registers for the 128-bit operations.
44067
44068         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
44069         declarations.
44070         (rs6000_split_128bit_ok_p): Likewise.
44071
44072         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
44073         macros for creating ISA 2.07 normal and overloaded builtin
44074         functions with 3 arguments.
44075         (BU_P8V_OVERLOAD_3): Likewise.
44076         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
44077         for use as overloaded functions.
44078         (VPERM_1TI_UNS): Likewise.
44079         (VSEL_1TI): Likewise.
44080         (VSEL_1TI_UNS): Likewise.
44081         (ST_INTERNAL_1ti): Likewise.
44082         (LD_INTERNAL_1ti): Likewise.
44083         (XXSEL_1TI): Likewise.
44084         (XXSEL_1TI_UNS): Likewise.
44085         (VPERM_1TI): Likewise.
44086         (VPERM_1TI_UNS): Likewise.
44087         (XXPERMDI_1TI): Likewise.
44088         (SET_1TI): Likewise.
44089         (LXVD2X_V1TI): Likewise.
44090         (STXVD2X_V1TI): Likewise.
44091         (VEC_INIT_V1TI): Likewise.
44092         (VEC_SET_V1TI): Likewise.
44093         (VEC_EXT_V1TI): Likewise.
44094         (EQV_V1TI): Likewise.
44095         (NAND_V1TI): Likewise.
44096         (ORC_V1TI): Likewise.
44097         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
44098         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
44099         overloaded builtin.
44100         (VADDUQM): Likewise.
44101         (VSUBCUQ): Likewise.
44102         (VADDEUQM): Likewise.
44103         (VADDECUQ): Likewise.
44104         (VSUBEUQM): Likewise.
44105         (VSUBECUQ): Likewise.
44106
44107         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
44108         __int128_t and __uint128_t types.
44109         (__uint128_type): Likewise.
44110         (altivec_categorize_keyword): Add support for vector __int128_t,
44111         vector __uint128_t, vector __int128, and vector unsigned __int128
44112         as a container type for TImode operations that need to be done in
44113         VSX/Altivec registers.
44114         (rs6000_macro_to_expand): Likewise.
44115         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
44116         to support 128-bit integer instructions vaddcuq, vadduqm,
44117         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
44118         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
44119
44120         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
44121         for V1TImode, and set up preferences to use VSX/Altivec registers.
44122         Setup VSX reload handlers.
44123         (rs6000_debug_reg_global): Likewise.
44124         (rs6000_init_hard_regno_mode_ok): Likewise.
44125         (rs6000_preferred_simd_mode): Likewise.
44126         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
44127         (easy_altivec_constant): Likewise.
44128         (output_vec_const_move): Likewise.
44129         (rs6000_expand_vector_set): Convert V1TImode set and extract to
44130         simple move.
44131         (rs6000_expand_vector_extract): Likewise.
44132         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
44133         addressing.
44134         (rs6000_const_vec): Add support for V1TImode.
44135         (rs6000_emit_le_vsx_load): Swap double words when loading or
44136         storing TImode/V1TImode.
44137         (rs6000_emit_le_vsx_store): Likewise.
44138         (rs6000_emit_le_vsx_move): Likewise.
44139         (rs6000_emit_move): Add support for V1TImode.
44140         (altivec_expand_ld_builtin): Likewise.
44141         (altivec_expand_st_builtin): Likewise.
44142         (altivec_expand_vec_init_builtin): Likewise.
44143         (altivec_expand_builtin): Likewise.
44144         (rs6000_init_builtins): Add support for V1TImode type.  Add
44145         support for ISA 2.07 128-bit integer builtins.  Define type names
44146         for the VSX/Altivec vector types.
44147         (altivec_init_builtins): Add support for overloaded vector
44148         functions with V1TImode type.
44149         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
44150         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
44151         external function.
44152         (rs6000_split_128bit_ok_p): Likewise.
44153         (rs6000_handle_altivec_attribute): Create V1TImode from vector
44154         __int128_t and vector __uint128_t.
44155
44156         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
44157         and mode attributes.
44158         (VSX_M): Likewise.
44159         (VSX_M2): Likewise.
44160         (VSm): Likewise.
44161         (VSs): Likewise.
44162         (VSr): Likewise.
44163         (VSv): Likewise.
44164         (VS_scalar): Likewise.
44165         (VS_double): Likewise.
44166         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
44167
44168         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
44169         we support the ISA 2.07 128-bit integer arithmetic instructions.
44170         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
44171         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
44172         and TImode types for use with the builtin functions.
44173         (V1TI_type_node): Likewise.
44174         (unsigned_V1TI_type_node): Likewise.
44175         (intTI_type_internal_node): Likewise.
44176         (uintTI_type_internal_node): Likewise.
44177
44178         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
44179         128-bit builtin functions.
44180         (UNSPEC_VADDEUQM): Likewise.
44181         (UNSPEC_VADDECUQ): Likewise.
44182         (UNSPEC_VSUBCUQ): Likewise.
44183         (UNSPEC_VSUBEUQM): Likewise.
44184         (UNSPEC_VSUBECUQ): Likewise.
44185         (VM): Add V1TImode to vector mode iterators.
44186         (VM2): Likewise.
44187         (VI_unit): Likewise.
44188         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
44189         (altivec_vaddcuq): Likewise.
44190         (altivec_vsubuqm): Likewise.
44191         (altivec_vsubcuq): Likewise.
44192         (altivec_vaddeuqm): Likewise.
44193         (altivec_vaddecuq): Likewise.
44194         (altivec_vsubeuqm): Likewise.
44195         (altivec_vsubecuq): Likewise.
44196
44197         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
44198         mode iterators.
44199         (BOOL_128): Likewise.
44200         (BOOL_REGS_OUTPUT): Likewise.
44201         (BOOL_REGS_OP1): Likewise.
44202         (BOOL_REGS_OP2): Likewise.
44203         (BOOL_REGS_UNARY): Likewise.
44204         (BOOL_REGS_AND_CR0): Likewise.
44205
44206         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
44207         128-bit integer builtin support.
44208         (vec_vadduqm): Likewise.
44209         (vec_vaddecuq): Likewise.
44210         (vec_vaddeuqm): Likewise.
44211         (vec_vsubecuq): Likewise.
44212         (vec_vsubeuqm): Likewise.
44213         (vec_vsubcuq): Likewise.
44214         (vec_vsubuqm): Likewise.
44215
44216         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
44217         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
44218         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
44219         128-bit integer add/subtract to ISA 2.07.
44220
44221 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
44222
44223         * config/arc/arc.c (arc_predicate_delay_insns):
44224         Fix third argument passed to conditionalize_nonjump.
44225
44226 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
44227
44228         * config/aarch64/aarch64-builtins.c
44229         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
44230         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
44231         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
44232         instead of __builtin_lfloor.
44233         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
44234
44235 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
44236
44237         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
44238         (tree_ssa_ifcombine_bb_1): New function.
44239         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
44240         is an empty forwarder block to then_bb or vice versa and then_bb
44241         and else_bb are effectively swapped.
44242
44243 2014-03-12  Christian Bruel  <christian.bruel@st.com>
44244
44245         PR target/60264
44246         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
44247         REG_CFA_DEF_CFA note.
44248         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
44249         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
44250
44251 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
44252
44253         PR tree-optimization/60454
44254         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
44255
44256 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44257
44258         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
44259         Do not define target_cpu_default2 to generic.
44260         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
44261         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
44262         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
44263
44264 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
44265             Marc Glisse  <marc.glisse@inria.fr>
44266
44267         PR tree-optimization/60502
44268         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
44269         instead of build_low_bits_mask.
44270
44271 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
44272
44273         PR middle-end/60482
44274         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
44275         if there are multiple uses, but op doesn't live on E edge.
44276         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
44277         clobber stmts before __builtin_unreachable.
44278
44279 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
44280
44281         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
44282         hard_frame_pointer_rtx.
44283         * cse.c (cse_insn): Remove volatile check.
44284         * cselib.c (cselib_process_insn): Likewise.
44285         * dse.c (scan_insn): Likewise.
44286
44287 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
44288
44289         * config/arc/arc.c (conditionalize_nonjump): New function,
44290         broken out of ...
44291         (arc_ifcvt): ... this.
44292         (arc_predicate_delay_insns): Use it.
44293
44294 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
44295
44296         * config/arc/predicates.md (extend_operand): During/after reload,
44297         allow const_int_operand.
44298         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
44299         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
44300         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
44301         to "i".
44302         (umulsi3_highpart_i): Likewise.
44303
44304 2014-03-11  Richard Biener  <rguenther@suse.de>
44305
44306         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
44307         Add asserts to guard possible wrong-code bugs.
44308
44309 2014-03-11  Richard Biener  <rguenther@suse.de>
44310
44311         PR tree-optimization/60429
44312         PR tree-optimization/60485
44313         * tree-ssa-structalias.c (set_union_with_increment): Properly
44314         take into account all fields that overlap the shifted vars.
44315         (do_sd_constraint): Likewise.
44316         (do_ds_constraint): Likewise.
44317         (get_constraint_for_ptr_offset): Likewise.
44318
44319 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
44320
44321         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
44322         (nios2_compute_frame_layout):
44323         Add calculation of cfun->machine->fp_save_offset.
44324         (nios2_expand_prologue): Correct setting of frame pointer register
44325         in prologue.
44326         (nios2_expand_epilogue): Update recovery of stack pointer from
44327         frame pointer accordingly.
44328         (nios2_initial_elimination_offset): Update calculation of offset
44329         for eliminating to HARD_FRAME_POINTER_REGNUM.
44330
44331 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
44332
44333         PR ipa/60457
44334         * ipa.c (symtab_remove_unreachable_nodes): Don't call
44335         cgraph_get_create_node on VAR_DECLs.
44336
44337 2014-03-10  Richard Biener  <rguenther@suse.de>
44338
44339         PR middle-end/60474
44340         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
44341
44342 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
44343
44344         * config/vms/vms.opt (vms_float_format): New variable.
44345
44346 2014-03-08  Tobias Burnus  <burnus@net-b.de>
44347
44348         * doc/invoke.texi (-fcilkplus): Update implementation status.
44349
44350 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
44351             Richard Biener  <rguenther@suse.de>
44352
44353         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
44354         consistently accross all TUs.
44355         (run_gcc): Enable -fshort-double automatically at link at link-time
44356         and disallow override.
44357
44358 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
44359
44360         PR target/58271
44361         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
44362         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
44363         if they can't be used.
44364
44365 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44366
44367         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
44368         for Solaris 11/x86 ld.
44369         * configure: Regenerate.
44370
44371 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44372
44373         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
44374         (LIB_TLS_SPEC): Save as ld_tls_libs.
44375         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
44376         (HAVE_AS_IX86_TLSLDM): New test.
44377         * configure, config.in: Regenerate.
44378         * config/i386/i386.c (legitimize_tls_address): Fall back to
44379         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
44380         cannot support TLS_MODEL_LOCAL_DYNAMIC.
44381         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
44382         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
44383
44384 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
44385
44386         * common.opt (fira-loop-pressure): Mark as optimization.
44387
44388 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
44389
44390         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
44391         an OpenMP mappable type.
44392
44393 2014-03-06  Matthias Klose  <doko@ubuntu.com>
44394
44395         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
44396         MULTILIB_OSDIRNAMES is not defined.
44397
44398 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
44399             Meador Inge  <meadori@codesourcery.com>
44400
44401         PR target/58595
44402         * config/arm/arm.c (arm_tls_symbol_p): Remove.
44403         (arm_legitimize_address): Call legitimize_tls_address for any
44404         arm_tls_referenced_p expression, handle constant addend.  Call it
44405         before testing for !TARGET_ARM.
44406         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
44407
44408 2014-03-06  Richard Biener  <rguenther@suse.de>
44409
44410         PR middle-end/60445
44411         PR lto/60424
44412         PR lto/60427
44413         Revert
44414         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44415
44416         * tree-streamer.c (record_common_node): Assert we don't record
44417         nodes with type double.
44418         (preload_common_node): Skip type double, complex double and double
44419         pointer since it is now frontend dependent due to fshort-double option.
44420
44421 2014-03-06  Richard Biener  <rguenther@suse.de>
44422
44423         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
44424         or -fno-lto is specified and the linker has full plugin support.
44425         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
44426         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
44427         * lto-wrapper.c (merge_and_complain): Merge compile-time
44428         optimization levels.
44429         (run_gcc): And pass it through to the link options.
44430
44431 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
44432
44433         PR debug/60381
44434         Revert:
44435         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44436         PR debug/59992
44437         * cselib.c (remove_useless_values): Skip to avoid quadratic
44438         behavior if the condition moved from...
44439         (cselib_process_insn): ... here holds.
44440
44441 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44442
44443         PR plugins/59335
44444         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
44445         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
44446
44447         PR plugins/59335
44448         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
44449         (TM_H): Add x86-tune.def.
44450
44451 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44452
44453         * config/aarch64/aarch64.c (generic_tunings):
44454         Use cortexa57_extra_costs.
44455
44456 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44457
44458         PR lto/60404
44459         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
44460         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
44461         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
44462         cost for in_lto_p.
44463
44464 2014-03-04  Heiher  <r@hev.cc>
44465
44466         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
44467         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
44468
44469 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
44470
44471         * config/i386/predicates.md (const2356_operand): Change to ...
44472         (const2367_operand): ... this.
44473         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
44474         const2367_operand.
44475         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44476         (*avx512pf_scatterpf<mode>sf): Ditto.
44477         (avx512pf_scatterpf<mode>df): Ditto.
44478         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44479         (*avx512pf_scatterpf<mode>df): Ditto.
44480         * config/i386/i386.c (ix86_expand_builtin): Update
44481         incorrect hint operand error message.
44482
44483 2014-03-04  Richard Biener  <rguenther@suse.de>
44484
44485         * lto-section-in.c (lto_get_section_data): Fix const cast.
44486
44487 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44488
44489         * tree-streamer.c (record_common_node): Assert we don't record
44490         nodes with type double.
44491         (preload_common_node): Skip type double, complex double and double
44492         pointer since it is now frontend dependent due to fshort-double option.
44493
44494 2014-03-04  Richard Biener  <rguenther@suse.de>
44495
44496         PR lto/60405
44497         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
44498         (lto_input_toplevel_asms): Likewise.
44499         * lto-section-in.c (lto_get_section_data): Instead do it here
44500         for every section.
44501
44502 2014-03-04  Richard Biener  <rguenther@suse.de>
44503
44504         PR tree-optimization/60382
44505         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
44506         dead PHIs a reduction.
44507
44508 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
44509
44510         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
44511         hint value.
44512         (_mm_prefetch): Move out of GCC target("sse") pragma.
44513         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
44514         GCC target("prfchw") pragma.
44515         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
44516         for locality <= 2.
44517         * config/i386/i386.c (ix86_option_override_internal): Enable
44518         -mprfchw with -mprefetchwt1.
44519
44520 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44521
44522         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
44523         Mark as varying.
44524
44525 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44526
44527         * opts.h (CL_PCH_IGNORE): Define.
44528         * targhooks.c (option_affects_pch_p):
44529         Return false for options that have CL_PCH_IGNORE set.
44530         * opt-functions.awk: Process PchIgnore.
44531         * doc/options.texi: Document PchIgnore.
44532
44533         * config/arc/arc.opt (misize): Add PchIgnore property.
44534
44535 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44536
44537         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
44538         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
44539         constraint on constants to permit them being loaded into
44540         GENERAL_REGS or BASE_REGS.
44541
44542 2014-03-03  Nick Clifton  <nickc@redhat.com>
44543
44544         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
44545         anti-cacnonical alternatives.
44546         (negandhi3_real): New pattern.
44547         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
44548
44549 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
44550
44551         * config/avr/avr-mcus.def: Remove atxmega16x1.
44552         * config/avr/avr-tables.opt: Regenerate.
44553         * config/avr/t-multilib: Regenerate.
44554         * doc/avr-mmcu.texi: Regenerate.
44555
44556 2014-03-03  Tobias Grosser  <tobias@grosser.es>
44557             Mircea Namolaru  <mircea.namolaru@inria.fr>
44558
44559         PR tree-optimization/58028
44560         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
44561         scalar dimensions.
44562
44563 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
44564
44565         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
44566         not handled by recognizers.
44567
44568 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
44569
44570         PR middle-end/60175
44571         * function.c (expand_function_end): Don't emit
44572         clobber_return_register sequence if clobber_after is a BARRIER.
44573         * cfgexpand.c (construct_exit_block): Append instructions before
44574         return_label to prev_bb.
44575
44576 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44577
44578         * config/rs6000/constraints.md: Document reserved use of "wc".
44579
44580 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44581
44582         PR ipa/60150
44583         * ipa.c (function_and_variable_visibility): When dissolving comdat
44584         group, also set all symbols to local.
44585
44586 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44587
44588         PR ipa/60306
44589
44590         Revert:
44591         2013-12-14  Jan Hubicka  <jh@suse.cz>
44592         PR middle-end/58477
44593         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44594
44595 2014-03-02  Jon Beniston  <jon@beniston.com>
44596
44597         PR bootstrap/48230
44598         PR bootstrap/50927
44599         PR bootstrap/52466
44600         PR target/46898
44601         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44602         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44603         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44604         (simple_return, *simple_return): New patterns
44605         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44606         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44607
44608 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
44609
44610         * dwarf2out.c (gen_subprogram_die): Tidy.
44611
44612 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
44613
44614         PR target/60071
44615         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44616         (*mov_t_msb_neg_negc): ... this new insn.
44617
44618 2014-02-28  Jason Merrill  <jason@redhat.com>
44619
44620         PR c++/58678
44621         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44622         function.
44623
44624 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
44625
44626         PR c++/60314
44627         * dwarf2out.c (decltype_auto_die): New static.
44628         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44629         (gen_type_die_with_usage): Handle 'decltype(auto)'.
44630         (is_cxx_auto): Likewise.
44631
44632 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
44633
44634         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44635         we are not using general regs only.
44636
44637 2014-02-28  Richard Biener  <rguenther@suse.de>
44638
44639         PR target/60280
44640         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44641         previous fix and only allow to remove trivial pre-headers
44642         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44643         (remove_forwarder_block): Properly update the latch of a loop.
44644
44645 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44646
44647         PR debug/59992
44648         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44649         (cselib_preserved_hash_table): New.
44650         (preserve_constants_and_equivs): Move preserved vals to it.
44651         (cselib_find_slot): Look it up first.
44652         (cselib_init): Initialize it.
44653         (cselib_finish): Release it.
44654         (dump_cselib_table): Dump it.
44655
44656 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44657
44658         PR debug/59992
44659         * cselib.c (remove_useless_values): Skip to avoid quadratic
44660         behavior if the condition moved from...
44661         (cselib_process_insn): ... here holds.
44662
44663 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44664
44665         PR debug/57232
44666         * var-tracking.c (vt_initialize): Apply the same condition to
44667         preserve the CFA base value.
44668
44669 2014-02-28  Joey Ye  <joey.ye@arm.com>
44670
44671         PR target/PR60169
44672         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44673         if reload in progress or completed.
44674
44675 2014-02-28  Tobias Burnus  <burnus@net-b.de>
44676
44677         PR middle-end/60147
44678         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44679         NAMELIST_DECL.
44680
44681 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
44682
44683         * doc/tm.texi.in (Condition Code Status): Update documention for
44684         relative locations of cc0-setter and cc0-user.
44685
44686 2014-02-27  Jeff Law  <law@redhat.com>
44687
44688         PR rtl-optimization/52714
44689         * combine.c (try_combine): When splitting an unrecognized PARALLEL
44690         into two independent simple sets, if I3 is a jump, ensure the
44691         pattern we place into I3 is a (set (pc) ...).
44692
44693 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
44694             Jeff Law  <law@redhat.com>
44695
44696         PR rtl-optimization/49847
44697         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44698         are in different blocks.
44699         * doc/tm.texi (Condition Code Status): Update documention for
44700         relative locations of cc0-setter and cc0-user.
44701
44702 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
44703
44704         PR target/59222
44705         * lra.c (lra_emit_add): Check SUBREG too.
44706
44707 2014-02-27  Andreas Schwab  <schwab@suse.de>
44708
44709         * config/m68k/m68k.c (m68k_option_override): Disable
44710         -flive-range-shrinkage for classic m68k.
44711         (m68k_override_options_after_change): Likewise.
44712
44713 2014-02-27  Marek Polacek  <polacek@redhat.com>
44714
44715         PR middle-end/59223
44716         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44717         -Wmaybe-uninitialized.
44718
44719 2014-02-27  Alan Modra  <amodra@gmail.com>
44720
44721         PR target/57936
44722         * reload1.c (emit_input_reload_insns): When reload_override_in,
44723         set old to rl->in_reg when rl->in_reg is a subreg.
44724
44725 2014-02-26  Richard Biener  <rguenther@suse.de>
44726
44727         PR bootstrap/60343
44728         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44729
44730 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44731
44732         * common/config/i386/predicates.md (const1256_operand): Remove.
44733         (const2356_operand): New.
44734         (const_1_to_2_operand): Remove.
44735         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44736         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44737         (*avx512pf_gatherpf<mode>sf): Ditto.
44738         (avx512pf_gatherpf<mode>df): Ditto.
44739         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44740         (*avx512pf_gatherpf<mode>df): Ditto.
44741         (avx512pf_scatterpf<mode>sf): Ditto.
44742         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44743         (*avx512pf_scatterpf<mode>sf): Ditto.
44744         (avx512pf_scatterpf<mode>df): Ditto.
44745         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44746         (*avx512pf_scatterpf<mode>df): Ditto.
44747         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44748
44749 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
44750
44751         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44752         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44753         (_mm512_mask_testn_epi64_mask): Move to ...
44754         * config/i386/avx512cdintrin.h: Here.
44755         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44756         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44757         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44758         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44759         TARGET_AVX512F from TARGET_AVX512CD.
44760
44761 2014-02-26  Richard Biener  <rguenther@suse.de>
44762
44763         PR ipa/60327
44764         * ipa.c (walk_polymorphic_call_targets): Properly guard
44765         call to inline_update_overall_summary.
44766
44767 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
44768
44769         PR target/60280
44770         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44771         and latches only if requested.  Fix latch if it is removed.
44772         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44773         LOOPS_HAVE_PREHEADERS.
44774
44775 2014-02-25  Andrew Pinski  <apinski@cavium.com>
44776
44777         * builtins.c (expand_builtin_thread_pointer): Create a new target
44778         when the target is NULL.
44779
44780 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
44781
44782         PR rtl-optimization/60317
44783         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44784         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44785         * lra-assigns.c: Include params.h.
44786         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44787         other reload pseudos considerations.
44788
44789 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44790
44791         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44792         to use canonical form for nor<mode>3.
44793
44794 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44795
44796         PR target/55426
44797         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44798         conversions.
44799
44800 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44801
44802         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44803         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44804         (ix86_handle_option): Handle OPT_mprefetchwt1.
44805         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44806         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44807         PREFETCHWT1 CPUID.
44808         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44809         OPTION_MASK_ISA_PREFETCHWT1.
44810         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44811         (PTA_PREFETCHWT1): New.
44812         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44813         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44814         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44815         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44816         (*prefetch_avx512pf_<mode>_: Change into ...
44817         (*prefetch_prefetchwt1_<mode>: This.
44818         * config/i386/i386.opt (mprefetchwt1): New.
44819         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44820         (_mm_prefetch): Handle intent to write.
44821         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44822
44823 2014-02-25  Richard Biener  <rguenther@suse.de>
44824
44825         PR middle-end/60291
44826         * emit-rtl.c (mem_attrs_htab): Remove.
44827         (mem_attrs_htab_hash): Likewise.
44828         (mem_attrs_htab_eq): Likewise.
44829         (set_mem_attrs): Always allocate new mem-attrs when something changed.
44830         (init_emit_once): Do not allocate mem_attrs_htab.
44831
44832 2014-02-25  Richard Biener  <rguenther@suse.de>
44833
44834         PR lto/60319
44835         * lto-opts.c (lto_write_options): Output non-explicit conservative
44836         -fwrapv, -fno-trapv and -fno-strict-overflow.
44837         * lto-wrapper.c (merge_and_complain): Handle merging those options.
44838         (run_gcc): And pass them through.
44839
44840 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44841
44842         * sel-sched.c (calculate_new_fences): New parameter ptime.
44843         Calculate it as a maximum over all fence cycles.
44844         (sel_sched_region_2): Adjust the call to calculate_new_fences.
44845         Print the final schedule timing when sched_verbose.
44846
44847 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44848
44849         PR rtl-optimization/60292
44850         * sel-sched.c (fill_vec_av_set): Do not reset target availability
44851         bit fot the fence instruction.
44852
44853 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
44854
44855         * calls.h: Fix typo in comment.
44856
44857 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
44858
44859         * config/pa/pa.c (pa_output_move_double): Don't valididate when
44860         adjusting offsetable addresses.
44861
44862 2014-02-24  Guozhi Wei  <carrot@google.com>
44863
44864         * sparseset.h (sparseset_pop): Fix the wrong index.
44865
44866 2014-02-24  Walter Lee  <walt@tilera.com>
44867
44868         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44869         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44870         triplet.
44871         * common/config/tilegx/tilegx-common.c
44872         (TARGET_DEFAULT_TARGET_FLAGS): Define.
44873         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44874         (LINK_SPEC): Ditto.
44875         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44876         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44877         (tilegx_gimplify_va_arg_expr): Handle big endian.
44878         (tilegx_expand_unaligned_load): Ditto.
44879         (tilegx_expand_unaligned_store): Ditto.
44880         (TARGET_RETURN_IN_MSB): New.
44881         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44882         (TARGET_ENDIAN_DEFAULT): New.
44883         (TARGET_BIG_ENDIAN): Handle big endian.
44884         (BYTES_BIG_ENDIAN): Ditto.
44885         (WORDS_BIG_ENDIAN): Ditto.
44886         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44887         (ENDIAN_SPEC): New.
44888         (EXTRA_SPECS): New.
44889         * config/tilegx/tilegx.md (extv): Handle big endian.
44890         (extzv): Ditto.
44891         (insn_st<n>): Ditto.
44892         (insn_st<n>_add<bitsuffix>): Ditto.
44893         (insn_stnt<n>): Ditto.
44894         (insn_stnt<n>_add<bitsuffix>):Ditto.
44895         (vec_interleave_highv8qi): Handle big endian.
44896         (vec_interleave_highv8qi_be): New.
44897         (vec_interleave_highv8qi_le): New.
44898         (insn_v1int_h): Handle big endian.
44899         (vec_interleave_lowv8qi): Handle big endian.
44900         (vec_interleave_lowv8qi_be): New.
44901         (vec_interleave_lowv8qi_le): New.
44902         (insn_v1int_l): Handle big endian.
44903         (vec_interleave_highv4hi): Handle big endian.
44904         (vec_interleave_highv4hi_be): New.
44905         (vec_interleave_highv4hi_le): New.
44906         (insn_v2int_h): Handle big endian.
44907         (vec_interleave_lowv4hi): Handle big endian.
44908         (vec_interleave_lowv4hi_be): New.
44909         (vec_interleave_lowv4hi_le): New.
44910         (insn_v2int_l): Handle big endian.
44911         (vec_interleave_highv2si): Handle big endian.
44912         (vec_interleave_highv2si_be): New.
44913         (vec_interleave_highv2si_le): New.
44914         (insn_v4int_h): Handle big endian.
44915         (vec_interleave_lowv2si): Handle big endian.
44916         (vec_interleave_lowv2si_be): New.
44917         (vec_interleave_lowv2si_le): New.
44918         (insn_v4int_l): Handle big endian.
44919         * config/tilegx/tilegx.opt (mbig-endian): New option.
44920         (mlittle-endian): New option.
44921         * doc/install.texi: Document tilegxbe-linux.
44922         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44923
44924 2014-02-24  Martin Jambor  <mjambor@suse.cz>
44925
44926         PR ipa/60266
44927         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44928         there are no parameter descriptors.
44929
44930 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
44931
44932         PR rtl-optimization/60268
44933         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44934         initialization to ...
44935         (sched_rgn_init): ... here.
44936         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44937
44938 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44939
44940         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44941         names.
44942
44943 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
44944
44945         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44946         definition.
44947
44948 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44949
44950         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44951         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44952
44953 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44954
44955         * config/microblaze/predicates.md: Add cmp_op predicate.
44956         * config/microblaze/microblaze.md: Add branch_compare instruction
44957         which uses cmp_op predicate and emits cmp insn before branch.
44958         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44959         to microblaze_expand_conditional_branch and consolidate logic.
44960         (microblaze_expand_conditional_branch): emit branch_compare
44961         insn instead of handling cmp op separate from branch insn.
44962
44963 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44964
44965         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44966         to permit subregs.
44967
44968 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44969
44970         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44971         define_insn with define_expand and new define_insn
44972         *altivec_lve<VI_char>x_internal.
44973         (altivec_stve<VI_char>x): Replace define_insn with define_expand
44974         and new define_insn *altivec_stve<VI_char>x_internal.
44975         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44976         prototype.
44977         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44978         lve*x built-ins.
44979         (altivec_expand_stvex_be): New function.
44980
44981 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
44982
44983         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44984         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44985         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44986         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44987
44988 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
44989
44990         PR target/60298
44991         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44992         instead of emit_move_insn.
44993
44994 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44995
44996         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44997         vspltw with vsldoi.
44998         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44999         gen_altivec_vsumsws.
45000
45001 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45002
45003         * config/rs6000/altivec.md (altivec_lvxl): Rename as
45004         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
45005         (altivec_lvxl_<mode>): New define_expand incorporating
45006         -maltivec=be semantics where needed.
45007         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
45008         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
45009         semantics where needed.
45010         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
45011         (altivec_stvx_<mode>): New define_expand incorporating
45012         -maltivec=be semantics where needed.
45013         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
45014         VM2 iterator instead of V4SI.
45015         (altivec_stvxl_<mode>): New define_expand incorporating
45016         -maltivec=be semantics where needed.
45017         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
45018         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
45019         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
45020         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
45021         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
45022         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
45023         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
45024         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
45025         ALTIVEC_BUILTIN_STVXL.
45026         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
45027         (altivec_expand_stvx_be): Likewise.
45028         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
45029         (altivec_expand_lvx_be): Likewise.
45030         (altivec_expand_stvx_be): Likewise.
45031         (altivec_expand_builtin): Add cases for
45032         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
45033         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
45034         (altivec_init_builtins): Add definitions for
45035         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
45036         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
45037
45038 2014-02-21  Catherine Moore  <clm@codesourcery.com>
45039
45040         * doc/invoke.texi (mvirt, mno-virt): Document.
45041         * config/mips/mips.opt (mvirt): New option.
45042         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
45043
45044 2014-02-21  Richard Biener  <rguenther@suse.de>
45045
45046         PR tree-optimization/60276
45047         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
45048         (STMT_VINFO_MIN_NEG_DIST): New macro.
45049         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
45050         STMT_VINFO_MIN_NEG_DIST.
45051         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
45052         made for negative dependence distances still hold.
45053
45054 2014-02-21  Richard Biener  <rguenther@suse.de>
45055
45056         PR middle-end/60291
45057         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
45058         DECL_INITIAL for globals not in the current function context.
45059
45060 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
45061
45062         PR tree-optimization/56490
45063         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
45064         * tree-ssa-uninit.c: Include params.h.
45065         (compute_control_dep_chain): Add num_calls argument, return false
45066         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
45067         num_calls to recursive call.
45068         (find_predicates): Change dep_chain into normal array,
45069         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
45070         variable and adjust compute_control_dep_chain caller.
45071         (find_def_preds): Likewise.
45072
45073 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
45074
45075         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
45076         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
45077
45078 2014-02-21  Nick Clifton  <nickc@redhat.com>
45079
45080         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
45081         (pushhi1): Likewise.
45082         (popqi1): Add mode to pre_dec.
45083         (pophi1): Likewise.
45084
45085 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
45086
45087         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
45088         mode for mask of V8SFmode permutation.
45089
45090 2014-02-20  Richard Henderson  <rth@redhat.com>
45091
45092         PR c++/60272
45093         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
45094         a new pseudo for OLDVAL.
45095
45096 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
45097
45098         PR target/57896
45099         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
45100         gen_reg_rtx if d->testing_p.
45101         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
45102         if d->testing_p and we will certainly return true.
45103         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
45104         if d->testing_p.
45105
45106 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
45107
45108         * emit-rtl.c (gen_reg_rtx): Assert that
45109         crtl->emit.regno_pointer_align_length is non-zero.
45110
45111 2014-02-20  Richard Henderson  <rth@redhat.com>
45112
45113         PR c++/60272
45114         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
45115         on failure the store back into EXPECT.
45116
45117 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
45118             Sandra Loosemore  <sandra@codesourcery.com>
45119
45120         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
45121         * config/nios2/nios2.c (nios2_function_profiler): Add
45122         -fPIC (flag_pic == 2) support.
45123         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
45124         (nios2_large_offset_p): New function.
45125         (nios2_unspec_reloc_p): Move up position, update to use
45126         nios2_large_offset_p.
45127         (nios2_unspec_address): Remove function.
45128         (nios2_unspec_offset): New function.
45129         (nios2_large_got_address): New function.
45130         (nios2_got_address): Add large offset support.
45131         (nios2_legitimize_tls_address): Update usage of removed and new
45132         functions.
45133         (nios2_symbol_binds_local_p): New function.
45134         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
45135         (nios2_legitimize_address): Update to use nios2_large_offset_p.
45136         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
45137         (nios2_print_operand): Merge H/L processing, add hiadj/lo
45138         processing for (const (unspec ...)).
45139         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
45140
45141 2014-02-20  Richard Biener  <rguenther@suse.de>
45142
45143         * tree-cfg.c (replace_uses_by): Mark altered BBs before
45144         doing the substitution.
45145         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
45146
45147 2014-02-20  Martin Jambor  <mjambor@suse.cz>
45148
45149         PR ipa/55260
45150         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
45151         info when checking whether lattices are bottom.
45152
45153 2014-02-20  Richard Biener  <rguenther@suse.de>
45154
45155         PR middle-end/60221
45156         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
45157         regions at -O0.
45158
45159 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
45160
45161         PR ipa/58555
45162         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
45163         parameter specifying the scaling.
45164         (inline_call): Update.
45165         (want_inline_recursively): Guard division by zero.
45166         (recursive_inlining): Update.
45167         * ipa-inline.h (clone_inlined_nodes): Update.
45168
45169 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
45170
45171         PR target/60204
45172         * config/i386/i386.c (classify_argument): Pass structures of size
45173         64 bytes or less in register.
45174
45175 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
45176             Kirill Yukhin  <kirill.yukhin@intel.com>
45177
45178         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
45179         (_mm_rcp28_round_ss): Ditto.
45180         (_mm_rsqrt28_round_sd): Ditto.
45181         (_mm_rsqrt28_round_ss): Ditto.
45182         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
45183         (_mm_rcp14_round_ss): Ditto.
45184         (_mm_rsqrt14_round_sd): Ditto.
45185         (_mm_rsqrt14_round_ss): Ditto.
45186         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
45187         the first input operand, get rid of match_dup.
45188         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
45189         attribute to sse.
45190         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
45191         Ditto.
45192         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
45193         operand as the first input operand, set type attribute.
45194         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
45195         Set type attribute.
45196         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
45197         operand as the first input operand, set type attribute.
45198
45199 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45200
45201         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
45202         bit of zero.
45203
45204 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
45205
45206         PR target/60207
45207         * config/i386/i386.c (construct_container): Remove TFmode check
45208         for X86_64_INTEGER_CLASS.
45209
45210 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
45211
45212         PR target/59794
45213         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
45214         only when -Wpsabi is enabled.
45215
45216 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
45217
45218         PR target/59799
45219         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
45220         passing arrays in registers are the same as for structs, so remove the
45221         special case for them.
45222
45223 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
45224
45225         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
45226         destination type, extract only the valid bits if the source type is not
45227         integral and has a different mode.
45228
45229 2014-02-19  Richard Biener  <rguenther@suse.de>
45230
45231         PR ipa/60243
45232         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
45233         for all calls.
45234
45235 2014-02-19  Richard Biener  <rguenther@suse.de>
45236
45237         PR ipa/60243
45238         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
45239         (ipa_modify_call_arguments): Emit an argument load explicitely and
45240         preserve virtual SSA form there and for the replacement call.
45241         Do not update SSA form nor free dominance info.
45242
45243 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
45244
45245         * ipa.c (function_and_variable_visibility): Also clear WEAK
45246         flag when disolving COMDAT_GROUP.
45247
45248 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
45249
45250         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
45251         * ipa-prop.c (ipa_set_jf_known_type): Return early when
45252         not devirtualizing.
45253         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
45254         do more sanity checks.
45255         (detect_type_change): Return true when giving up early.
45256         (compute_complex_assign_jump_func): Fix type parameter of
45257         ipa_set_ancestor_jf.
45258         (compute_complex_ancestor_jump_func): Likewise.
45259         (update_jump_functions_after_inlining): Fix updating of
45260         ancestor function.
45261         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
45262
45263 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
45264
45265         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
45266         inline clones when edge disappears.
45267
45268 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
45269
45270         PR target/60203
45271         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
45272         Split 64-bit moves into 2 patterns.  Do not allow the use of
45273         direct move for TDmode in little endian, since the decimal value
45274         has little endian bytes within a word, but the 64-bit pieces are
45275         ordered in a big endian fashion, and normal subreg's of TDmode are
45276         not allowed.
45277         (mov<mode>_64bit_dm): Likewise.
45278         (movtd_64bit_nodm): Likewise.
45279
45280 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
45281
45282         PR tree-optimization/60174
45283         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
45284         statement of an SSA_NAME that occurs in an abnormal PHI node.
45285
45286 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
45287
45288         PR sanitizer/60142
45289         * final.c (SEEN_BB): Remove.
45290         (SEEN_NOTE, SEEN_EMITTED): Renumber.
45291         (final_scan_insn): Don't force_source_line on second
45292         NOTE_INSN_BASIC_BLOCK.
45293
45294 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
45295
45296         PR target/60205
45297         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
45298         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
45299         (type_natural_mode): Warn ABI change when %zmm register is not
45300         available for AVX512F vector value passing.
45301
45302 2014-02-18  Kai Tietz  <ktietz@redhat.com>
45303
45304         PR target/60193
45305         * config/i386/i386.c (ix86_expand_prologue): Use value in
45306         rax register as displacement when restoring %r10 or %rax.
45307         Fix wrong offset when restoring both registers.
45308
45309 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
45310
45311         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
45312         assertion with conditional return.
45313
45314 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
45315             Uros Bizjak  <ubizjak@gmail.com>
45316
45317         PR driver/60233
45318         * config/i386/driver-i386.c (host_detect_local_cpu): If
45319         YMM state is not saved by the OS, also clear has_f16c.  Move
45320         CPUID 0x80000001 handling before YMM state saving checking.
45321
45322 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
45323
45324         PR rtl-optimization/58960
45325         * haifa-sched.c (alloc_global_sched_pressure_data): New,
45326         factored out from ...
45327         (sched_init): ... here.
45328         (free_global_sched_pressure_data): New, factored out from ...
45329         (sched_finish): ... here.
45330         * sched-int.h (free_global_sched_pressure_data): Declare.
45331         * sched-rgn.c (nr_regions_initial): New static global.
45332         (haifa_find_rgns): Initialize it.
45333         (schedule_region): Disable sched-pressure for the newly
45334         generated regions.
45335
45336 2014-02-17  Richard Biener  <rguenther@suse.de>
45337
45338         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
45339         release SSA defs of pattern stmts.
45340
45341 2014-02-17  Richard Biener  <rguenther@suse.de>
45342
45343         * tree-inline.c (expand_call_inline): Release the virtual
45344         operand defined by the call we are about to inline.
45345
45346 2014-02-17  Richard Biener  <rguenther@suse.de>
45347
45348         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
45349
45350 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
45351             Ilya Tocar  <ilya.tocar@intel.com>
45352
45353         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
45354         arguments order in builtin.
45355         (_mm512_permutexvar_epi64): Ditto.
45356         (_mm512_mask_permutexvar_epi64): Ditto
45357         (_mm512_maskz_permutexvar_epi32): Ditto
45358         (_mm512_permutexvar_epi32): Ditto
45359         (_mm512_mask_permutexvar_epi32): Ditto
45360
45361 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45362
45363         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
45364         (p8_vmrgow): Likewise.
45365
45366 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45367
45368         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
45369         endian targets.
45370
45371 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
45372
45373         PR target/60203
45374         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
45375         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
45376         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
45377         using direct move instructions on ISA 2.07.  Also adjust
45378         instruction length for 64-bit.
45379         (mov<mode>_64bit, TFmode/TDmode): Likewise.
45380         (mov<mode>_32bit, TFmode/TDmode): Likewise.
45381
45382 2014-02-15  Alan Modra  <amodra@gmail.com>
45383
45384         PR target/58675
45385         PR target/57935
45386         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
45387         find_replacement on parts of insn rtl that might be reloaded.
45388
45389 2014-02-15  Richard Biener  <rguenther@suse.de>
45390
45391         PR tree-optimization/60183
45392         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
45393         (tree_ssa_phiprop): Calculate and free post-dominators.
45394
45395 2014-02-14  Jeff Law  <law@redhat.com>
45396
45397         PR rtl-optimization/60131
45398         * ree.c (get_extended_src_reg): New function.
45399         (combine_reaching_defs): Use it rather than assuming location of REG.
45400         (find_and_remove_re): Verify first operand of extension is
45401         a REG before adding the insns to the copy list.
45402
45403 2014-02-14  Roland McGrath  <mcgrathr@google.com>
45404
45405         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
45406         * configure: Regenerated.
45407         * config.in: Regenerated.
45408         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
45409         instead of ASM_SHORT.
45410
45411 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
45412             Richard Earnshaw  <rearnsha@arm.com>
45413
45414         PR rtl-optimization/59535
45415         * lra-constraints.c (process_alt_operands): Encourage alternative
45416         when unassigned pseudo class is superset of the alternative class.
45417         (inherit_reload_reg): Don't inherit when optimizing for code size.
45418         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
45419         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
45420         modes not less than 4 for Thumb1.
45421
45422 2014-02-14  Kyle McMartin  <kyle@redhat.com>
45423
45424         PR pch/60010
45425         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
45426
45427 2014-02-14  Richard Biener  <rguenther@suse.de>
45428
45429         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
45430         (get_frame_arg): Drop the assert with langhook types_compatible_p.
45431         Do not strip INDIRECT_REFs.
45432
45433 2014-02-14  Richard Biener  <rguenther@suse.de>
45434
45435         PR lto/60179
45436         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
45437         DECL_FUNCTION_SPECIFIC_TARGET.
45438         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
45439         * tree-streamer-out.c (pack_ts_target_option): Remove.
45440         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
45441         (write_ts_function_decl_tree_pointers): Do not stream
45442         DECL_FUNCTION_SPECIFIC_TARGET.
45443         * tree-streamer-in.c (unpack_ts_target_option): Remove.
45444         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
45445         (lto_input_ts_function_decl_tree_pointers): Do not stream
45446         DECL_FUNCTION_SPECIFIC_TARGET.
45447
45448 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
45449
45450         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
45451         (get_initial_def_for_induction, vectorizable_induction): Ignore
45452         debug stmts when looking for exit_phi.
45453         (vectorizable_live_operation): Fix up condition.
45454
45455 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45456
45457         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
45458         nreverse() because it changes the content of original tree list.
45459
45460 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45461
45462         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
45463         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
45464
45465 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45466
45467         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
45468         GNU coding standards.
45469
45470 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45471
45472         PR debug/60152
45473         * dwarf2out.c (gen_subprogram_die): Don't call
45474         add_calling_convention_attribute if subr_die is old_die.
45475
45476 2014-02-13  Sharad Singhai  <singhai@google.com>
45477
45478         * doc/optinfo.texi: Fix order of nodes.
45479
45480 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
45481
45482         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
45483         operands[2], not operands[3].
45484
45485 2014-02-13  Richard Biener  <rguenther@suse.de>
45486
45487         PR bootstrap/59878
45488         * doc/install.texi (ISL): Update recommended version to 0.12.2,
45489         mention the possibility of an in-tree build.
45490         (CLooG): Update recommended version to 0.18.1, mention the
45491         possibility of an in-tree build and clarify that the ISL
45492         bundled with CLooG does not work.
45493
45494 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45495
45496         PR target/43546
45497         * expr.c (compress_float_constant): If x is a hard register,
45498         extend into a pseudo and then move to x.
45499
45500 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
45501
45502         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
45503         caused by bad second argument to warning_at() with -mhotpatch and
45504         nested functions (e.g. with gfortran).
45505
45506 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
45507
45508         * opts.c (option_name): Remove "enabled by default" rider.
45509
45510 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
45511
45512         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
45513
45514 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
45515             Uros Bizjak  <ubizjak@gmail.com>
45516
45517         PR target/60151
45518         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
45519         * configure: Regenerated.
45520
45521 2014-02-12  Richard Biener  <rguenther@suse.de>
45522
45523         * vec.c (vec_prefix::calculate_allocation): Move as
45524         inline variant to vec.h.
45525         (vec_prefix::calculate_allocation_1): New out-of-line version.
45526         * vec.h (vec_prefix::calculate_allocation_1): Declare.
45527         (vec_prefix::m_has_auto_buf): Rename to ...
45528         (vec_prefix::m_using_auto_storage): ... this.
45529         (vec_prefix::calculate_allocation): Inline the easy cases
45530         and dispatch to calculate_allocation_1 which doesn't need the
45531         prefix address.
45532         (va_heap::reserve): Use gcc_checking_assert.
45533         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
45534         m_using_auto_storage.
45535         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
45536         member and adjust.
45537         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
45538         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
45539         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
45540
45541 2014-02-12  Richard Biener  <rguenther@suse.de>
45542
45543         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
45544         when we found a dependence.
45545
45546 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
45547
45548         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
45549         common code...
45550         (maybe_fold_stmt): ... into this new function.
45551         * omp-low.c (lower_omp): Update comment.
45552
45553         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
45554         last use.
45555
45556         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
45557         dereference.
45558
45559 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
45560
45561         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
45562         identifiers in comments.
45563         (cortexa53_extra_costs): Likewise.
45564         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
45565         (cortexa7_extra_costs): Likewise.
45566         (cortexa12_extra_costs): Likewise.
45567         (cortexa15_extra_costs): Likewise.
45568         (v7m_extra_costs): Likewise.
45569
45570 2014-02-12  Richard Biener  <rguenther@suse.de>
45571
45572         PR middle-end/60092
45573         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45574         of posix_memalign being successful.
45575         (lower_stmt): Restrict lowering of posix_memalign to when
45576         -ftree-bit-ccp is enabled.
45577
45578 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
45579
45580         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45581         arg_loc.
45582         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45583
45584 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
45585
45586         PR rtl-optimization/60116
45587         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45588         other_insn once the combination has been validated.
45589
45590 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
45591
45592         PR lto/59468
45593         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45594         and wrapper.
45595         * ipa-devirt.c: Include demangle.h
45596         (odr_violation_reported): New static variable.
45597         (add_type_duplicate): Update odr_violations.
45598         (maybe_record_node): Add completep parameter; update it.
45599         (record_target_from_binfo): Add COMPLETEP parameter;
45600         update it as needed.
45601         (possible_polymorphic_call_targets_1): Likewise.
45602         (struct polymorphic_call_target_d): Add nonconstruction_targets;
45603         rename FINAL to COMPLETE.
45604         (record_targets_from_bases): Sanity check we found the binfo;
45605         fix COMPLETEP updating.
45606         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45607         parameter, fix computing of COMPLETEP.
45608         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45609         at LTO time do demangling.
45610         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45611         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45612         parameter.
45613         (gimple_get_virt_method_for_binfo): Likewise.
45614         * gimple-fold.h (gimple_get_virt_method_for_binfo,
45615         gimple_get_virt_method_for_vtable): Update prototypes.
45616
45617 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
45618
45619         PR target/49008
45620         * genautomata.c (add_presence_absence): Fix typo with
45621         {final_}presence_list.
45622
45623 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
45624
45625         PR target/60137
45626         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45627         for VSX/Altivec vectors that land in GPR registers.
45628
45629 2014-02-11  Richard Henderson  <rth@redhat.com>
45630             Jakub Jelinek  <jakub@redhat.com>
45631
45632         PR debug/59776
45633         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45634         around drhs if type conversion to lacc->type is not useless.
45635
45636 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45637
45638         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45639         tuning struct.
45640         (cortex-a57.cortex-a53): Likewise.
45641         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45642
45643 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45644
45645         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45646         arm_restrict_it.
45647
45648 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
45649
45650         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45651         add_options_for_arm_vfp3.
45652
45653 2014-02-11  Jeff Law  <law@redhat.com>
45654
45655         PR middle-end/54041
45656         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45657         object with an undesirable mode.
45658
45659 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45660
45661         PR libgomp/60107
45662         * config/i386/sol2-9.h: New file.
45663         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45664         *-*-solaris2.9*): Use it.
45665
45666 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45667
45668         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45669         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45670
45671 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45672
45673         * config/microblaze/microblaze.c: Extend mcpu version format
45674
45675 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
45676
45677         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45678
45679 2014-02-10  Richard Henderson  <rth@redhat.com>
45680
45681         PR target/59927
45682         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45683         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45684         ms-abi vs -mno-accumulate-outgoing-args.
45685         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45686         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45687         respect to ms-abi.
45688
45689 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45690
45691         PR middle-end/60080
45692         * cfgexpand.c (expand_asm_operands): Attach source location to
45693         ASM_INPUT rtx objects.
45694         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45695
45696 2014-02-10  Nick Clifton  <nickc@redhat.com>
45697
45698         * config/mn10300/mn10300.c (popcount): New function.
45699         (mn10300_expand_prologue): Include saved registers in stack usage
45700         count.
45701
45702 2014-02-10  Jeff Law  <law@redhat.com>
45703
45704         PR middle-end/52306
45705         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45706         when changing the SET_DEST of a prior insn to avoid an input reload.
45707
45708 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
45709
45710         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45711         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45712         -mcall-openbsd, or -mcall-linux.
45713         (CC1_ENDIAN_BIG_SPEC): Remove.
45714         (CC1_ENDIAN_LITTLE_SPEC): Remove.
45715         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45716         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45717         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45718         and %cc1_endian_default.
45719         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45720
45721 2014-02-10  Richard Biener  <rguenther@suse.de>
45722
45723         PR tree-optimization/60115
45724         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45725         MEM_REF handling.  Properly verify that the accesses are not
45726         out of the objects bound.
45727
45728 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45729
45730         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45731         coretex to cortex.
45732
45733 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
45734
45735         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45736         proper constants and fix formatting.
45737         (possible_polymorphic_call_targets): Fix formatting.
45738
45739 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
45740             Ilya Tocar  <ilya.tocar@intel.com>
45741
45742         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45743         (_mm512_loadu_epi32): Renamed into...
45744         (_mm512_loadu_si512): This.
45745         (_mm512_storeu_epi32): Renamed into...
45746         (_mm512_storeu_si512): This.
45747         (_mm512_maskz_ceil_ps): Removed.
45748         (_mm512_maskz_ceil_pd): Ditto.
45749         (_mm512_maskz_floor_ps): Ditto.
45750         (_mm512_maskz_floor_pd): Ditto.
45751         (_mm512_floor_round_ps): Ditto.
45752         (_mm512_floor_round_pd): Ditto.
45753         (_mm512_ceil_round_ps): Ditto.
45754         (_mm512_ceil_round_pd): Ditto.
45755         (_mm512_mask_floor_round_ps): Ditto.
45756         (_mm512_mask_floor_round_pd): Ditto.
45757         (_mm512_mask_ceil_round_ps): Ditto.
45758         (_mm512_mask_ceil_round_pd): Ditto.
45759         (_mm512_maskz_floor_round_ps): Ditto.
45760         (_mm512_maskz_floor_round_pd): Ditto.
45761         (_mm512_maskz_ceil_round_ps): Ditto.
45762         (_mm512_maskz_ceil_round_pd): Ditto.
45763         (_mm512_expand_pd): Ditto.
45764         (_mm512_expand_ps): Ditto.
45765         * config/i386/i386.c (ix86_builtins): Remove
45766         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45767         (bdesc_args): Ditto.
45768         * config/i386/predicates.md (const1256_operand): New.
45769         (const_1_to_2_operand): Ditto.
45770         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45771         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45772         (*avx512pf_gatherpf<mode>sf): Ditto.
45773         (avx512pf_gatherpf<mode>df): Ditto.
45774         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45775         (*avx512pf_gatherpf<mode>df): Ditto.
45776         (avx512pf_scatterpf<mode>sf): Ditto.
45777         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45778         (*avx512pf_scatterpf<mode>sf): Ditto.
45779         (avx512pf_scatterpf<mode>df): Ditto.
45780         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45781         (*avx512pf_scatterpf<mode>df): Ditto.
45782         (avx512f_expand<mode>): Removed.
45783         (<shift_insn><mode>3<mask_name>): Change predicate type.
45784
45785 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45786
45787         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45788         not at the end of datarefs vector use ordered_remove to avoid
45789         reordering datarefs vector.
45790
45791         PR c/59984
45792         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45793         mark local addressable non-static vars as GOVD_PRIVATE
45794         instead of GOVD_LOCAL.
45795         * omp-low.c (lower_omp_for): Move gimple_bind_vars
45796         and BLOCK_VARS of gimple_bind_block to new_stmt rather
45797         than copying them.
45798
45799         PR middle-end/60092
45800         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45801         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45802         assume_aligned or alloc_align attributes.
45803         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45804         arguments.  Handle also assume_aligned and alloc_align attributes.
45805         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
45806         calls to functions with assume_aligned or alloc_align attributes.
45807         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45808
45809 2014-02-08  Terry Guo  <terry.guo@arm.com>
45810
45811         * doc/invoke.texi: Document ARM -march=armv7e-m.
45812
45813 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45814
45815         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45816         flag on __cilkrts_rethrow builtin.
45817
45818         PR ipa/60026
45819         * ipa-cp.c (determine_versionability): Fail at -O0
45820         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45821         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45822
45823         Revert:
45824         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45825
45826         PR ipa/60026
45827         * tree-inline.c (copy_forbidden): Fail for
45828         __attribute__((optimize (0))) functions.
45829
45830 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45831
45832         * varpool.c: Include pointer-set.h.
45833         (varpool_remove_unreferenced_decls): Variables in other partitions
45834         will not be output; be however careful to not lose information
45835         about partitioning.
45836
45837 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45838
45839         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45840         lookup in the vtable constructor.
45841
45842 2014-02-07  Jeff Law  <law@redhat.com>
45843
45844         PR target/40977
45845         * config/m68k/m68k.md (ashldi_extsi): Turn into a
45846         define_insn_and_split.
45847
45848         * ipa-inline.c (inline_small_functions): Fix typos.
45849
45850 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45851
45852         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45853         (s390_can_use_return_insn): Declare.
45854         * config/s390/s390.h (EPILOGUE_USES): Define.
45855         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45856         instructions.
45857         (s390_chunkify_start): Handle return JUMP_LABELs.
45858         (s390_early_mach): Emit a main_pool instruction on the entry edge.
45859         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45860         (s390_can_use_return_insn): New functions.
45861         (s390_fix_long_loop_prediction): Handle conditional returns.
45862         (TARGET_SET_UP_BY_PROLOGUE): Define.
45863         * config/s390/s390.md (ANY_RETURN): New code iterator.
45864         (*creturn, *csimple_return, return, simple_return): New patterns.
45865
45866 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45867
45868         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45869         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
45870         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
45871         REG_CFA_RESTORE list when deciding not to restore a register.
45872
45873 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45874
45875         * config/s390/s390.c: Include tree-pass.h and context.h.
45876         (s390_early_mach): New function, split out from...
45877         (s390_emit_prologue): ...here.
45878         (pass_data_s390_early_mach): New pass structure.
45879         (pass_s390_early_mach): New class.
45880         (s390_option_override): Create and register early_mach pass.
45881         Move to end of file.
45882
45883 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45884
45885         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45886         to match for the exit block.
45887
45888 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45889
45890         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45891         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45892         Reject misaligned operands.
45893
45894 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45895
45896         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45897
45898 2014-02-07  Richard Biener  <rguenther@suse.de>
45899
45900         PR middle-end/60092
45901         * gimple-low.c (lower_builtin_posix_memalign): New function.
45902         (lower_stmt): Call it to lower posix_memalign in a way
45903         to make alignment info accessible.
45904
45905 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
45906
45907         PR c++/60082
45908         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45909         __builtin_setjmp_receiver.
45910
45911 2014-02-07  Richard Biener  <rguenther@suse.de>
45912
45913         PR middle-end/60092
45914         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45915         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45916         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45917         Handle BUILT_IN_POSIX_MEMALIGN.
45918         (find_func_clobbers): Likewise.
45919         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45920         (call_may_clobber_ref_p_1): Likewise.
45921
45922 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45923
45924         PR ipa/59918
45925         * ipa-devirt.c (record_target_from_binfo): Remove overactive
45926         sanity check.
45927
45928 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45929
45930         PR ipa/59469
45931         * lto-cgraph.c (lto_output_node): Use
45932         symtab_get_symbol_partitioning_class.
45933         (lto_output_varpool_node): likewise.
45934         (symtab_get_symbol_partitioning_class): Move here from
45935         lto/lto-partition.c
45936         * cgraph.h (symbol_partitioning_class): Likewise.
45937         (symtab_get_symbol_partitioning_class): Declare.
45938
45939 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45940
45941         * ggc.h (ggc_internal_cleared_alloc): New macro.
45942         * vec.h (vec_safe_copy): Handle memory stats.
45943         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45944         * target-globals.c (save_target_globals): Likewise.
45945
45946 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45947
45948         PR target/60077
45949         * expr.c (emit_move_resolve_push): Export; be bit more selective
45950         on when to clear alias set.
45951         * expr.h (emit_move_resolve_push): Declare.
45952         * function.h (struct function): Add tail_call_marked.
45953         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45954         * config/i386/i386-protos.h (ix86_expand_push): Remove.
45955         * config/i386/i386.md (TImode move expander): De not call
45956         ix86_expand_push.
45957         (FP push expanders): Preserve memory attributes.
45958         * config/i386/sse.md (push<mode>1): Remove.
45959         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45960         (ix86_expand_push): Remove.
45961         * config/i386/mmx.md (push<mode>1): Remove.
45962
45963 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45964
45965         PR rtl-optimization/60030
45966         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45967         lopart with paradoxical subreg before shifting it up by hprec.
45968
45969 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45970
45971         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45972         Remove extra newline at end of file.
45973         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45974         (arm_issue_rate): Handle cortexa57.
45975         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45976         (cortex-a57.cortex-a53): Likewise.
45977
45978 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45979
45980         PR target/59575
45981         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45982         don't record in REG_FRAME_RELATED_EXPR registers not set in that
45983         bitmask.
45984         (arm_expand_prologue): Adjust all callers.
45985         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45986         info, registers also at the lowest numbered registers side.  Use
45987         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45988         XEXP.
45989
45990         PR debug/59992
45991         * var-tracking.c (adjust_mems): Before adding a SET to
45992         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45993
45994 2014-02-06  Alan Modra  <amodra@gmail.com>
45995
45996         PR target/60032
45997         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45998         change SDmode to DDmode when lra_in_progress.
45999
46000 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
46001
46002         PR middle-end/59150
46003         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
46004         free_data_ref on the dr first, and before goto again also set dr
46005         to the next dr.  For simd_lane_access, free old datarefs[i] before
46006         overwriting it.  For get_vectype_for_scalar_type failure, don't
46007         free_data_ref if simd_lane_access.
46008
46009         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
46010
46011         PR target/60062
46012         * tree.h (opts_for_fn): New inline function.
46013         (opt_for_fn): Define.
46014         * config/i386/i386.c (ix86_function_regparm): Use
46015         opt_for_fn (decl, optimize) instead of optimize.
46016
46017 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46018
46019         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
46020         for SYMBOL_REF in large memory model.
46021
46022 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46023
46024         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
46025         and crypto support.
46026         (cortex-a57): Likewise.
46027         (cortex-a57.cortex-a53): Likewise.
46028
46029 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
46030             Kugan Vivekanandarajah  <kuganv@linaro.org>
46031
46032         * config/arm/arm.c (arm_vector_alignment_reachable): Check
46033         unaligned_access.
46034         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
46035
46036 2014-02-06  Richard Biener  <rguenther@suse.de>
46037
46038         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
46039         set_loop_copy and initialize_original_copy_tables.
46040
46041 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
46042
46043         * config/aarch64/aarch64-simd.md
46044         (aarch64_ashr_simddi): Change QI to SI.
46045
46046 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
46047             Jakub Jelinek  <jakub@redhat.com>
46048
46049         PR middle-end/60013
46050         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
46051         of the dataflow.
46052
46053 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46054
46055         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
46056         CODE_FOR_altivec_vpku[hw]um to
46057         CODE_FOR_altivec_vpku[hw]um_direct.
46058         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
46059         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
46060         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
46061         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
46062
46063 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46064
46065         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
46066         generation for -maltivec=be.
46067         (altivec_vsumsws): Simplify redundant test.
46068
46069 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46070
46071         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
46072         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
46073         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
46074         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
46075         gen_altivec_vpkuwum.
46076         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
46077         BYTES_BIG_ENDIAN.
46078         (altivec_vpks<VI_char>ss): Likewise.
46079         (altivec_vpks<VI_char>us): Likewise.
46080         (altivec_vpku<VI_char>us): Likewise.
46081         (altivec_vpku<VI_char>um): Likewise.
46082         (altivec_vpku<VI_char>um_direct): New (copy of
46083         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
46084         internal use).
46085         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
46086         target is little endian and -maltivec=be is not specified.
46087         (*altivec_vupkhs<VU_char>_direct): New (copy of
46088         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
46089         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
46090         target is little endian and -maltivec=be is not specified.
46091         (*altivec_vupkls<VU_char>_direct): New (copy of
46092         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
46093         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
46094         little endian and -maltivec=be is not specified.
46095         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
46096         little endian and -maltivec=be is not specified.
46097
46098 2014-02-05  Richard Henderson  <rth@redhat.com>
46099
46100         PR debug/52727
46101         * combine-stack-adj.c: Revert r206943.
46102         * sched-int.h (struct deps_desc): Add last_args_size.
46103         * sched-deps.c (init_deps): Initialize it.
46104         (sched_analyze_insn): Add OUTPUT dependencies between insns that
46105         contain REG_ARGS_SIZE notes.
46106
46107 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
46108
46109         * lto-cgraph.c (asm_nodes_output): Make global.
46110         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
46111         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
46112         (driver_handle_option): Handle OPT_fwpa.
46113
46114 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
46115
46116         PR ipa/59947
46117         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
46118         a comment typo and formatting issue.  If odr_hash hasn't been
46119         created, return vNULL and set *completep to false.
46120
46121         PR middle-end/57499
46122         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
46123         bb with no successors.
46124
46125 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
46126
46127         PR target/59718
46128         * doc/invoke.texi (-march): Clarify documentation for ARM.
46129         (-mtune): Likewise.
46130         (-mcpu): Likewise.
46131
46132 2014-02-05  Richard Biener  <rguenther@suse.de>
46133
46134         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
46135         when not vectorizing because of too many alias checks.
46136         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
46137         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
46138
46139 2014-02-05  Nick Clifton  <nickc@redhat.com>
46140
46141         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
46142         accept extended registers in any mode when compiling for the MN10300.
46143
46144 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
46145
46146         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
46147         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
46148         sanitization attributes.
46149         (can_inline_edge_p): Likewise.
46150         (sanitize_attrs_match_for_inline_p): New function.
46151
46152 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
46153
46154         * ipa-prop.c (detect_type_change): Shor circuit testing of
46155         type changes on THIS pointer.
46156
46157 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
46158
46159         PR target/59777
46160         * config/pa/pa.c (legitimize_tls_address): Return original address
46161         if not passed a SYMBOL_REF rtx.
46162         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
46163         addresses.
46164         (pa_emit_move_sequence): Simplify TLS source operands.
46165         (pa_legitimate_constant_p): Reject all TLS constants.
46166         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
46167         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
46168
46169 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
46170
46171         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
46172         groups when we know they are controlled by LTO.
46173         * varasm.c (default_binds_local_p_1): If object is in other partition,
46174         it will be resolved locally.
46175
46176 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
46177
46178         * config/host-linux.c (linux_gt_pch_use_address): Don't
46179         use SSIZE_MAX because it is not always defined.
46180
46181 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
46182
46183         PR bootstrap/59913
46184         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
46185         threshold for pseudo splitting.
46186         (update_ebb_live_info): Process call argument hard registers and
46187         hard registers from insn definition too.
46188         (max_small_class_regs_num): New constant.
46189         (inherit_in_ebb): Update live hard regs through EBBs.  Update
46190         reloads_num only for small register classes.  Don't split for
46191         outputs of jumps.
46192
46193 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
46194
46195         PR ipa/60058
46196         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
46197         is non-null.
46198
46199 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
46200
46201         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
46202         visibility is safe.
46203
46204 2014-02-04  Marek Polacek  <polacek@redhat.com>
46205
46206         * gdbinit.in (pel): Define.
46207
46208 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
46209
46210         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
46211         behavior.
46212
46213 2014-02-04  Richard Biener  <rguenther@suse.de>
46214
46215         PR lto/59723
46216         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
46217         in function context local.
46218         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
46219         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
46220         similar to LTO_imported_decl_ref.
46221
46222 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
46223
46224         PR tree-optimization/60002
46225         * cgraphclones.c (build_function_decl_skip_args): Clear
46226         DECL_LANG_SPECIFIC.
46227
46228         PR tree-optimization/60023
46229         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
46230         false to gsi_replace.
46231         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
46232         has been in some EH region and vec_stmt could throw, add
46233         vec_stmt into the same EH region.
46234         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
46235         has no lhs, ignore it.
46236         * internal-fn.c (expand_MASK_LOAD): Likewise.
46237
46238         PR ipa/60026
46239         * tree-inline.c (copy_forbidden): Fail for
46240         __attribute__((optimize (0))) functions.
46241
46242         PR other/58712
46243         * omp-low.c (simd_clone_struct_copy): If from->inbranch
46244         is set, copy one less argument.
46245         (expand_simd_clones): Don't subtract clone_info->inbranch
46246         from simd_clone_struct_alloc argument.
46247
46248         PR rtl-optimization/57915
46249         * recog.c (simplify_while_replacing): If all unary/binary/relational
46250         operation arguments are constant, attempt to simplify those.
46251
46252         PR middle-end/59261
46253         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
46254         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
46255
46256 2014-02-04  Richard Biener  <rguenther@suse.de>
46257
46258         PR tree-optimization/60012
46259         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
46260         TBAA disambiguation to all DDRs.
46261
46262 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
46263
46264         PR target/59788
46265         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
46266         (LINK_SPEC): Use it for -shared, -shared-libgcc.
46267
46268 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46269
46270         PR ipa/59882
46271         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
46272
46273 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46274
46275         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
46276         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
46277
46278 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46279
46280         PR ipa/59831
46281         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
46282         to figure out targets of polymorphic calls with known decl.
46283         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
46284         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
46285         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
46286         (get_polymorphic_call_info): ... here.
46287         (get_polymorphic_call_info_from_invariant): New function.
46288
46289 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46290
46291         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
46292         lookup via vtable pointer; check for type consistency
46293         and turn inconsitent facts into UNREACHABLE.
46294         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
46295         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
46296         type inconsistent querries; return UNREACHABLE instead.
46297
46298 2014-02-03  Richard Henderson  <rth@twiddle.net>
46299
46300         PR tree-opt/59924
46301         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
46302         already processed this node.
46303         (normalize_one_pred_1): Pass along mark_set.
46304         (normalize_one_pred): Create and destroy a pointer_set_t.
46305         (normalize_one_pred_chain): Likewise.
46306
46307 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
46308
46309         PR gcov-profile/58602
46310         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
46311
46312 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46313
46314         PR ipa/59831
46315         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
46316         -fno-devirtualize; try to devirtualize by the knowledge of
46317         virtual table pointer given by aggregate propagation.
46318         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
46319         (ipa_print_node_jump_functions): Dump also offset that
46320         is relevant for polymorphic calls.
46321         (determine_known_aggregate_parts): Add arg_type parameter; use it
46322         instead of determining the type from pointer type.
46323         (ipa_compute_jump_functions_for_edge): Update call of
46324         determine_known_aggregate_parts.
46325         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
46326         (gimple_get_virt_method_for_binfo): ... here; simplify using
46327         vtable_pointer_value_to_vtable.
46328         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
46329         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
46330         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
46331         (vtable_pointer_value_to_vtable): Break out from ...; handle also
46332         POINTER_PLUS_EXPR.
46333         (vtable_pointer_value_to_binfo): ... here.
46334         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
46335
46336 2014-02-03  Teresa Johnson  <tejohnson@google.com>
46337
46338         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
46339         redef of outer loop index variable.
46340
46341 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
46342
46343         PR c++/53017
46344         PR c++/59211
46345         * doc/extend.texi (Function Attributes): Typo.
46346
46347 2014-02-03  Cong Hou  <congh@google.com>
46348
46349         PR tree-optimization/60000
46350         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
46351         if the vectorized statement is a store.  A store statement can only
46352         appear at the end of pattern statements.
46353
46354 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
46355
46356         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
46357         (ix86_option_override_internal): Default long double to 64-bit for
46358         32-bit Bionic and to 128-bit for 64-bit Bionic.
46359
46360         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
46361         TARGET_LONG_DOUBLE_128 is true.
46362         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
46363
46364         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
46365         (mlong-double-64): Negate -mlong-double-128.
46366         (mlong-double-128): New option.
46367
46368         * config/i386/i386-c.c (ix86_target_macros): Define
46369         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
46370
46371         * doc/invoke.texi: Document -mlong-double-128.
46372
46373 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
46374
46375         PR rtl-optimization/60024
46376         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
46377
46378 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
46379
46380         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
46381
46382 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46383
46384         PR rtl-optimization/57662
46385         * sel-sched.c (code_motion_path_driver): Do not mark already not
46386         existing blocks in the visiting bitmap.
46387
46388 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46389
46390         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
46391         on the insn being emitted.
46392
46393 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
46394             Will Deacon  <will.deacon@arm.com>
46395
46396         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
46397
46398 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46399
46400         * config/arm/arm-tables.opt: Regenerate.
46401
46402 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46403
46404         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
46405         for vector types other than V16QImode.
46406         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
46407         define_expand, and call altivec_expand_vec_perm_le when producing
46408         code with little endian element order.
46409         (*altivec_vperm_<mode>_internal): New insn having previous
46410         behavior of altivec_vperm_<mode>.
46411         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
46412         altivec_expand_vec_perm_le when producing code with little endian
46413         element order.
46414         (*altivec_vperm_<mode>_uns_internal): New insn having previous
46415         behavior of altivec_vperm_<mode>_uns.
46416
46417 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46418
46419         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
46420         (altivec_vsumsws): Add handling for -maltivec=be with a little
46421         endian target.
46422         (altivec_vsumsws_direct): New.
46423         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
46424         gen_altivec_vsumsws.
46425
46426 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46427
46428         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
46429         vtable_pointer_value_to_binfo): New functions.
46430         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
46431         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
46432
46433 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
46434
46435         * config/nios2/nios2.md (load_got_register): Initialize GOT
46436         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
46437         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
46438
46439 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46440
46441         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
46442         preserverd by passthrough, do not propagate the type.
46443
46444 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46445
46446         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
46447         (mips_atomic_assign_expand_fenv): New function.
46448         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
46449
46450 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46451
46452         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
46453         (__builtin_mips_set_fcsr): Likewise.
46454         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
46455         MIPS_USI_FTYPE_VOID.
46456         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
46457         (mips16_expand_set_fcsr): Likewise.
46458         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
46459         (mips16_set_fcsr_stub): Likewise.
46460         (mips16_get_fcsr_one_only_stub): New class.
46461         (mips16_set_fcsr_one_only_stub): Likewise.
46462         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
46463         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
46464         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
46465         (hard_float): New availability predicate.
46466         (mips_builtins): Add get_fcsr and set_fcsr.
46467         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
46468         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
46469         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
46470         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
46471         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
46472         patterns.
46473
46474 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46475
46476         * config/mips/mips.c (mips_one_only_stub): New class.
46477         (mips_need_mips16_rdhwr_p): Replace with...
46478         (mips16_rdhwr_stub): ...this new variable.
46479         (mips16_stub_call_address): New function.
46480         (mips16_rdhwr_one_only_stub): New class.
46481         (mips_expand_thread_pointer): Use mips16_stub_call_address.
46482         (mips_output_mips16_rdhwr): Delete.
46483         (mips_finish_stub): New function.
46484         (mips_code_end): Use it to handle rdhwr stubs.
46485
46486 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
46487
46488         PR target/60017
46489         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
46490         when calculating size of integer atomic types.
46491
46492 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
46493
46494         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
46495
46496 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
46497
46498         PR tree-optimization/60003
46499         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
46500         * profile.c (branch_prob): Use gimple_call_builtin_p
46501         to check for BUILT_IN_SETJMP_RECEIVER.
46502         * tree-inline.c (copy_bb): Call notice_special_calls.
46503
46504 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
46505
46506         PR bootstrap/59985
46507         * lra-constraints.c (process_alt_operands): Update reload_sum only
46508         on the first pass.
46509
46510 2014-01-31  Richard Henderson  <rth@redhat.com>
46511
46512         PR middle-end/60004
46513         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
46514         until after else_eh is processed.
46515
46516 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46517
46518         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
46519         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
46520         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
46521         in smmintrin.h, remove them.
46522         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
46523         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
46524         * config/i386/i386.md (ROUND_SAE): Fix value.
46525         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
46526         (const48_operand): New.
46527         * config/i386/subst.md (round), (round_expand): Use
46528         const_4_or_8_to_11_operand.
46529         (round_saeonly), (round_saeonly_expand): Use const48_operand.
46530
46531 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46532
46533         * config/i386/constraints.md (Yk): Swap meaning with k.
46534         * config/i386/i386.md (movhi_internal): Change Yk to k.
46535         (movqi_internal): Ditto.
46536         (*k<logic><mode>): Ditto.
46537         (*andhi_1): Ditto.
46538         (*andqi_1): Ditto.
46539         (kandn<mode>): Ditto.
46540         (*<code>hi_1): Ditto.
46541         (*<code>qi_1): Ditto.
46542         (kxnor<mode>): Ditto.
46543         (kortestzhi): Ditto.
46544         (kortestchi): Ditto.
46545         (kunpckhi): Ditto.
46546         (*one_cmplhi2_1): Ditto.
46547         (*one_cmplqi2_1): Ditto.
46548         * config/i386/sse.md (): Change k to Yk.
46549         (avx512f_load<mode>_mask): Ditto.
46550         (avx512f_blendm<mode>): Ditto.
46551         (avx512f_store<mode>_mask): Ditto.
46552         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
46553         (avx512f_storedqu<mode>_mask): Ditto.
46554         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
46555         Ditto.
46556         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
46557         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
46558         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
46559         (avx512f_maskcmp<mode>3): Ditto.
46560         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
46561         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
46562         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
46563         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
46564         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
46565         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
46566         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
46567         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
46568         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
46569         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
46570         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46571         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46572         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46573         (vec_extract_lo_<mode>_maskm): Ditto.
46574         (vec_extract_hi_<mode>_maskm): Ditto.
46575         (avx512f_vternlog<mode>_mask): Ditto.
46576         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46577         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46578         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46579         (avx512f_<code>v8div16qi2_mask): Ditto.
46580         (avx512f_<code>v8div16qi2_mask_store): Ditto.
46581         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46582         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46583         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46584         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46585         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46586         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46587         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46588         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46589         (avx512cd_maskb_vec_dupv8di): Ditto.
46590         (avx512cd_maskw_vec_dupv16si): Ditto.
46591         (avx512f_vpermi2var<mode>3_maskz): Ditto.
46592         (avx512f_vpermi2var<mode>3_mask): Ditto.
46593         (avx512f_vpermi2var<mode>3_mask): Ditto.
46594         (avx512f_vpermt2var<mode>3_maskz): Ditto.
46595         (*avx512f_gathersi<mode>): Ditto.
46596         (*avx512f_gathersi<mode>_2): Ditto.
46597         (*avx512f_gatherdi<mode>): Ditto.
46598         (*avx512f_gatherdi<mode>_2): Ditto.
46599         (*avx512f_scattersi<mode>): Ditto.
46600         (*avx512f_scatterdi<mode>): Ditto.
46601         (avx512f_compress<mode>_mask): Ditto.
46602         (avx512f_compressstore<mode>_mask): Ditto.
46603         (avx512f_expand<mode>_mask): Ditto.
46604         * config/i386/subst.md (mask): Change k to Yk.
46605         (mask_scalar_merge): Ditto.
46606         (sd): Ditto.
46607
46608 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
46609
46610         * doc/extend.texi (Vector Extensions): Document ?: in C++.
46611
46612 2014-01-31  Richard Biener  <rguenther@suse.de>
46613
46614         PR middle-end/59990
46615         * builtins.c (fold_builtin_memory_op): Make sure to not
46616         use a floating-point mode or a boolean or enumeral type for
46617         the copy operation.
46618
46619 2014-01-30  DJ Delorie  <dj@redhat.com>
46620
46621         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46622         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46623         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46624         whenever main() has an epilogue.
46625
46626 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46627
46628         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46629         unused variable "field".
46630         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46631         (vsx_mergeh_<mode>): Likewise.
46632         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46633         (altivec_vmrghh): Likewise.
46634         (altivec_vmrghw): Likewise.
46635         (altivec_vmrglb): Likewise.
46636         (altivec_vmrglh): Likewise.
46637         (altivec_vmrglw): Likewise.
46638         (altivec_vspltb): Add missing uses.
46639         (altivec_vsplth): Likewise.
46640         (altivec_vspltw): Likewise.
46641         (altivec_vspltsf): Likewise.
46642
46643 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46644
46645         PR target/59923
46646         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46647         frame related instructions.
46648
46649 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
46650
46651         PR rtl-optimization/59959
46652         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46653         any reload of register whose subreg is invalid.
46654
46655 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46656
46657         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46658         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46659         Add missing return type - void.
46660
46661 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46662
46663         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46664         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46665         remove element index adjustment for endian (now handled in vsx.md
46666         and altivec.md).
46667         (altivec_expand_vec_perm_const): Use
46668         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46669         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46670         (vsx_xxspltw_<mode>): Adjust element index for little endian.
46671         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46672         define_expand and a new define_insn *altivec_vspltb_internal;
46673         adjust for -maltivec=be on a little endian target.
46674         (altivec_vspltb_direct): New.
46675         (altivec_vsplth): Divide into a define_expand and a new
46676         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46677         little endian target.
46678         (altivec_vsplth_direct): New.
46679         (altivec_vspltw): Divide into a define_expand and a new
46680         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46681         little endian target.
46682         (altivec_vspltw_direct): New.
46683         (altivec_vspltsf): Divide into a define_expand and a new
46684         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46685         a little endian target.
46686
46687 2014-01-30  Richard Biener  <rguenther@suse.de>
46688
46689         PR tree-optimization/59993
46690         * tree-ssa-forwprop.c (associate_pointerplus): Check we
46691         can propagate form the earlier stmt and avoid the transform
46692         when the intermediate result is needed.
46693
46694 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
46695
46696         * README.Portability: Fix typo.
46697
46698 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
46699
46700         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46701         comparison_operator with ordered_comparison_operator.
46702
46703 2014-01-30  Nick Clifton  <nickc@redhat.com>
46704
46705         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46706         Rename to mn10300_store_multiple_regs.
46707         * config/mn10300/mn10300.c: Likewise.
46708         * config/mn10300/mn10300.md (store_movm): Fix typo: call
46709         store_multiple_regs.
46710         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46711         Call mn10300_store_multiple_regs.
46712
46713 2014-01-30  Nick Clifton  <nickc@redhat.com>
46714             DJ Delorie  <dj@redhat.com>
46715
46716         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46717         %fp 2 to keep registers after it properly word-aligned.
46718         (rl78_alloc_physical_registers_umul): Handle the case where both
46719         input operands are the same.
46720
46721 2014-01-30  Richard Biener  <rguenther@suse.de>
46722
46723         PR tree-optimization/59903
46724         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46725         check properly.
46726
46727 2014-01-30  Jason Merrill  <jason@redhat.com>
46728
46729         PR c++/59633
46730         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46731
46732         PR c++/59645
46733         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46734
46735 2014-01-30  Richard Biener  <rguenther@suse.de>
46736
46737         PR tree-optimization/59951
46738         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46739
46740 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
46741
46742         PR target/59784
46743         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46744         SFmode to DFmode case.
46745
46746 2014-01-29  DJ Delorie  <dj@redhat.com>
46747
46748         * config/msp430/msp430.opt (-minrt): New.
46749         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46750         if -minrt given.
46751         (ENDFILE_SPEC): Likewise.
46752
46753 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
46754
46755         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46756         (estimate_function_body_sizes): Use it.
46757
46758 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
46759
46760         PR c++/58561
46761         * dwarf2out.c (is_cxx_auto): New.
46762         (is_base_type): Use it.
46763         (gen_type_die_with_usage): Likewise.
46764
46765 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46766
46767         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
46768         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46769         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46770         -maltivec=be with LE targets.
46771         (vsx_mergeh_<mode>): Likewise.
46772         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46773         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46774         (altivec_vmrghb): Replace with define_expand and new
46775         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46776         (altivec_vmrghb_direct): New define_insn.
46777         (altivec_vmrghh): Replace with define_expand and new
46778         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46779         (altivec_vmrghh_direct): New define_insn.
46780         (altivec_vmrghw): Replace with define_expand and new
46781         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46782         (altivec_vmrghw_direct): New define_insn.
46783         (*altivec_vmrghsf): Adjust for endianness.
46784         (altivec_vmrglb): Replace with define_expand and new
46785         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46786         (altivec_vmrglb_direct): New define_insn.
46787         (altivec_vmrglh): Replace with define_expand and new
46788         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46789         (altivec_vmrglh_direct): New define_insn.
46790         (altivec_vmrglw): Replace with define_expand and new
46791         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46792         (altivec_vmrglw_direct): New define_insn.
46793         (*altivec_vmrglsf): Adjust for endianness.
46794         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46795         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46796         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46797         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46798         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46799         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46800         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46801         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46802
46803 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46804
46805         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46806         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46807         whitespace.
46808
46809 2014-01-29  Richard Biener  <rguenther@suse.de>
46810
46811         PR tree-optimization/58742
46812         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46813         associate_pointerplus_align.
46814         (associate_pointerplus_diff): New function.
46815         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
46816         and associate_pointerplus_diff.
46817
46818 2014-01-29  Richard Biener  <rguenther@suse.de>
46819
46820         * lto-streamer.h (LTO_major_version): Bump to 3.
46821         (LTO_minor_version): Reset to 0.
46822
46823 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
46824
46825         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46826         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46827         (arm_file_start): Generate correct asm header for armv7ve.
46828         * config/arm/bpabi.h: Add multilib support for armv7ve.
46829         * config/arm/driver-arm.c: Change the architectures of cortex-a7
46830         and cortex-a15 to armv7ve.
46831         * config/arm/t-aprofile: Add multilib support for armv7ve.
46832         * doc/invoke.texi: Document -march=armv7ve.
46833
46834 2014-01-29  Richard Biener  <rguenther@suse.de>
46835
46836         PR tree-optimization/58742
46837         * tree-ssa-forwprop.c (associate_plusminus): Return true
46838         if we changed sth, defer EH cleanup to ...
46839         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
46840         (simplify_mult): New function.
46841
46842 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46843
46844         PR middle-end/59917
46845         PR tree-optimization/59920
46846         * tree.c (build_common_builtin_nodes): Remove
46847         __builtin_setjmp_dispatcher initialization.
46848         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46849         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46850         instead of gsi_after_labels + manually skipping debug stmts.
46851         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46852         ignore bbs with IFN_ABNORMAL_DISPATCHER.
46853         * tree-inline.c (copy_edges_for_bb): Remove
46854         can_make_abnormal_goto argument, instead add abnormal_goto_dest
46855         argument.  Ignore computed_goto_p stmts.  Don't call
46856         make_abnormal_goto_edges.  If a call might need abnormal edges
46857         for non-local gotos, see if it already has an edge to
46858         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46859         with true argument, don't do anything then, otherwise add
46860         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46861         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46862         caller.
46863         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46864         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46865         (lower_stmt): Don't set data->calls_builtin_setjmp.
46866         (lower_builtin_setjmp): Adjust comment.
46867         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46868         * tree-cfg.c (found_computed_goto): Remove.
46869         (factor_computed_gotos): Remove.
46870         (make_goto_expr_edges): Return bool, true for computed gotos.
46871         Don't call make_abnormal_goto_edges.
46872         (build_gimple_cfg): Don't set found_computed_goto, don't call
46873         factor_computed_gotos.
46874         (computed_goto_p): No longer static.
46875         (make_blocks): Don't set found_computed_goto.
46876         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46877         (make_edges): If make_goto_expr_edges returns true, push bb
46878         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46879         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46880         vector.  Record mapping between bbs and OpenMP regions if there
46881         are any, adjust make_gimple_omp_edges caller.  Call
46882         handle_abnormal_edges.
46883         (make_abnormal_goto_edges): Remove.
46884         * tree-cfg.h (make_abnormal_goto_edges): Remove.
46885         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46886         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46887         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46888         * internal-fn.def (ABNORMAL_DISPATCHER): New.
46889         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46890         filling *region also set *region_idx to (*region)->entry->index.
46891
46892         PR other/58712
46893         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46894         For REGs set ORIGINAL_REGNO.
46895
46896 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
46897
46898         * doc/md.texi: Mention that a target shouldn't implement
46899         vec_widen_(s|u)mul_even/odd pair if it is less efficient
46900         than hi/lo pair.
46901
46902 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46903
46904         PR tree-optimization/59594
46905         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46906         a copy of the datarefs vector rather than the vector itself.
46907
46908 2014-01-28  Jason Merrill  <jason@redhat.com>
46909
46910         PR c++/53756
46911         * dwarf2out.c (auto_die): New static.
46912         (gen_type_die_with_usage): Handle C++1y 'auto'.
46913         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46914         on definition.
46915
46916 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
46917
46918         PR target/59672
46919         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46920         (SPEC_X32): Likewise.
46921         (SPEC_64): Likewise.
46922         * config/i386/i386.c (ix86_option_override_internal): Turn off
46923         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46924         for TARGET_16BIT.
46925         (x86_file_start): Output .code16gcc for TARGET_16BIT.
46926         * config/i386/i386.h (TARGET_16BIT): New macro.
46927         (TARGET_16BIT_P): Likewise.
46928         * config/i386/i386.opt: Add m16.
46929         * doc/invoke.texi: Document -m16.
46930
46931 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
46932
46933         PR preprocessor/59935
46934         * input.c (location_get_source_line): Bail out on when line number
46935         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46936
46937 2014-01-28  Richard Biener  <rguenther@suse.de>
46938
46939         PR tree-optimization/58742
46940         * tree-ssa-forwprop.c (associate_plusminus): Handle
46941         pointer subtraction of the form (T)(P + A) - (T)P.
46942
46943 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46944
46945         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46946         at const_int_cost.
46947
46948 2014-01-28  Richard Biener  <rguenther@suse.de>
46949
46950         Revert
46951         2014-01-28  Richard Biener  <rguenther@suse.de>
46952
46953         PR rtl-optimization/45364
46954         PR rtl-optimization/59890
46955         * var-tracking.c (local_get_addr_clear_given_value): Handle
46956         already cleared slot.
46957         (val_reset): Handle not allocated local_get_addr_cache.
46958         (vt_find_locations): Use post-order on the inverted CFG.
46959
46960 2014-01-28  Richard Biener  <rguenther@suse.de>
46961
46962         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46963
46964 2014-01-28  Richard Biener  <rguenther@suse.de>
46965
46966         PR rtl-optimization/45364
46967         PR rtl-optimization/59890
46968         * var-tracking.c (local_get_addr_clear_given_value): Handle
46969         already cleared slot.
46970         (val_reset): Handle not allocated local_get_addr_cache.
46971         (vt_find_locations): Use post-order on the inverted CFG.
46972
46973 2014-01-28  Alan Modra  <amodra@gmail.com>
46974
46975         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46976         * configure.ac <recursive call for build != host>: Define
46977         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46978         and LD_FOR_BUILD too.
46979         * configure: Regenerate.
46980
46981 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
46982
46983         * config/i386/i386.c (get_builtin_code_for_version): Separate
46984         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46985         Broadwell from Haswell.
46986
46987 2014-01-27  Steve Ellcey  <sellcey@mips.com>
46988
46989         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46990         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46991         * config/mips/mips.c (mips_option_override): Change setting
46992         of TARGET_DSP.
46993         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46994         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46995         Change from Mask to Var.
46996
46997 2014-01-27  Jeff Law  <law@redhat.com>
46998
46999         * ipa-inline.c (inline_small_functions): Fix typo.
47000
47001 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
47002
47003         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
47004         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
47005         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
47006         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
47007         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
47008         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
47009         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
47010         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
47011         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
47012         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
47013         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
47014         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
47015         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
47016         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
47017         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
47018         (_mm512_storeu_epi64): Ditto.
47019         (_mm512_cmpge_epi32_mask): Ditto.
47020         (_mm512_cmpge_epu32_mask): Ditto.
47021         (_mm512_cmpge_epi64_mask): Ditto.
47022         (_mm512_cmpge_epu64_mask): Ditto.
47023         (_mm512_cmple_epi32_mask): Ditto.
47024         (_mm512_cmple_epu32_mask): Ditto.
47025         (_mm512_cmple_epi64_mask): Ditto.
47026         (_mm512_cmple_epu64_mask): Ditto.
47027         (_mm512_cmplt_epi32_mask): Ditto.
47028         (_mm512_cmplt_epu32_mask): Ditto.
47029         (_mm512_cmplt_epi64_mask): Ditto.
47030         (_mm512_cmplt_epu64_mask): Ditto.
47031         (_mm512_cmpneq_epi32_mask): Ditto.
47032         (_mm512_cmpneq_epu32_mask): Ditto.
47033         (_mm512_cmpneq_epi64_mask): Ditto.
47034         (_mm512_cmpneq_epu64_mask): Ditto.
47035         (_mm512_expand_pd): Ditto.
47036         (_mm512_expand_ps): Ditto.
47037         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
47038         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
47039         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
47040         * config/i386/i386.c (ix86_builtins): Add
47041         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
47042         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
47043         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
47044         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
47045         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
47046         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
47047         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
47048         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
47049         IX86_BUILTIN_PMOVUSQW512_MEM.
47050         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
47051         __builtin_ia32_pmovsqd512mem_mask,
47052         __builtin_ia32_pmovqd512mem_mask,
47053         __builtin_ia32_pmovusqw512mem_mask,
47054         __builtin_ia32_pmovsqw512mem_mask,
47055         __builtin_ia32_pmovqw512mem_mask,
47056         __builtin_ia32_pmovusdw512mem_mask,
47057         __builtin_ia32_pmovsdw512mem_mask,
47058         __builtin_ia32_pmovdw512mem_mask,
47059         __builtin_ia32_pmovqb512mem_mask,
47060         __builtin_ia32_pmovusqb512mem_mask,
47061         __builtin_ia32_pmovsqb512mem_mask,
47062         __builtin_ia32_pmovusdb512mem_mask,
47063         __builtin_ia32_pmovsdb512mem_mask,
47064         __builtin_ia32_pmovdb512mem_mask.
47065         (bdesc_args): Add __builtin_ia32_expanddf512,
47066         __builtin_ia32_expandsf512.
47067         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
47068         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
47069         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
47070         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
47071         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
47072         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
47073         (avx512f_<code>v8div16qi2_mask_store): This.
47074         (avx512f_expand<mode>): New.
47075
47076 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
47077
47078         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
47079         New.
47080         (_mm512_mask_prefetch_i64gather_pd): Ditto.
47081         (_mm512_prefetch_i32scatter_pd): Ditto.
47082         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
47083         (_mm512_prefetch_i64scatter_pd): Ditto.
47084         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
47085         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
47086         (_mm512_mask_prefetch_i64gather_ps): Ditto.
47087         (_mm512_prefetch_i32scatter_ps): Ditto.
47088         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
47089         (_mm512_prefetch_i64scatter_ps): Ditto.
47090         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
47091         * config/i386/i386-builtin-types.def: Define
47092         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
47093         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
47094         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
47095         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
47096         IX86_BUILTIN_SCATTERPFQPD.
47097         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
47098         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
47099         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
47100         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
47101         __builtin_ia32_scatterpfqps.
47102         (ix86_expand_builtin): Expand new built-ins.
47103         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
47104         fix memory access data type.
47105         (*avx512pf_gatherpf<mode>_mask): Ditto.
47106         (*avx512pf_gatherpf<mode>): Ditto.
47107         (avx512pf_scatterpf<mode>): Ditto.
47108         (*avx512pf_scatterpf<mode>_mask): Ditto.
47109         (*avx512pf_scatterpf<mode>): Ditto.
47110         (GATHER_SCATTER_SF_MEM_MODE): New.
47111         (avx512pf_gatherpf<mode>df): Ditto.
47112         (*avx512pf_gatherpf<mode>df_mask): Ditto.
47113         (*avx512pf_scatterpf<mode>df): Ditto.
47114
47115 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
47116
47117         PR bootstrap/59934
47118         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
47119         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
47120         reached.
47121
47122 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
47123
47124         * common/config/arm/arm-common.c
47125         (arm_rewrite_mcpu): Handle multiple names.
47126         * config/arm/arm.h
47127         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
47128
47129 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
47130
47131         * gimple-builder.h (create_gimple_tmp): Delete.
47132
47133 2014-01-27  Christian Bruel  <christian.bruel@st.com>
47134
47135         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
47136         words comparisons.
47137
47138 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
47139
47140         * config/pa/pa.md (call): Generate indirect long calls to non-local
47141         functions when outputing 32-bit code.
47142         (call_value): Likewise except for special call to buggy powf function.
47143
47144         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
47145         portable runtime and PIC indirect calls.
47146         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
47147         and PIC call sequences.  Use ldo instead of blr to set return register
47148         in PIC call sequence.
47149
47150 2014-01-25  Walter Lee  <walt@tilera.com>
47151
47152         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
47153         avoid clobbering a live register.
47154
47155 2014-01-25  Walter Lee  <walt@tilera.com>
47156
47157         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
47158         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
47159         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
47160         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
47161
47162 2014-01-25  Walter Lee  <walt@tilera.com>
47163
47164         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
47165         arguments on even registers.
47166         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
47167         STACK_BOUNDARY.
47168         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
47169         (BIGGEST_ALIGNMENT): Ditto.
47170         (BIGGEST_FIELD_ALIGNMENT): Ditto.
47171
47172 2014-01-25  Walter Lee  <walt@tilera.com>
47173
47174         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
47175         insns before bundling.
47176         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
47177
47178 2014-01-25  Walter Lee  <walt@tilera.com>
47179
47180         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
47181         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
47182         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
47183
47184 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
47185
47186         * config/mips/constraints.md (kl): Delete.
47187         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
47188         define expands, using...
47189         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
47190         instructions for MIPS16.
47191         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
47192         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
47193
47194 2014-01-25  Walter Lee  <walt@tilera.com>
47195
47196         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
47197         (clzdi2): Ditto.
47198         (ffsdi2): Ditto.
47199
47200 2014-01-25  Walter Lee  <walt@tilera.com>
47201
47202         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
47203         (TARGET_EXPAND_TO_RTL_HOOK): Define.
47204
47205 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
47206
47207         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
47208         Handle XOR.
47209
47210 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
47211
47212         * print-rtl.c (in_call_function_usage): New var.
47213         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
47214         EXPR_LIST mode as mode and not as reg note name.
47215
47216         PR middle-end/59561
47217         * cfgloopmanip.c (copy_loop_info): If
47218         loop->warned_aggressive_loop_optimizations, make sure
47219         the flag is set in target loop too.
47220
47221 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
47222
47223         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
47224         flag_cilkplus.
47225         * builtins.def: Likewise.
47226         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
47227         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
47228         * ira.c (ira_setup_eliminable_regset): Likewise.
47229         * omp-low.c (gate_expand_omp): Likewise.
47230         (execute_lower_omp): Likewise.
47231         (diagnose_sb_0): Likewise.
47232         (gate_diagnose_omp_blocks): Likewise.
47233         (simd_clone_clauses_extract): Likewise.
47234         (gate): Likewise.
47235
47236 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47237
47238         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
47239         correction for little endian...
47240         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
47241         here.
47242
47243 2014-01-24  Jeff Law  <law@redhat.com>
47244
47245         PR tree-optimization/59919
47246         * tree-vrp.c (find_assert_locations_1): Do not register asserts
47247         for non-returning calls.
47248
47249 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
47250
47251         * common/config/aarch64/aarch64-common.c
47252         (aarch64_rewrite_mcpu): Handle multiple names.
47253         * config/aarch64/aarch64.h
47254         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
47255
47256 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
47257
47258         * input.c (add_file_to_cache_tab): Handle the case where fopen
47259         returns NULL.
47260
47261 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
47262
47263         PR target/59929
47264         * config/i386/i386.md (pushsf splitter): Get stack adjustment
47265         from push operand if code of push isn't PRE_DEC.
47266
47267 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
47268
47269         PR target/59909
47270         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
47271         -mquad-memory-atomic.  Update -mquad-memory documentation to say
47272         it is only used for non-atomic loads/stores.
47273
47274         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
47275         -mquad-memory or -mquad-memory-atomic switches.
47276
47277         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
47278         -mquad-memory-atomic to ISA 2.07 support.
47279
47280         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
47281         to separate support of normal quad word memory operations (ldq, stq)
47282         from the atomic quad word memory operations.
47283
47284         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
47285         support to separate non-atomic quad word operations from atomic
47286         quad word operations.  Disable non-atomic quad word operations in
47287         little endian mode so that we don't have to swap words after the
47288         load and before the store.
47289         (quad_load_store_p): Add comment about atomic quad word support.
47290         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
47291         options printed with -mdebug=reg.
47292
47293         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
47294         -mquad-memory-atomic as the test for whether we have quad word
47295         atomic instructions.
47296         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
47297         or -mp8-vector are used, allow byte/half-word atomic operations.
47298
47299         * config/rs6000/sync.md (load_lockedti): Insure that the address
47300         is a proper indexed or indirect address for the lqarx instruction.
47301         On little endian systems, swap the hi/lo registers after the lqarx
47302         instruction.
47303         (load_lockedpti): Use indexed_or_indirect_operand predicate to
47304         insure the address is valid for the lqarx instruction.
47305         (store_conditionalti): Insure that the address is a proper indexed
47306         or indirect address for the stqcrx. instruction.  On little endian
47307         systems, swap the hi/lo registers before doing the stqcrx.
47308         instruction.
47309         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
47310         insure the address is valid for the stqcrx. instruction.
47311
47312         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
47313         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
47314         type of quad memory support is available.
47315
47316 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
47317
47318         PR regression/59915
47319         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
47320         there is a danger of looping.
47321
47322 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
47323
47324         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
47325         force flag_ira_loop_pressure if set via command line.
47326
47327 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47328
47329         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
47330         (ashr_simd): New builtin handling DI mode.
47331         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
47332         (aarch64_sshr_simddi): New match pattern.
47333         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
47334         (vshrd_n_s64): Likewise.
47335         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
47336
47337 2014-01-23  Nick Clifton  <nickc@redhat.com>
47338
47339         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
47340         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
47341         favour of mcu specific scripts.
47342         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
47343         430x multilibs.
47344
47345 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
47346             Alex Velenko  <Alex.Velenko@arm.com>
47347
47348         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
47349         (vaddv_s16): Likewise.
47350         (vaddv_s32): Likewise.
47351         (vaddv_u8): Likewise.
47352         (vaddv_u16): Likewise.
47353         (vaddv_u32): Likewise.
47354         (vaddvq_s8): Likewise.
47355         (vaddvq_s16): Likewise.
47356         (vaddvq_s32): Likewise.
47357         (vaddvq_s64): Likewise.
47358         (vaddvq_u8): Likewise.
47359         (vaddvq_u16): Likewise.
47360         (vaddvq_u32): Likewise.
47361         (vaddvq_u64): Likewise.
47362         (vaddv_f32): Likewise.
47363         (vaddvq_f32): Likewise.
47364         (vaddvq_f64): Likewise.
47365         (vmaxv_f32): Likewise.
47366         (vmaxv_s8): Likewise.
47367         (vmaxv_s16): Likewise.
47368         (vmaxv_s32): Likewise.
47369         (vmaxv_u8): Likewise.
47370         (vmaxv_u16): Likewise.
47371         (vmaxv_u32): Likewise.
47372         (vmaxvq_f32): Likewise.
47373         (vmaxvq_f64): Likewise.
47374         (vmaxvq_s8): Likewise.
47375         (vmaxvq_s16): Likewise.
47376         (vmaxvq_s32): Likewise.
47377         (vmaxvq_u8): Likewise.
47378         (vmaxvq_u16): Likewise.
47379         (vmaxvq_u32): Likewise.
47380         (vmaxnmv_f32): Likewise.
47381         (vmaxnmvq_f32): Likewise.
47382         (vmaxnmvq_f64): Likewise.
47383         (vminv_f32): Likewise.
47384         (vminv_s8): Likewise.
47385         (vminv_s16): Likewise.
47386         (vminv_s32): Likewise.
47387         (vminv_u8): Likewise.
47388         (vminv_u16): Likewise.
47389         (vminv_u32): Likewise.
47390         (vminvq_f32): Likewise.
47391         (vminvq_f64): Likewise.
47392         (vminvq_s8): Likewise.
47393         (vminvq_s16): Likewise.
47394         (vminvq_s32): Likewise.
47395         (vminvq_u8): Likewise.
47396         (vminvq_u16): Likewise.
47397         (vminvq_u32): Likewise.
47398         (vminnmv_f32): Likewise.
47399         (vminnmvq_f32): Likewise.
47400         (vminnmvq_f64): Likewise.
47401
47402 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
47403
47404         * config/aarch64/aarch64-simd.md
47405         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
47406         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
47407         (*aarch64_mul3_elt<mode>): Likewise.
47408         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
47409         (*aarch64_mul3_elt_to_64v2df): Likewise.
47410         (*aarch64_mla_elt<mode>): Likewise.
47411         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
47412         (*aarch64_mls_elt<mode>): Likewise.
47413         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
47414         (*aarch64_fma4_elt<mode>): Likewise.
47415         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
47416         (*aarch64_fma4_elt_to_64v2df): Likewise.
47417         (*aarch64_fnma4_elt<mode>): Likewise.
47418         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
47419         (*aarch64_fnma4_elt_to_64v2df): Likewise.
47420         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
47421         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
47422         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47423         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47424         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
47425         (aarch64_sqdmull_lane<mode>_internal): Likewise.
47426         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
47427
47428 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47429
47430         * config/aarch64/aarch64-simd.md
47431         (aarch64_be_checked_get_lane<mode>): New define_expand.
47432         * config/aarch64/aarch64-simd-builtins.def
47433         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
47434         New builtin definition.
47435         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
47436         Use new safe be builtin.
47437
47438 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47439
47440         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
47441         New define_insn.
47442         (aarch64_be_st1<mode>): Likewise.
47443         (aarch_ld1<VALL:mode>): Define_expand modified.
47444         (aarch_st1<VALL:mode>): Likewise.
47445         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
47446         (UNSPEC_ST1): Likewise.
47447
47448 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
47449
47450         * config/microblaze/microblaze.md: Add trap insn and attribute
47451
47452 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
47453
47454         PR preprocessor/58580
47455         * input.h (location_get_source_line): Take an additional line_size
47456         parameter.
47457         (void diagnostics_file_cache_fini): Declare new function.
47458         * input.c (struct fcache): New type.
47459         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
47460         New static constants.
47461         (diagnostic_file_cache_init, total_lines_num)
47462         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
47463         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
47464         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
47465         (get_next_line, read_next_line, goto_next_line, read_line_num):
47466         New static function definitions.
47467         (diagnostic_file_cache_fini): New function.
47468         (location_get_source_line): Take an additional output line_len
47469         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
47470         read_line_num.
47471         * diagnostic.c (diagnostic_finish): Call
47472         diagnostic_file_cache_fini.
47473         (adjust_line): Take an additional input parameter for the length
47474         of the line, rather than calculating it with strlen.
47475         (diagnostic_show_locus): Adjust the use of
47476         location_get_source_line and adjust_line with respect to their new
47477         signature.  While displaying a line now, do not stop at the first
47478         null byte.  Rather, display the zero byte as a space and keep
47479         going until we reach the size of the line.
47480         * Makefile.in: Add vec.o to OBJS-libcommon
47481
47482 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47483             Ilya Tocar  <ilya.tocar@intel.com>
47484
47485         * config/i386/avx512fintrin.h (_mm512_kmov): New.
47486         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
47487         (__builtin_ia32_kmov16): Ditto.
47488         * config/i386/i386.md (UNSPEC_KMOV): New.
47489         (kmovw): Ditto.
47490
47491 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47492
47493         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
47494         (_mm512_storeu_si512): Ditto.
47495
47496 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
47497
47498         PR target/52125
47499         * rtl.h (get_referenced_operands): Declare.
47500         * recog.c (get_referenced_operands): New function.
47501         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
47502         operands have been referenced when recording LO_SUM references.
47503
47504 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
47505
47506         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
47507
47508 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47509
47510         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
47511         Enable for generic and recent AMD targets.
47512
47513 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47514
47515         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
47516         ARG_SIZE note when adjustment was eliminated.
47517
47518 2014-01-22  Jeff Law  <law@redhat.com>
47519
47520         PR tree-optimization/59597
47521         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
47522         in file.  Accept new argument REGISTERING and use it to modify
47523         dump output appropriately.
47524         (register_jump_thread): Corresponding changes.
47525         (mark_threaded_blocks): Reinstate code to cancel unprofitable
47526         thread paths involving joiner blocks.  Add code to dump cancelled
47527         jump threading paths.
47528
47529 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
47530
47531         PR rtl-optimization/59477
47532         * lra-constraints.c (inherit_in_ebb): Process call for living hard
47533         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
47534
47535 2014-01-22  Tom Tromey  <tromey@redhat.com>
47536
47537         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
47538         PARAMS.
47539         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
47540
47541 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47542
47543         PR rtl-optimization/59896
47544         * lra-constraints.c (process_alt_operands): Check unused note for
47545         matched operands of insn with no output reloads.
47546
47547 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
47548
47549         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
47550         (mips_move_from_gpr_cost): Likewise.
47551
47552 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47553
47554         PR rtl-optimization/59858
47555         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
47556         ira_class_hard_regs_num.
47557         (process_alt_operands): Increase reject for dying matched operand.
47558
47559 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
47560
47561         PR target/59003
47562         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
47563         smaller than size, perform several stores or loads and stores
47564         at dst + count - size to store or copy all of size bytes, rather
47565         than just last modesize bytes.
47566
47567 2014-01-20  DJ Delorie  <dj@redhat.com>
47568
47569         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
47570         that CLOBBERs are REGs before propogating their values.
47571
47572 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
47573
47574         PR middle-end/59789
47575         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47576         (cgraph_inline_failed_type): New function.
47577         * cgraph.h (DEFCIFCODE): Add type.
47578         (cgraph_inline_failed_type_t): New enum.
47579         (cgraph_inline_failed_type): New prototype.
47580         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47581         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47582         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47583         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47584         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47585         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47586         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47587         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47588         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47589         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47590         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47591         OPTIMIZATION_MISMATCH.
47592         * tree-inline.c (expand_call_inline): Emit errors during
47593         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47594
47595 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47596
47597         PR target/59685
47598         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47599         mode attribute in insn output.
47600
47601 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
47602
47603         * output.h (output_constant): Delete.
47604         * varasm.c (output_constant): Make private.
47605
47606 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
47607
47608         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47609
47610 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47611
47612         PR middle-end/59860
47613         * tree.h (fold_builtin_strcat): New prototype.
47614         * builtins.c (fold_builtin_strcat): No longer static.  Add len
47615         argument, if non-NULL, don't call c_strlen.  Optimize
47616         directly into __builtin_memcpy instead of __builtin_strcpy.
47617         (fold_builtin_2): Adjust fold_builtin_strcat caller.
47618         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47619
47620 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47621
47622         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47623         for SImode_address_operand operands, having only a REG argument.
47624
47625 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47626
47627         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47628         loader name using mbig-endian.
47629         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47630
47631 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47632
47633         * doc/invoke.texi (-march): Clarify documentation for AArch64.
47634         (-mtune): Likewise.
47635         (-mcpu): Likewise.
47636
47637 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
47638
47639         * config/aarch64/aarch64-protos.h
47640         (aarch64_cannot_change_mode_class_ptr): Declare.
47641         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47642         aarch64_cannot_change_mode_class_ptr): New.
47643         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47644         backend hook aarch64_cannot_change_mode_class.
47645
47646 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47647
47648         * common/config/aarch64/aarch64-common.c
47649         (aarch64_handle_option): Don't handle any option order logic here.
47650         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47651         selected_cpu, warn on architecture version mismatch.
47652         (aarch64_override_options): Fix parsing order for option strings.
47653
47654 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47655             Iain Sandoe  <iain@codesourcery.com>
47656
47657         PR bootstrap/59496
47658         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47659         warning.  Amend comment to reflect current functionality.
47660
47661 2014-01-20  Richard Biener  <rguenther@suse.de>
47662
47663         PR middle-end/59860
47664         * builtins.c (fold_builtin_strcat): Remove case better handled
47665         by tree-ssa-strlen.c.
47666
47667 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
47668
47669         * config/aarch64/aarch64.opt
47670         (mcpu, march, mtune): Make case-insensitive.
47671
47672 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47673
47674         PR target/59880
47675         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47676         if operands[1] is a REG or ZERO_EXTEND of a REG.
47677
47678 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
47679
47680         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47681
47682 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
47683
47684         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47685         long non-pic millicode calls.
47686
47687 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47688
47689         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47690
47691 2014-01-19  Kito Cheng  <kito@0xlab.org>
47692
47693         * builtins.c (expand_movstr): Check movstr expand done or fail.
47694
47695 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47696             H.J. Lu  <hongjiu.lu@intel.com>
47697
47698         PR target/59379
47699         * config/i386/i386.md (*lea<mode>): Zero-extend return register
47700         to DImode for zero-extended addresses.
47701
47702 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
47703
47704         PR rtl-optimization/57763
47705         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47706         on the new indirect jump_insn and increment LABEL_NUSES (label).
47707
47708 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
47709
47710         PR bootstrap/59580
47711         PR bootstrap/59583
47712         * config.gcc (x86_archs): New variable.
47713         (x86_64_archs): Likewise.
47714         (x86_cpus): Likewise.
47715         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47716         --with-arch/--with-cpu= options.
47717         Support --with-arch=/--with-cpu={nehalem,westmere,
47718         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47719
47720 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47721
47722         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47723         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
47724
47725 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47726
47727         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47728
47729 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
47730
47731         PR target/58944
47732         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47733         clear cpp_get_options (parse_in)->warn_unused_macros for
47734         ix86_target_macros_internal with cpp_define.
47735
47736 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
47737
47738         * jump.c (delete_related_insns): Keep (use (insn))s.
47739         * reorg.c (redundant_insn): Check for barriers too.
47740
47741 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47742
47743         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47744
47745 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
47746
47747         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47748         call to $$dyncall when TARGET_LONG_CALLS is true.
47749
47750 2014-01-17  Jeff Law  <law@redhat.com>
47751
47752         * ree.c (combine_set_extension): Temporarily disable test for
47753         changing number of hard registers.
47754
47755 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47756
47757         PR middle-end/58125
47758         * ipa-inline-analysis.c (inline_free_summary):
47759         Do not free summary of aliases.
47760
47761 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47762
47763         PR middle-end/59706
47764         * gimplify.c (gimplify_expr): Use create_tmp_var
47765         instead of create_tmp_var_raw.  If cond doesn't have
47766         integral type, don't add the IFN_ANNOTATE builtin at all.
47767
47768 2014-01-17  Martin Jambor  <mjambor@suse.cz>
47769
47770         PR ipa/59736
47771         * ipa-cp.c (prev_edge_clone): New variable.
47772         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47773         Also resize prev_edge_clone vector.
47774         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47775         (ipcp_edge_removal_hook): New function.
47776         (ipcp_driver): Register ipcp_edge_removal_hook.
47777
47778 2014-01-17  Andrew Pinski  <apinski@cavium.com>
47779             Steve Ellcey  <sellcey@mips.com>
47780
47781         PR target/59462
47782         * config/mips/mips.c (mips_print_operand): Check operand mode instead
47783         of operator mode.
47784
47785 2014-01-17  Jeff Law  <law@redhat.com>
47786
47787         PR middle-end/57904
47788         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47789         so that pass_ccp runs first.
47790
47791 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47792
47793         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47794         (ix86_adjust_cost): Use !TARGET_XXX.
47795         (do_reorder_for_imul): Likewise.
47796         (swap_top_of_ready_list): Likewise.
47797         (ix86_sched_reorder): Likewise.
47798
47799 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47800
47801         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47802         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
47803         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
47804         (intel_memset): New.  Duplicate slm_memset.
47805         (intel_cost): New.  Duplicate slm_cost.
47806         (m_INTEL): New macro.
47807         (processor_target_table): Add "intel".
47808         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47809         with PROCESSOR_INTEL for "intel".
47810         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
47811         PROCESSOR_SILVERMONT.
47812         (ix86_issue_rate): Likewise.
47813         (ix86_adjust_cost): Likewise.
47814         (ia32_multipass_dfa_lookahead): Likewise.
47815         (swap_top_of_ready_list): Likewise.
47816         (ix86_sched_reorder): Likewise.
47817         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47818         instead of TARGET_OPT_AGU.
47819         * config/i386/i386.h (TARGET_INTEL): New.
47820         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47821         (processor_type): Add PROCESSOR_INTEL.
47822         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47823         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47824
47825 2014-01-17  Marek Polacek  <polacek@redhat.com>
47826
47827         PR c/58346
47828         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47829         size is zero.
47830
47831 2014-01-17  Richard Biener  <rguenther@suse.de>
47832
47833         PR tree-optimization/46590
47834         * opts.c (default_options_table): Add entries for
47835         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47836         all enabled at -O1 but not for -Og.
47837         * common.opt (fbranch-count-reg): Remove Init(1).
47838         (fmove-loop-invariants): Likewise.
47839         (ftree-pta): Likewise.
47840
47841 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47842
47843         * config/i386/i386.c (ix86_data_alignment): For compatibility with
47844         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47845         decls to at least the GCC 4.8 used alignments.
47846
47847         PR fortran/59440
47848         * tree-nested.c (convert_nonlocal_reference_stmt,
47849         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47850         of GIMPLE_BIND stmts, adjust associated decls.
47851
47852 2014-01-17  Richard Biener  <rguenther@suse.de>
47853
47854         PR tree-optimization/46590
47855         * vec.h (vec<>::bseach): New member function implementing
47856         binary search according to C89 bsearch.
47857         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47858         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47859         bitmap pointer again.  Make accesses_in_loop a flat array.
47860         (mem_ref_obstack): New global.
47861         (outermost_indep_loop): Adjust for mem_ref->stored changes.
47862         (mark_ref_stored): Likewise.
47863         (ref_indep_loop_p_2): Likewise.
47864         (set_ref_stored_in_loop): New helper function.
47865         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47866         (memref_free): Adjust.
47867         (record_mem_ref_loc): Simplify.
47868         (gather_mem_refs_stmt): Adjust.
47869         (sort_locs_in_loop_postorder_cmp): New function.
47870         (analyze_memory_references): Sort accesses_in_loop after
47871         loop postorder number.
47872         (find_ref_loc_in_loop_cmp): New function.
47873         (for_all_locs_in_loop): Find relevant cluster of locs in
47874         accesses_in_loop and iterate without recursion.
47875         (execute_sm): Avoid uninit warning.
47876         (struct ref_always_accessed): Simplify.
47877         (ref_always_accessed::operator ()): Likewise.
47878         (ref_always_accessed_p): Likewise.
47879         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47880         loop postorder numbers here.
47881         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47882         numbers.
47883
47884 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47885
47886         PR c++/57945
47887         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47888         on decls for which assemble_alias has been called.
47889
47890 2014-01-17  Nick Clifton  <nickc@redhat.com>
47891
47892         * config/msp430/msp430.opt: (mcpu): New option.
47893         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47894         (msp430_option_override): Parse target_cpu.  If the MCU name
47895         matches a generic string, clear target_mcu.
47896         (msp430_attr): Allow numeric interrupt values up to 63.
47897         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47898         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47899         option.
47900         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47901         Add mcpu matches.
47902         * config/msp430/msp430.md (popm): Use %J rather than %I.
47903         (addsi3): Use msp430_nonimmediate_operand for operand 2.
47904         (addhi_cy_i): Use immediate_operand for operand 2.
47905         * doc/invoke.texi: Document -mcpu option.
47906
47907 2014-01-17  Richard Biener  <rguenther@suse.de>
47908
47909         PR rtl-optimization/38518
47910         * df.h (df_analyze_loop): Declare.
47911         * df-core.c: Include cfgloop.h.
47912         (df_analyze_1): Split out main part of df_analyze.
47913         (df_analyze): Adjust.
47914         (loop_inverted_post_order_compute): New function.
47915         (loop_post_order_compute): Likewise.
47916         (df_analyze_loop): New function avoiding whole-function
47917         postorder computes.
47918         * loop-invariant.c (find_defs): Use df_analyze_loop.
47919         (find_invariants): Adjust.
47920         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47921
47922 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
47923
47924         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47925         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47926
47927 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
47928
47929         * ipa-ref.c (ipa_remove_stmt_references): Fix references
47930         traversal when removing references.
47931
47932 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
47933
47934         PR ipa/59775
47935         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47936
47937 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
47938
47939         PR middle-end/56791
47940         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47941         pushing a reload for an autoinc when we had previously reloaded an
47942         inner part of the address.
47943
47944 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
47945
47946         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47947         field.
47948         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47949         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47950         when not giving up or versioning for alias only because of
47951         loop->safelen.
47952         (vect_analyze_data_ref_dependences): Set to true.
47953         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47954         is a GIMPLE_PHI.
47955         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47956         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47957         to the condition.
47958
47959         PR middle-end/58344
47960         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47961
47962         PR target/59839
47963         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47964         operand 0 predicate for gathers, use a new pseudo as subtarget.
47965
47966 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47967
47968         PR middle-end/59609
47969         * lra-constraints.c (process_alt_operands): Add printing debug info.
47970         Check absence of input/output reloads for matched operands too.
47971
47972 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47973
47974         PR rtl-optimization/59835
47975         * ira.c (ira_init_register_move_cost): Increase cost for
47976         impossible modes.
47977
47978 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
47979
47980         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47981
47982 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
47983
47984         PR target/59780
47985         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47986         non-register objects.  Use gen_(high/low)part more consistently.
47987         Fix assertions.
47988
47989 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
47990
47991         PR target/59844
47992         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47993         endian support, remove tests for WORDS_BIG_ENDIAN.
47994         (p8_mfvsrd_3_<mode>): Likewise.
47995         (reload_gpr_from_vsx<mode>): Likewise.
47996         (reload_gpr_from_vsxsf): Likewise.
47997         (p8_mfvsrd_4_disf): Likewise.
47998
47999 2014-01-16  Richard Biener  <rguenther@suse.de>
48000
48001         PR rtl-optimization/46590
48002         * lcm.c (compute_antinout_edge): Use postorder iteration.
48003         (compute_laterin): Use inverted postorder iteration.
48004
48005 2014-01-16  Nick Clifton  <nickc@redhat.com>
48006
48007         PR middle-end/28865
48008         * varasm.c (output_constant): Return the number of bytes actually
48009         emitted.
48010         (output_constructor_array_range): Update the field size with the
48011         number of bytes emitted by output_constant.
48012         (output_constructor_regular_field): Likewise.  Also do not
48013         complain if the total number of bytes emitted is now greater
48014         than the expected fieldpos.
48015         * output.h (output_constant): Update prototype and descriptive comment.
48016
48017 2014-01-16  Marek Polacek  <polacek@redhat.com>
48018
48019         PR middle-end/59827
48020         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
48021         it is error_mark_node.
48022
48023 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
48024
48025         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
48026         VALID_AVX256_REG_OR_OI_MODE.
48027
48028 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
48029
48030         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
48031         current procedure should be profiled.
48032
48033 2014-01-15  Andrew Pinski  <apinski@cavium.com>
48034
48035         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
48036         of moving from/to the STACK_REG register class.
48037
48038 2014-01-15  Richard Henderson  <rth@redhat.com>
48039
48040         PR debug/54694
48041         * reginfo.c (global_regs_decl): Globalize.
48042         * rtl.h (global_regs_decl): Declare.
48043         * ira.c (do_reload): Diagnose frame_pointer_needed and it
48044         reserved via global_regs.
48045
48046 2014-01-15  Teresa Johnson  <tejohnson@google.com>
48047
48048         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
48049
48050 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
48051
48052         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
48053         and vmulosh rather than call gen_vec_widen_smult_*.
48054         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
48055         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
48056         (vec_widen_smult_even_v16qi): Likewise.
48057         (vec_widen_umult_even_v8hi): Likewise.
48058         (vec_widen_smult_even_v8hi): Likewise.
48059         (vec_widen_umult_odd_v16qi): Likewise.
48060         (vec_widen_smult_odd_v16qi): Likewise.
48061         (vec_widen_umult_odd_v8hi): Likewise.
48062         (vec_widen_smult_odd_v8hi): Likewise.
48063         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
48064         vmuloub rather than call gen_vec_widen_umult_*.
48065         (vec_widen_umult_lo_v16qi): Likewise.
48066         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
48067         vmulosb rather than call gen_vec_widen_smult_*.
48068         (vec_widen_smult_lo_v16qi): Likewise.
48069         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
48070         rather than call gen_vec_widen_umult_*.
48071         (vec_widen_umult_lo_v8hi): Likewise.
48072         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
48073         rather than call gen_vec_widen_smult_*.
48074         (vec_widen_smult_lo_v8hi): Likewise.
48075
48076 2014-01-15  Jeff Law  <law@redhat.com>
48077
48078         PR tree-optimization/59747
48079         * ree.c (find_and_remove_re): Properly handle case where a second
48080         eliminated extension requires widening a copy created for elimination
48081         of a prior extension.
48082         (combine_set_extension): Ensure that the number of hard regs needed
48083         for a destination register does not change when we widen it.
48084
48085 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
48086
48087         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
48088         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
48089         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
48090         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
48091         (avr-*-rtems*): Likewise.
48092         (bfin*-rtems*): Likewise.
48093         (moxie-*-rtems*): Likewise.
48094         (h8300-*-rtems*): Likewise.
48095         (i[34567]86-*-rtems*): Likewise.
48096         (lm32-*-rtems*): Likewise.
48097         (m32r-*-rtems*): Likewise.
48098         (m68k-*-rtems*): Likewise.
48099         (microblaze*-*-rtems*): Likewise.
48100         (mips*-*-rtems*): Likewise.
48101         (powerpc-*-rtems*): Likewise.
48102         (sh-*-rtems*): Likewise.
48103         (sparc-*-rtems*): Likewise.
48104         (sparc64-*-rtems*): Likewise.
48105         (v850-*-rtems*): Likewise.
48106         (m32c-*-rtems*): Likewise.
48107
48108 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
48109
48110         PR rtl-optimization/59511
48111         * ira.c (ira_init_register_move_cost): Use memory costs for some
48112         cases of register move cost calculations.
48113         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
48114         instead of BB frequency.
48115         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
48116         * lra-assigns.c (find_hard_regno_for): Ditto.
48117
48118 2014-01-15  Richard Biener  <rguenther@suse.de>
48119
48120         PR tree-optimization/59822
48121         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
48122         (vectorizable_load): Use it to hoist defs of uses of invariant
48123         loads out of the loop.
48124
48125 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
48126             Kugan Vivekanandarajah  <kuganv@linaro.org>
48127
48128         PR target/59695
48129         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
48130         truncation.
48131
48132 2014-01-15  Richard Biener  <rguenther@suse.de>
48133
48134         PR rtl-optimization/59802
48135         * lcm.c (compute_available): Use inverted postorder to seed
48136         the initial worklist.
48137
48138 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
48139
48140         PR target/59803
48141         * config/s390/s390.c (s390_preferred_reload_class): Don't return
48142         ADDR_REGS for invalid symrefs in non-PIC code.
48143
48144 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
48145
48146         PR other/58712
48147         * builtins.c (determine_block_size): Initialize *probable_max_size
48148         even if len_rtx is CONST_INT.
48149
48150 2014-01-14  Andrew Pinski  <apinski@cavium.com>
48151
48152         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
48153         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
48154         (cortexa53_tunings): Likewise.
48155         (aarch64_sched_issue_rate): New function.
48156         (TARGET_SCHED_ISSUE_RATE): Define.
48157
48158 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
48159
48160         * ira-costs.c (find_costs_and_classes): Add missed
48161         ira_init_register_move_cost_if_necessary.
48162
48163 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
48164
48165         PR target/59787
48166         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
48167
48168 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
48169
48170         PR target/59794
48171         * config/i386/i386.c (type_natural_mode): Add a bool parameter
48172         to indicate if type is used for function return value.  Warn ABI
48173         change if the vector mode isn't available for function return value.
48174         (ix86_function_arg_advance): Pass false to type_natural_mode.
48175         (ix86_function_arg): Likewise.
48176         (ix86_gimplify_va_arg): Likewise.
48177         (function_arg_32): Don't warn ABI change.
48178         (ix86_function_value): Pass true to type_natural_mode.
48179         (ix86_return_in_memory): Likewise.
48180         (ix86_struct_value_rtx): Removed.
48181         (TARGET_STRUCT_VALUE_RTX): Likewise.
48182
48183 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
48184
48185         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
48186         converting a conditional jump into a conditional return.
48187
48188 2014-01-14  Richard Biener  <rguenther@suse.de>
48189
48190         PR tree-optimization/58921
48191         PR tree-optimization/59006
48192         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
48193         hoisting invariant stmts.
48194         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
48195         invariant loads on the preheader edge if possible.
48196
48197 2014-01-14  Joey Ye  <joey.ye@arm.com>
48198
48199         * doc/plugin.texi (Building GCC plugins): Update to C++.
48200
48201 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
48202
48203         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
48204         (_mm_rcp28_round_ss): Ditto.
48205         (_mm_rsqrt28_round_sd): Ditto.
48206         (_mm_rsqrt28_round_ss): Ditto.
48207         (_mm_rcp28_sd): Ditto.
48208         (_mm_rcp28_ss): Ditto.
48209         (_mm_rsqrt28_sd): Ditto.
48210         (_mm_rsqrt28_ss): Ditto.
48211         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
48212         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
48213         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
48214         (IX86_BUILTIN_RCP28SD): Ditto.
48215         (IX86_BUILTIN_RCP28SS): Ditto.
48216         (IX86_BUILTIN_RSQRT28SD): Ditto.
48217         (IX86_BUILTIN_RSQRT28SS): Ditto.
48218         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
48219         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
48220         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
48221         (ix86_expand_special_args_builtin): Expand new FTYPE.
48222         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
48223         (srcp14<mode>): Make insn unary.
48224         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
48225         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
48226         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
48227         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
48228         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
48229         Fix rounding: make it SAE only.
48230         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
48231         Ditto.
48232         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
48233         Ditto.
48234         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
48235         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
48236         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
48237         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
48238         (round_saeonly_mask_scalar_operand4): Ditto.
48239         (round_saeonly_mask_scalar_op3): Ditto.
48240         (round_saeonly_mask_scalar_op4): Ditto.
48241
48242 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48243
48244         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
48245         Implement -maltivec=be for vec_insert and vec_extract.
48246
48247 2014-01-10  DJ Delorie  <dj@redhat.com>
48248
48249         * config/msp430/msp430.md (call_internal): Don't allow memory
48250         references with SP as the base register.
48251         (call_value_internal): Likewise.
48252         * config/msp430/constraints.md (Yc): New.  For memory references
48253         that don't use SP as a base register.
48254
48255         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
48256         "an integer without a # prefix"
48257         * config/msp430/msp430.md (epilogue_helper): Use it.
48258
48259 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
48260
48261         PR target/59617
48262         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
48263         AVX512F gather builtins.
48264         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
48265         on gather decls with INTEGER_TYPE masktype.
48266         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
48267         directly into the builtin rather than hoisting it before loop.
48268
48269         PR tree-optimization/59387
48270         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
48271         (scev_const_prop): If folded_casts and type has undefined overflow,
48272         use force_gimple_operand instead of force_gimple_operand_gsi and
48273         for each added stmt if it is assign with
48274         arith_code_with_undefined_signed_overflow, call
48275         rewrite_to_defined_overflow.
48276         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
48277         gimple-fold.h instead.
48278         (arith_code_with_undefined_signed_overflow,
48279         rewrite_to_defined_overflow): Moved to ...
48280         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
48281         rewrite_to_defined_overflow): ... here.  No longer static.
48282         Include gimplify-me.h.
48283         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
48284         rewrite_to_defined_overflow): New prototypes.
48285
48286 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48287
48288         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
48289
48290 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
48291
48292         * builtins.c (get_object_alignment_2): Minor tweak.
48293         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
48294
48295 2014-01-13  Christian Bruel  <christian.bruel@st.com>
48296
48297         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
48298         optimized non constant lengths.
48299
48300 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
48301
48302         PR libgomp/59194
48303         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
48304         load as __atomic_load_N if possible.
48305
48306 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
48307
48308         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
48309         target parameter.
48310         (rs6000_expand_builtin): Adjust call.
48311
48312 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
48313
48314         PR target/58115
48315         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
48316         * config/rs6000/rs6000.c: Include target-globals.h.
48317         (rs6000_set_current_function): Instead of doing target_reinit
48318         unconditionally, use save_target_globals_default_opts and
48319         restore_target_globals.
48320
48321         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
48322         FPSCR.
48323         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
48324         (rs6000_expand_builtin): Handle mffs and mtfsf.
48325         (rs6000_init_builtins): Define mffs and mtfsf.
48326         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
48327         (rs6000_mffs): New pattern.
48328         (rs6000_mtfsf): New pattern.
48329
48330 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
48331
48332         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
48333         Start narrowing with START.  Apply candidate-use pair
48334         and check overall cost in narrowing.
48335         (iv_ca_prune): Pass new argument.
48336
48337 2014-01-10  Jeff Law  <law@redhat.com>
48338
48339         PR middle-end/59743
48340         * ree.c (combine_reaching_defs): Ensure the defining statement
48341         occurs before the extension when optimizing extensions with
48342         different source and destination hard registers.
48343
48344 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
48345
48346         PR ipa/58585
48347         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
48348         vtables into the type inheritance graph.
48349
48350 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48351
48352         PR rtl-optimization/59754
48353         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
48354         modes in the REGNO != REGNO case.
48355
48356 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48357
48358         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
48359
48360 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48361
48362         PR tree-optimization/59745
48363         * tree-predcom.c (tree_predictive_commoning_loop): Call
48364         free_affine_expand_cache if giving up because components is NULL.
48365
48366         * target-globals.c (save_target_globals): Allocate < 4KB structs using
48367         GC in payload of target_globals struct instead of allocating them on
48368         the heap and the larger structs separately using GC.
48369         * target-globals.h (struct target_globals): Make regs, hard_regs,
48370         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
48371         of GTY((skip)) and change type to void *.
48372         (reset_target_globals): Cast loads from those fields to corresponding
48373         types.
48374
48375 2014-01-10  Steve Ellcey  <sellcey@mips.com>
48376
48377         PR plugins/59335
48378         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
48379         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
48380         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
48381
48382 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
48383
48384         PR target/59744
48385         * aarch64-modes.def (CC_Zmode): New flags mode.
48386         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
48387         represents an equality.
48388         (aarch64_get_condition_code): Handle CC_Zmode.
48389         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
48390
48391 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
48392
48393         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
48394         extraction in good case.
48395
48396 2014-01-10  Richard Biener  <rguenther@suse.de>
48397
48398         PR tree-optimization/59374
48399         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
48400         checking after SLP discovery.  Mark stmts not participating
48401         in any SLP instance properly.
48402
48403 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48404
48405         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
48406         when handling a SET rtx.
48407
48408 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48409
48410         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
48411         (cortex-a57): Likewise.
48412         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
48413
48414 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48415
48416         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
48417         non-iwmmxt builtins.
48418
48419 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
48420
48421         PR ipa/58252
48422         PR ipa/59226
48423         * ipa-devirt.c record_target_from_binfo): Take as argument
48424         stack of binfos and lookup matching one for virtual inheritance.
48425         (possible_polymorphic_call_targets_1): Update.
48426
48427 2014-01-10  Huacai Chen  <chenhc@lemote.com>
48428
48429         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
48430         kernel strings for Loongson-2E/2F/3A.
48431
48432 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48433
48434         PR middle-end/59670
48435         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
48436         is_gimple_call before calling gimple_call_internal_p.
48437
48438 2014-01-09  Steve Ellcey  <sellcey@mips.com>
48439
48440         * Makefile.in (TREE_FLOW_H): Remove.
48441         (TREE_SSA_H): Add file names from tree-flow.h.
48442         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
48443         * tree.h: Remove tree-flow.h reference.
48444         * hash-table.h: Remove tree-flow.h reference.
48445         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
48446         reference with tree-ssa-loop.h.
48447
48448 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48449
48450         * doc/invoke.texi: Add -maltivec={be,le} options, and document
48451         default element-order behavior for -maltivec.
48452         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
48453         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
48454         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
48455         when targeting big endian, at least for now.
48456         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
48457
48458 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48459
48460         PR middle-end/47735
48461         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
48462         var satisfies use_register_for_decl, just take into account type
48463         alignment, rather than decl alignment.
48464
48465         PR tree-optimization/59622
48466         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
48467         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
48468         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
48469         Don't devirtualize for inplace at all.  For targets.length () == 1,
48470         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
48471
48472 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48473
48474         * config/i386/i386.md (cpu): Remove the unused btver1.
48475
48476 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48477
48478         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
48479
48480 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48481
48482         PR target/58115
48483         * tree-core.h (struct target_globals): New forward declaration.
48484         (struct tree_target_option): Add globals field.
48485         * tree.h (TREE_TARGET_GLOBALS): Define.
48486         (prepare_target_option_nodes_for_pch): New prototype.
48487         * target-globals.h (struct target_globals): Define even if
48488         !SWITCHABLE_TARGET.
48489         * tree.c (prepare_target_option_node_for_pch,
48490         prepare_target_option_nodes_for_pch): New functions.
48491         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
48492         * config/i386/i386.c: Include target-globals.h.
48493         (ix86_set_current_function): Instead of doing target_reinit
48494         unconditionally, use save_target_globals_default_opts and
48495         restore_target_globals.
48496
48497 2014-01-09  Richard Biener  <rguenther@suse.de>
48498
48499         PR tree-optimization/59715
48500         * tree-cfg.h (split_critical_edges): Declare.
48501         * tree-cfg.c (split_critical_edges): Export.
48502         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
48503
48504 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
48505
48506         * cfgexpand.c (expand_stack_vars): Optionally disable
48507         asan stack protection.
48508         (expand_used_vars): Likewise.
48509         (partition_stack_vars): Likewise.
48510         * asan.c (asan_emit_stack_protection): Optionally disable
48511         after return stack usage.
48512         (instrument_derefs): Optionally disable memory access instrumentation.
48513         (instrument_builtin_call): Likewise.
48514         (instrument_strlen_call): Likewise.
48515         (asan_protect_global): Optionally disable global variables protection.
48516         * doc/invoke.texi: Added doc for new options.
48517         * params.def: Added new options.
48518         * params.h: Likewise.
48519
48520 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48521
48522         PR rtl-optimization/59724
48523         * ifcvt.c (cond_exec_process_if_block): Don't call
48524         flow_find_head_matching_sequence with 0 longest_match.
48525         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
48526         non-active insns if !stop_after.
48527         (try_head_merge_bb): Revert 2014-01-07 changes.
48528
48529 2014-01-08  Jeff Law  <law@redhat.com>
48530
48531         * ree.c (get_sub_rtx): New function, extracted from...
48532         (merge_def_and_ext): Here.
48533         (combine_reaching_defs): Use get_sub_rtx.
48534
48535 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
48536
48537         * cgraph.h (varpool_variable_node): Do not choke on null node.
48538
48539 2014-01-08  Catherine Moore  <clm@codesourcery.com>
48540
48541         * config/mips/mips.md (simple_return): Attempt to use JRC
48542         for microMIPS.
48543         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
48544
48545 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48546
48547         PR rtl-optimization/59137
48548         * reorg.c (steal_delay_list_from_target): Call update_block for
48549         elided insns.
48550         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
48551
48552 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48553
48554         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
48555         two duplicate entries.
48556
48557 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48558
48559         Revert:
48560         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
48561
48562         * config/mips/mips.c (mips_truncated_op_cost): New function.
48563         (mips_rtx_costs): Adjust test for BADDU.
48564         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
48565
48566         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
48567
48568         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
48569         (*baddu_si): ...this new pattern.
48570
48571 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48572
48573         PR ipa/59722
48574         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48575
48576 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
48577
48578         PR middle-end/57748
48579         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48580         inner_reference_p.
48581         (expand_expr, expand_normal): Adjust.
48582         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48583         inner_reference_p. Use inner_reference_p to expand inner references.
48584         (store_expr): Adjust.
48585         * cfgexpand.c (expand_call_stmt): Adjust.
48586
48587 2014-01-08  Rong Xu  <xur@google.com>
48588
48589         * gcov-io.c (gcov_var): Move from gcov-io.h.
48590         (gcov_position): Ditto.
48591         (gcov_is_error): Ditto.
48592         (gcov_rewrite): Ditto.
48593         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48594         only part to libgcc/libgcov.h.
48595
48596 2014-01-08  Marek Polacek  <polacek@redhat.com>
48597
48598         PR middle-end/59669
48599         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48600
48601 2014-01-08  Marek Polacek  <polacek@redhat.com>
48602
48603         PR sanitizer/59667
48604         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48605
48606 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48607
48608         PR rtl-optimization/59649
48609         * stor-layout.c (get_mode_bounds): For BImode return
48610         0 and STORE_FLAG_VALUE.
48611
48612 2014-01-08  Richard Biener  <rguenther@suse.de>
48613
48614         PR middle-end/59630
48615         * gimple.h (is_gimple_builtin_call): Remove.
48616         (gimple_builtin_call_types_compatible_p): New.
48617         (gimple_call_builtin_p): New overload.
48618         * gimple.c (is_gimple_builtin_call): Remove.
48619         (validate_call): Rename to ...
48620         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
48621         check return types.
48622         (validate_type): New static function.
48623         (gimple_call_builtin_p): New overload and adjust.
48624         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48625         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
48626         (gimple_fold_stmt_to_constant_1): Likewise.
48627         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48628
48629 2014-01-08  Richard Biener  <rguenther@suse.de>
48630
48631         PR middle-end/59471
48632         * gimplify.c (gimplify_expr): Gimplify register-register type
48633         VIEW_CONVERT_EXPRs to separate stmts.
48634
48635 2014-01-07  Jeff Law  <law@redhat.com>
48636
48637         PR middle-end/53623
48638         * ree.c (combine_set_extension): Handle case where source
48639         and destination registers in an extension insn are different.
48640         (combine_reaching_defs): Allow source and destination registers
48641         in extension to be different under limited circumstances.
48642         (add_removable_extension): Remove restriction that the
48643         source and destination registers in the extension are the same.
48644         (find_and_remove_re): Emit a copy from the extension's
48645         destination to its source after the defining insn if
48646         the source and destination registers are different.
48647
48648         PR middle-end/59285
48649         * ifcvt.c (merge_if_block): If we are merging a block with more than
48650         one successor with a block with no successors, remove any BARRIER
48651         after the second block.
48652
48653 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
48654
48655         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48656
48657 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
48658
48659         PR target/59652
48660         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48661         for 14-bit register offsets when INT14_OK_STRICT is false.
48662
48663 2014-01-07  Roland Stigge  <stigge@antcom.de>
48664             Michael Meissner  <meissner@linux.vnet.ibm.com>
48665
48666         PR 57386/target
48667         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48668         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
48669
48670 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
48671
48672         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48673         -mcpu.
48674
48675 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
48676
48677         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48678         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48679         rtx is const0_rtx or not.
48680
48681 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
48682
48683         PR target/58115
48684         * target-globals.c (save_target_globals): Remove this_fn_optab
48685         handling.
48686         * toplev.c: Include optabs.h.
48687         (target_reinit): Temporarily restore the global options if another
48688         set of options are in force.
48689
48690 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
48691
48692         PR rtl-optimization/58668
48693         * cfgcleanup.c (flow_find_cross_jump): Don't count
48694         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
48695         to determine what is counted.
48696         (flow_find_head_matching_sequence): Use active_insn_p to determine
48697         what is counted.
48698         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48699         counting change.
48700         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48701         determine what is counted.
48702
48703         PR tree-optimization/59643
48704         * tree-predcom.c (split_data_refs_to_components): If one dr is
48705         read and one write, determine_offset fails and the write isn't
48706         in the bad component, just put the read into the bad component.
48707
48708 2014-01-07  Mike Stump  <mikestump@comcast.net>
48709             Jakub Jelinek  <jakub@redhat.com>
48710
48711         PR pch/59436
48712         * tree-core.h (struct tree_optimization_option): Change optabs
48713         type from unsigned char * to void *.
48714         * optabs.c (init_tree_optimization_optabs): Adjust
48715         TREE_OPTIMIZATION_OPTABS initialization.
48716
48717 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
48718
48719         PR target/59644
48720         * config/i386/i386.h (struct machine_function): Add
48721         no_drap_save_restore field.
48722         * config/i386/i386.c (ix86_save_reg): Use
48723         !cfun->machine->no_drap_save_restore instead of
48724         crtl->stack_realign_needed.
48725         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48726         this function clears frame_pointer_needed.  Set
48727         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48728         and DRAP reg is needed.
48729
48730 2014-01-06  Marek Polacek  <polacek@redhat.com>
48731
48732         PR c/57773
48733         * doc/implement-c.texi: Mention that other integer types are
48734         permitted as bit-field types in strictly conforming mode.
48735
48736 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
48737
48738         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48739         is newly allocated.
48740
48741 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
48742
48743         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48744
48745 2014-01-06  Martin Jambor  <mjambor@suse.cz>
48746
48747         PR ipa/59008
48748         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48749         to int.
48750         * ipa-prop.c (ipa_print_node_params): Fix indentation.
48751
48752 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
48753
48754         PR debug/59350
48755         PR debug/59510
48756         * var-tracking.c (add_stores): Preserve the value of the source even if
48757         we don't record the store.
48758
48759 2014-01-06  Terry Guo  <terry.guo@arm.com>
48760
48761         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48762
48763 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
48764
48765         PR bootstrap/59541
48766         * config/darwin.c (darwin_function_section): Adjust return values to
48767         correspond to optimisation changes made in r206070.
48768
48769 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
48770
48771         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48772         from prefetch_block tune setting.
48773         (nocona_cost): Correct size of prefetch block to 64.
48774
48775 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
48776
48777         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48778         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48779         used to save the static chain register in the computation of the offset
48780         from which the FP registers need to be restored.
48781
48782 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
48783
48784         PR tree-optimization/59519
48785         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48786         ICE if get_current_def (current_new_name) is already non-NULL, as long
48787         as it is a phi result of some other phi in *new_exit_bb that has
48788         the same argument.
48789
48790         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48791         or vmovdqu* for misaligned_operand.
48792         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48793         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48794         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48795         aligned_mem for AVX512F masked aligned load and store builtins and for
48796         non-temporal moves.
48797
48798 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
48799
48800         PR tree-optimization/59651
48801         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48802         Address range for negative step should be added by TYPE_SIZE_UNIT.
48803
48804 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
48805
48806         * config/m68k/m68k.c (handle_move_double): Handle pushes with
48807         overlapping registers also for registers other than the stack pointer.
48808
48809 2014-01-03  Marek Polacek  <polacek@redhat.com>
48810
48811         PR other/59661
48812         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48813         __builtin_FILE.
48814
48815 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
48816
48817         PR target/59625
48818         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48819         asm goto as jump.
48820
48821         * config/i386/i386.md (MODE_SIZE): New mode attribute.
48822         (push splitter): Use <P:MODE_SIZE> instead of
48823         GET_MODE_SIZE (<P:MODE>mode).
48824         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48825         (mov -1, reg peephole2): Likewise.
48826         * config/i386/sse.md (*mov<mode>_internal,
48827         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48828         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48829         *<code><mode>3, *andnot<mode>3<mask_name>,
48830         <mask_codefor><code><mode>3<mask_name>): Likewise.
48831         * config/i386/subst.md (mask_mode512bit_condition,
48832         sd_mask_mode512bit_condition): Likewise.
48833
48834 2014-01-02  Xinliang David Li  <davidxl@google.com>
48835
48836         PR tree-optimization/59303
48837         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48838         (dump_predicates): Better output format.
48839         (pred_equal_p): New function.
48840         (is_neq_relop_p): Ditto.
48841         (is_neq_zero_form_p): Ditto.
48842         (pred_expr_equal_p): Ditto.
48843         (pred_neg_p): Ditto.
48844         (simplify_pred): Ditto.
48845         (simplify_preds_2): Ditto.
48846         (simplify_preds_3): Ditto.
48847         (simplify_preds_4): Ditto.
48848         (simplify_preds): Ditto.
48849         (push_pred): Ditto.
48850         (push_to_worklist): Ditto.
48851         (get_pred_info_from_cmp): Ditto.
48852         (is_degenerated_phi): Ditto.
48853         (normalize_one_pred_1): Ditto.
48854         (normalize_one_pred): Ditto.
48855         (normalize_one_pred_chain): Ditto.
48856         (normalize_preds): Ditto.
48857         (normalize_cond_1): Remove function.
48858         (normalize_cond): Ditto.
48859         (is_gcond_subset_of): Ditto.
48860         (is_subset_of_any): Ditto.
48861         (is_or_set_subset_of): Ditto.
48862         (is_and_set_subset_of): Ditto.
48863         (is_norm_cond_subset_of): Ditto.
48864         (pred_chain_length_cmp): Ditto.
48865         (convert_control_dep_chain_into_preds): Type change.
48866         (find_predicates): Ditto.
48867         (find_def_preds): Ditto.
48868         (destroy_predicates_vecs): Ditto.
48869         (find_matching_predicates_in_rest_chains): Ditto.
48870         (use_pred_not_overlap_with_undef_path_pred): Ditto.
48871         (is_pred_expr_subset): Ditto.
48872         (is_pred_chain_subset_of): Ditto.
48873         (is_included_in): Ditto.
48874         (is_superset_of): Ditto.
48875
48876 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48877
48878         Update copyright years.
48879
48880 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48881
48882         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48883         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48884         config/arc/arc.md, config/arc/arc.opt,
48885         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48886         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48887         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48888         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48889         config/linux-protos.h, config/linux.c, config/winnt-c.c,
48890         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48891         vtable-verify.c, vtable-verify.h: Use the standard form for the
48892         copyright notice.
48893
48894 2014-01-02  Tobias Burnus  <burnus@net-b.de>
48895
48896         * gcc.c (process_command): Update copyright notice dates.
48897         * gcov-dump.c: Ditto.
48898         * gcov.c: Ditto.
48899         * doc/cpp.texi: Bump @copying's copyright year.
48900         * doc/cppinternals.texi: Ditto.
48901         * doc/gcc.texi: Ditto.
48902         * doc/gccint.texi: Ditto.
48903         * doc/gcov.texi: Ditto.
48904         * doc/install.texi: Ditto.
48905         * doc/invoke.texi: Ditto.
48906
48907 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
48908
48909         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48910
48911 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
48912
48913         * config/i386/sse.md (*mov<mode>_internal): Guard
48914         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48915
48916         PR rtl-optimization/59647
48917         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48918         new_rtx into UNSIGNED_FLOAT rtxes.
48919 \f
48920 Copyright (C) 2014 Free Software Foundation, Inc.
48921
48922 Copying and distribution of this file, with or without modification,
48923 are permitted in any medium without royalty provided the copyright
48924 notice and this notice are preserved.