re PR target/64358 (Wrong code for __int128 operations in powerpc64le)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-20  Segher Boessenkool  <segher@kernel.crashing.org>
2
3         PR target/64358
4         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
5         input operands if only the second is inverted.
6         * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
7         Swap BOOL_REGS_OP1 and BOOL_REGS_OP2.  Correct arguments to
8         rs6000_split_logical.
9         (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
10
11 2014-12-20  Martin Uecker <uecker@eecs.berkeley.edu>
12
13         * doc/invoke.texi: Document -Wdiscarded-array-qualifiers.
14         * doc/extend.texi: Document new behavior for pointers to arrays
15         with qualifiers.
16
17 2014-12-19  Jan Hubicka  <hubicka@ucw.cz>
18
19         * hash-table.h (struct pointer_hash): Fix formating.
20         (hash_table_higher_prime_index): Declare pure.
21         (hash_table_mod2, hash_table_mod1, mul_mod): Move inline;
22         assume that uint64_t always exists.
23         (hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert.
24         (hash_table<Descriptor, Allocator, false>::expand ()): Fix formating.
25         (hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)):
26         Use checking assert.
27         * hash-table.c: Remove #if 0 code.
28         (hash_table_higher_prime_index): Use gcc_assert.
29         (mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h
30
31 2014-12-19  Matthew Fortune  <matthew.fortune@imgtec.com>
32
33         * config.gcc: Support mips*-img-linux* and mips*-img-elf*.
34         * config/mips/mti-linux.h: Support mips32r6 as being the default arch.
35         * config/mips/t-img-elf: New.
36         * config/mips/t-img-linux: New.
37
38 2014-12-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39
40         * config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support.
41         * config/mips/constraints.md (ZD): Add r6 restrictions.
42         * config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC.
43         * config/mips/loongson.md
44         (<u>div<mode>3, <u>mod<mode>3): Move to mips.md.
45         * config/mips/mips-cpus.def (mips32r6, mips64r6): Define.
46         * config/mips/mips-modes.def (CCF): New mode.
47         * config/mips/mips-protos.h
48         (mips_9bit_offset_address_p): New prototype.
49         * config/mips/mips-tables.opt: Regenerate.
50         * config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6.
51         (mips_rtx_cost_data): Add pseudo-processors W32 and W64.
52         (mips_9bit_offset_address_p): New function.
53         (mips_rtx_costs): Account for R6 multiply and FMA instructions.
54         (mips_emit_compare): Implement R6 FPU comparisons.
55         (mips_expand_conditional_move): Implement R6 selects.
56         (mips_expand_conditional_trap): Account for removed trap immediate.
57         (mips_expand_block_move): Disable inline move when LWL/LWR are removed.
58         (mips_print_float_branch_condition): Update for R6 FPU branches.
59         (mips_print_operand): Handle CCF mode compares.
60         (mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save
61         MD_REGS for R6.
62         (mips_hard_regno_mode_ok_p): Support CCF mode.
63         (mips_mode_ok_for_mov_fmt_p): Likewise.
64         (mips_secondary_reload_class): CCFmode can be loaded directly.
65         (mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions.
66         (mips_option_override): Ensure R6 is used with fp64.  Set default
67         mips_nan modes.  Check for mips_nan support.  Prevent DSP with R6.
68         (mips_conditional_register_usage): Disable MD_REGS for R6. Disable
69         FPSW for R6.
70         (mips_mulsidi3_gen_fn): Support R6 multiply instructions.
71         * config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define.
72         (TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64.
73         (ISA_HAS_JR): New macro.
74         (ISA_HAS_HILO): New macro.
75         (ISA_HAS_R6MUL): Likewise.
76         (ISA_HAS_R6DMUL): Likewise.
77         (ISA_HAS_R6DIV): Likewise.
78         (ISA_HAS_R6DDIV): Likewise.
79         (ISA_HAS_CCF): Likewise.
80         (ISA_HAS_SEL): Likewise.
81         (ISA_HAS_COND_TRAPI): Likewise.
82         (ISA_HAS_FP_MADDF_MSUBF): Likewise.
83         (ISA_HAS_LWL_LWR): Likewise.
84         (ISA_HAS_IEEE_754_LEGACY): Likewise.
85         (ISA_HAS_IEEE_754_2008): Likewise.
86         (ISA_HAS_PREFETCH_9BIT): Likewise.
87         (MIPSR6_9BIT_OFFSET_P): New macro.
88         (BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS.
89         (DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC.
90         (MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6.
91         (MIPS_ISA_LEVEL_SPEC): Likewise.
92         (MIPS_ISA_SYNCI_SPEC): Likewise.
93         (ISA_HAS_64BIT_REGS): Likewise.
94         (ISA_HAS_BRANCHLIKELY): Likewise.
95         (ISA_HAS_MUL3): Likewise.
96         (ISA_HAS_DMULT): Likewise.
97         (ISA_HAS_DDIV): Likewise.
98         (ISA_HAS_DIV): Likewise.
99         (ISA_HAS_MULT): Likewise.
100         (ISA_HAS_FP_CONDMOVE): Likewise.
101         (ISA_HAS_8CC): Likewise.
102         (ISA_HAS_FP4): Likewise.
103         (ISA_HAS_PAIRED_SINGLE): Likewise.
104         (ISA_HAS_MADD_MSUB): Likewise.
105         (ISA_HAS_FP_RECIP_RSQRT): Likewise.
106         * config/mips/mips.md (processor): Add w32 and w64.
107         (FPCC): New mode iterator.
108         (reg): Add CCF mode.
109         (fpcmp): New mode attribute.
110         (fcond): Add ordered, ltgt and ne codes.
111         (fcond): Update code attribute.
112         (sel): New code attribute.
113         (selinv): Likewise.
114         (ctrap<mode>4): Update condition.
115         (*conditional_trap_reg<mode>): New define_insn.
116         (*conditional_trap<mode>): Update condition.
117         (mul<mode>3): Expand R6 multiply instructions.
118         (<su>mulsi3_highpart): Likewise.
119         (<su>muldi3_highpart): Likewise.
120         (mul<mode>3_mul3_loongson): Rename...
121         (mul<mode>3_mul3_hilo): To this.  Add R6 mul instruction.
122         (<u>mulsidi3_32bit_r6): New expander.
123         (<u>mulsidi3_32bit): Restrict to pre-r6 multiplies.
124         (<u>mulsidi3_32bit_r4000): Likewise.
125         (<u>mulsidi3_64bit): Likewise.
126         (<su>mulsi3_highpart_internal): Likewise.
127         (mulsidi3_64bit_r6dmul): New instruction.
128         (<su>mulsi3_highpart_r6): Likewise.
129         (<su>muldi3_highpart_r6): Likewise.
130         (fma<mode>4): Likewise.
131         (movccf): Likewise.
132         (*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise.
133         (*sel<mode>): Likewise.
134         (<u>div<mode>3): Moved from loongson.md.  Add R6 instructions.
135         (<u>mod<mode>3): Likewise.
136         (extvmisalign<mode>): Require ISA_HAS_LWL_LWR.
137         (extzvmisalign<mode>): Likewise.
138         (insvmisalign<mode>): Likewise.
139         (mips_cache): Account for R6 displacement field sizes.
140         (*branch_fp): Rename...
141         (*branch_fp_<mode>): To this.  Add CCFmode support.
142         (*branch_fp_inverted): Rename...
143         (*branch_fp_inverted_<mode>): To this.  Add CCFmode support.
144         (s<code>_<mode>): Rename...
145         (s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this.  Add FCCmode
146         condition support.
147         (s<code>_<mode> swapped): Rename...
148         (s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add
149         CCFmode condition support.
150         (mov<mode>cc GPR): Expand R6 selects.
151         (mov<mode>cc FPR): Expand R6 selects.
152         (*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2.
153         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to
154         mips.h.
155         (ASM_SPEC): Add mips32r6, mips64r6.
156         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update
157         for mips32r6/mips64r6.
158         * doc/invoke.texi: Document -mips32r6,-mips64r6.
159         * doc/md.texi: Update comment for ZD constraint.
160
161 2014-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
162
163         PR target/64268
164         * combine.c (try_combine): Immediately return if any of I0,I1,I2
165         are the same insn.
166
167 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
168
169         * config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3):
170         Reparameterize to...
171         (<NLOGICAL:optab>_one_cmpl<mode>3): with extra SIMD-register variant.
172         (xor_one_cmpl<mode>3): New define_insn_and_split.
173
174         * config/aarch64/iterators.md (NLOGICAL): New define_code_iterator.
175
176 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
177
178         * config/aarch64/aarch64.md (<optab><mode>3, one_cmpl<mode>2):
179         Add SIMD-register variant.
180         * config/aarch64/iterators.md (Vbtype): Add value for SI.
181
182 2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>
183
184         * config/aarch64/aarch64.md (subdi3, adddi3_aarch64): Don't penalize
185         SIMD reg variant.
186
187 2014-12-19  Martin Liska  <mliska@suse.cz>
188
189         PR ipa/63569
190         * ipa-icf-gimple.c (func_checker::compare_operand): Add missing
191         comparison for volatile flag.
192
193 2014-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
194
195         * doc/invoke.texi (ARM options): Remove mention of Advanced RISC
196         Machines.
197
198 2014-12-19  Xingxing Pan  <xxingpan@marvell.com>
199
200         * config/arm/cortex-a9-neon.md (cortex_a9_neon_vmov): Change
201         reservation to cortex_a9_neon_dp.
202
203 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
204
205         * config/sh/sh.c (prepare_move_operands): Split HI/QImode load/store
206         to two move insns via r0.
207
208 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
209
210         * config/sh/predicates.md (arith_or_int_operand): New predicate.
211         * config/sh/sh.md (addsi3): Use arith_or_int_operand for operand 2.
212         Return fail if operands[0] and operands[1] are overlap when
213         operands[2] is integer constant.
214         (*addsi3_compact): Make it define_insn_and_split which splits
215         reg0 := reg1 + constant to reg0 = constant and reg0 := reg0 + reg1.
216
217 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
218
219         * config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): Declare.
220         * config/sh/sh.c (sh_movsf_ie_ra_split_p): New function.
221         * config/sh/sh.md (movsi_ie): Use "mr" constraint for the 8-th
222         altarnative of operand 0.
223         (movesf_ie): Use "X" constraint instead of "Bsc".
224         (movsf_ie_ra): New insn_and_split.
225         (movsf): Use movsfie_ra when lra_in_progress is true.
226
227 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
228
229         * config/sh/predicates.md (general_movsrc_operand): Allow only
230         valid plus address expressions.
231         (general_movdst_operand): Likewise.
232         (t_reg_operand): Allow (zero_extend (reg t)).
233         * config/sh/sh-protos.h (sh_hard_regno_caller_save_mode): Declare.
234         * config/sh/sh.c (sh_hard_regno_caller_save_mode): New function.
235         (sh_secondary_reload): Return NO_REGS instead of FPUL_REGS in one
236         case.
237         * config/sh/sh.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
238         * config/sh/sh.md (untyped_call): Clobber function value
239         registers before call.
240
241 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
242
243         * config/sh/sh.c (sh_lra_p): New function.
244         (TARGET_LRA_P): Define.
245         (sh_legitimize_reload_address): Return false if sh_lra_p is true.
246         * config/sh/sh.opt (mlra): New option.
247
248 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
249
250         * lra-constraints.c (process_address_1): Try if target can split
251         displacement with targetm.legitimize_address_displacement.
252         * target.def (legitimize_address_displacement): New hook.
253         * targhooks.c (default_legitimize_address_displacement): New function.
254         * targhooks.h (default_legitimize_address_displacement): Declare.
255         * config/sh/sh.c (sh_legitimize_address_displacement): New function.
256         (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
257         * doc/tm.texi.in (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): New hook.
258         * doc/tm.texi: Regenerate.
259
260 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
261
262         * lra-constraints.c (get_equiv): Don't return memory equivalence
263         when targetm.cannot_substitute_mem_equiv_p is true.
264         * target.def (cannot_substitute_mem_equiv_p): New hook.
265         * config/sh/sh.c (sh_cannot_substitute_mem_equiv_p): New function.
266         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
267         * doc/tm.texi.in (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): New hook.
268         * doc/tm.texi: Regenerate.
269
270 2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>
271
272         * lra-constraints.c (process_address_1): Swap base_term and
273         index_term if INDEX_REG_CLASS is assigned to base_term already
274         when INDEX_REG_CLASS is a single register class.
275
276 2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>
277
278         * lra-constraints.c (lra-constraints.c): Exchange places of sclass
279         and dclass.
280
281 2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>
282
283         PR rtl-optimization/64291
284         * lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE.
285         (create_cands): Process only output reload insn with potential
286         cands.
287
288 2014-12-18  H.J. Lu  <hongjiu.lu@intel.com>
289
290         * config/i386/i386.c (ix86_expand_call): Skip setting up RAX
291         register for -mskip-rax-setup when there are no parameters
292         passed in vector registers.
293         * config/i386/i386.opt (mskip-rax-setup): New option.
294         * doc/invoke.texi: Document -mskip-rax-setup.
295
296 2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>
297
298         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift
299         by 64 by moving const0_rtx.
300         (aarch64_ushr_simddi): Delete.
301
302         * config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64.
303
304 2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>
305
306         * config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64.
307
308         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift
309         amount to 63 if was 64.
310         (aarch64_sshr_simddi): Remove.
311
312 2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
313
314         * gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL):
315         Define.
316         (aarch64_min_divisions_for_recip_mul): New function.
317
318 2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
319
320         * config/aarch64/aarch64-protos.h (tune-params): Add code alignment
321         tuning parameters.
322         * gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment
323         tuning parameters.
324         (cortexa53_tunings): Likewise.
325         (cortexa57_tunings): Likewise.
326         (thunderx_tunings): Likewise.
327         (aarch64_override_options): Use new alignment tunings.
328
329 2014-12-18  Martin Liska  <mliska@suse.cz>
330
331         PR tree-optimization/64330
332         * ipa-icf.c (sem_variable::parse): Add checking
333         for externally visible symbols and do not introduce
334         an alias for an external declaration.
335
336 2014-12-18  Jan Hubicka  <hubicka@ucw.cz>
337
338         PR bootstrap/63573
339         * tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p
340         predicate.
341
342 2014-12-18  Martin Liska  <mliska@suse.cz>
343
344         PR ipa/64146
345         * ipa-icf.c (sem_function::merge): Check for
346         decl_binds_to_current_def_p is newly added to merge operation.
347
348 2014-12-18  Bin Cheng  <bin.cheng@arm.com>
349
350         PR tree-optimization/62178
351         * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function.
352         (iv_ca_replace): New function.
353         (try_improve_iv_set): New parameter try_replace_p.
354         Break local optimal fixed-point by calling iv_ca_replace.
355         (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set.
356
357 2014-12-17  Dehao Chen  <dehao@google.com>
358
359         * auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right
360         place.
361         (auto_profile): Recompute inline summary after processing cgraph node.
362
363 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
364
365         PR target/51244
366         * config/sh/sh_treg_combine.cc (is_conditional_insn): New function.
367         (cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it
368         accordingly in constructor.
369         (cbranch_trace::branch_condition_rtx_ref): New function.
370         (cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref.
371         (sh_treg_combine::try_invert_branch_condition): Invert condition rtx
372         in insn using reversed_comparison_code and validate_change instead of
373         invert_jump_1.
374         (sh_treg_combine::execute): Look for conditional insns in basic blocks
375         in addition to conditional branches.
376         * config/sh/sh.md (*movsicc_div0s): Remove combine patterns.
377
378 2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>
379
380         PR target/51244
381         * config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch):
382         Combine ccreg inversion and cbranch into inverted cbranch.
383
384 2014-12-17  Vladimir Makarov  <vmakarov@redhat.com>
385
386         * lra-constraints.c (process_alt_operands): Remove non
387         allocatable hard regs when considering
388         ira_prohibited_class_mode_regs.
389
390 2014-12-17  Jan Hubicka  <hubicka@ucw.cz>
391
392         * sreal.h (sreal::normalize): Implement inline.
393         (sreal::normalize_up): New function.
394         (sreal::normalize_down): New function.
395         * sreal.c (sreal::normalize): Remove.
396
397 2014-12-17  James Greenhalgh  <james.greenhalgh@arm.com>
398
399         * config/aarch64/aarch64.md (generic_sched): Delete it.
400
401 2014-12-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
402
403         * config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix
404         unused argument warning.
405
406 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
407
408         * dwarf2out.h (struct array_descr_info): Remove the base_decl field.
409         * dwarf2out.c (enum dw_scalar_form): New.
410         (struct loc_descr_context): New.
411         (add_scalar_info): New.
412         (add_bound_info): Add a context parameter.  Use add_scalar_info.
413         (loc_list_from_tree): Add a context parameter.  Handle PLACEHOLDER_EXPR
414         nodes for type-related expressions.  Likewise for base declarations.
415         (loc_descriptor_from_tree): Add a context parameter.
416         (subrange_type_die): Update calls to add_bound_info.
417         (tls_mem_loc_descriptor): Likewise.
418         (loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context
419         parameter.  Update calls to loc_list_from_tree.
420         (add_subscript_info): Update calls to add_bound_info.
421         (gen_array_type_die): Update calls to loc_list_from_tree and to
422         add_bound_info.
423         (descr_info_loc): Remove.
424         (add_descr_info_field): Remove.
425         (gen_descr_array_type_die): Switch add_descr_info_field calls into
426         add_scalar_info/add_bound_info ones.
427         (gen_subprogram_die): Update calls to loc_list_from_tree.
428         (gen_variable_die): Likewise.
429
430 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
431
432         * dwarf2out.c (print_loc_descr): New.
433         (print_dw_val): New.
434         (print_attribute): New.
435         (print_loc_descr): New.
436         (print_die): Use print_dw_val.
437         (debug_dwarf_loc_descr): New.
438         * dwarf2out.h (debug_dwarf_loc_descr): New declaration.
439
440 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
441
442         * dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook
443         even when (dwarf_version < 3 && dwarf_strict).
444         (gen_descr_array_die): Do not output DW_AT_data_locationn,
445         DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF
446         attributes when (dwarf_version < 3 && dwarf_strict).
447
448 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
449
450         * dwarf2out.h (enum array_descr_ordering): New.
451         (array_descr_dimen): Add a bounds_type structure field.
452         (struct array_descr_info): Add a field to hold index type information
453         and another one to hold ordering information.
454         * dwarf2out.c (gen_type_die_with_usage): Get the main variant before
455         invoking the array descriptor language hook.  Initialize the
456         array_descr_info structure before calling the lang-hook.
457         (gen_descr_array_type_die): Use gen_type_die if not processing the main
458         type variant.  Replace Fortran-specific code with generic one using
459         this new field.  Add a GNAT descriptive type, if any.  Output type
460         information for the array bound subrange, if any.
461
462 2014-12-17  H.J. Lu  <hongjiu.lu@intel.com>
463             Jakub Jelinek  <jakub@redhat.com>
464             Uros Bizjak  <ubizjak@gmail.com>
465
466         PR target/61296
467         * config/i386/i386-opts.h (ix86_align_data): New enum.
468         * config/i386/i386.c (ix86_data_alignment): Return the ABI
469         alignment value for -malign-data=abi, the cachine line size
470         for -malign-data=cacheline and the older GCC compatible
471         alignment value for for -malign-data=compat.
472         * config/i386/i386.opt (malign-data=): New.
473         * doc/invoke.texi: Document -malign-data=.
474
475 2014-12-17  Marek Polacek  <polacek@redhat.com>
476
477         PR middle-end/63568
478         * match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern.
479
480 2014-12-17  Jakub Jelinek  <jakub@redhat.com>
481
482         PR tree-optimization/64322
483         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
484         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
485
486 2014-12-17  Tobias Burnus  <burnus@net-b.de>
487
488         PR fortran/54687
489         * flag-types.h (gfc_init_local_real, gfc_fcoarray,
490         gfc_convert): New enums; moved from fortran/.
491
492 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
493
494         * fibonacci_heap.h (min): Return m_data instead of non-existing data.
495
496 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
497
498         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider
499         return values of const calls as constants.
500         (estimate_function_body_sizes): Expect calls to have false predicates.
501
502 2014-12-16  Jan Hubicka  <hubicka@ucw.cz>
503
504         * hwint.c (abs_hwi, absu_hwi): Move to ...
505         * hwint.h (abs_hwi, absu_hwi): ... here; make inline.
506
507 2014-12-16  Marek Polacek  <polacek@redhat.com>
508
509         PR middle-end/64309
510         * match.pd: Add ((1 << A) & 1) != 0 -> A == 0 and
511         ((1 << A) & 1) == 0 -> A != 0.
512
513 2014-12-16  Richard Biener  <rguenther@suse.de>
514
515         * genmatch.c (parser::parser): Initialize capture_ids.
516         (parser::parse_pattern): Properly allocate capture_ids before
517         using them.  Set capture_ids to zero when its lifetime is
518         supposed to finish.
519         (parser::parse_simplify): Allocate capture_ids only if
520         required.
521
522 2014-12-16  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
523
524         * sreal.c: Include math.h later.
525
526 2014-12-16  Felix Yang  <felix.yang@huawei.com>
527
528         PR rtl-optimization/64240
529         * ddg.c (mark_mem_use): Check *iter instead of *x.
530
531 2014-12-16  Martin Liska  <mliska@suse.cz>
532
533         PR ipa/64278
534         * sreal.c (sreal::operator*): Replace std::abs with absu_hwi.
535
536 2014-12-16  Igor Zamyatin  <igor.zamyatin@intel.com>
537
538         * config/i386/i386.c (ix86_address_cost): Add explicit restriction
539         to RTL level for the check for PIC register.
540
541 2014-12-16  Uros Bizjak  <ubizjak@gmail.com>
542
543         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ...
544         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): ... and here ...
545         * config/i386/gnu-user-common.h (TARGET_CAN_SPLIT_STACK): ... to here.
546
547 2014-12-16  Chung-Ju Wu  <jasonwucj@gmail.com>
548
549         PR target/64217
550         * config/nds32/nds32.md (casesi_internal): Add '=r' for clobber
551         register constraint.
552
553 2014-12-15  DJ Delorie  <dj@redhat.com>
554
555         * config/rl78/rl78.h: Remove SHORT_IMMEDIATES_SIGN_EXTEND.
556
557 2014-12-15  Jan Hubicka  <hubicka@ucw.cz>
558
559         PR lto/64043
560         * tree-streamer.c (preload_common_nodes): Skip preloading
561         of main_identifier_node, pid_type and optimization/option nodes.
562
563 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
564
565         PR rtl-optimization/63397
566         * ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use
567         int64_t.
568         (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
569         * ira.c (ira_overall_cost, ira_overall_cost_before): Ditto.
570         (ira_reg_cost, ira_mem_cost): Ditto.
571         (ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
572         (calculate_allocation_cost, do_reload): Use the right
573         format for int64_t values.
574
575 2014-12-15  Jan Hubicka  <hubicka@ucw.cz>
576
577         * sreal.h (to_double): New method.
578         (shift): Do not ICE on 0.
579         * sreal.c: Include math.h
580         (sreal::to_double): New.
581
582 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
583
584         PR rtl-optimization/64316
585         * simplify-rtx.c (simplify_relational_operation_1): For
586         (eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use
587         CONST0_RTX instead of const0_rtx.
588
589 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
590
591         PR target/62642
592         * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
593
594 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
595
596         * ira-int.h (ira_prohibited_class_mode_regs): Remove.
597         (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
598         ...
599         * ira.h (struct target_ira): ... here.
600         (ira_prohibited_class_mode_regs): Define.
601         * lra-constraints.c (process_alt_operands): Add one more condition
602         to refuse alternative when reload pseudo of given class can not
603         hold value of given mode.
604
605 2014-12-15  Richard Biener  <rguenther@suse.de>
606
607         PR tree-optimization/64312
608         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
609         vuse_ssa_val as callback to walk_non_aliased_vuses.
610         (vn_reference_lookup): Likewise.
611
612 2014-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
613
614         * gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot,
615         *add<mode>3_imm_dot2): Change the constraint for the second
616         alternative for operand 1 from "r" to "b".
617
618 2014-12-15  Richard Biener  <rguenther@suse.de>
619
620         * vec.h (vec::safe_grow): Guard against a grow to zero size.
621
622 2014-12-15  Richard Biener  <rguenther@suse.de>
623
624         PR middle-end/64295
625         * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
626         fold_binary to compute the constant to multiply with.
627
628 2014-12-15  Richard Biener  <rguenther@suse.de>
629
630         PR middle-end/64246
631         * cfgloop.c (mark_loop_for_removal): Make safe against multiple
632         invocations on the same loop.
633
634 2014-12-15  Marek Polacek  <polacek@redhat.com>
635
636         PR middle-end/64292
637         * fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check.
638
639 2014-12-15  Renlin Li  <renlin.li@arm.com>
640
641         * config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
642         (CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes.
643
644 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
645
646         PR sanitizer/64265
647         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
648         call on edge from entry block to single succ instead
649         of after labels of single succ of entry block.
650
651 2014-12-15  Richard Biener  <rguenther@suse.de>
652
653         PR tree-optimization/64284
654         * tree-ssa-threadupdate.c (duplicate_seme_region): Mark
655         the loop for removal if we copied the loop header.
656
657 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
658
659         PR ipa/61602
660         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Return bool.
661         * ipa.c (set_writeonly_bit): Track if reference was removed.
662         (ipa_discover_readonly_nonaddressable_vars): Return true if any
663         references was removed.
664         * ipa-reference.c (propagate): Return TODO_remove_functions if
665         reference was removed.
666
667 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
668
669         * ipa.c (process_references): Fix conditoinal on flag_optimize
670
671 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
672
673         PR ipa/61558
674         * symtab.c (symbol_table::insert_to_assembler_name_hash
675         symbol_table::unlink_from_assembler_name_hash): Do not ICE when
676         DECL_ASSEMBLER_NAME is NULL.
677
678 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
679
680         * cgraphunit.c (analyze_functions): Always analyze targets of aliases.
681
682 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
683
684         PR lto/64043
685         * tree.c (virtual_method_call_p): Return false when OTR type has
686         no BINFO.
687
688 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
689
690         * cgraphunit.c (analyze_functions): Do not analyze extern inline
691         funtions when not optimizing; skip comdat locals.
692
693 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
694
695         PR rtl-optimization/64037
696         * combine.c (setup_incoming_promotions): Pass the argument
697         before any promotions happen to promote_function_mode.
698
699 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
700
701         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.
702
703 2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>
704
705         PR target/64110
706         * lra-constraints.c (process_alt_operands): Refuse alternative
707         when reload pseudo of given class can not hold value of given
708         mode.
709
710 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
711
712         * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
713         intermediate walk_tree results for for_incr.
714         <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
715         <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.
716
717 2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>
718
719         PR middle-end/64182
720         * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
721         cases.
722         * double-int.c (div_and_round_double): Fix handling of unsigned
723         cases.  Use same rounding approach as wide-int.h.
724
725 2014-12-12  Marek Polacek  <polacek@redhat.com>
726
727         PR middle-end/64274
728         * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
729
730 2014-12-12  Jakub Jelinek  <jakub@redhat.com>
731
732         PR tree-optimization/64269
733         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
734         len2 or diff are too large.
735
736 2014-12-12  Richard Biener  <rguenther@suse.de>
737
738         PR middle-end/64280
739         * tree-cfg.c (replace_uses_by): Guard assert properly.
740
741 2014-12-12  Anthony Green  <green@moxielogic.com>
742
743         * config/moxie/moxie.md: Add use of zex instruction.
744
745 2014-12-12  Marc Glisse  <marc.glisse@inria.fr>
746
747         * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
748         HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
749         declarations.
750         * real.c (HONOR_NANS): Fix indentation.
751         (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
752         HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
753         * builtins.c (fold_builtin_cproj, fold_builtin_signbit,
754         fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
755         of HONOR_*.
756         * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
757         Likewise.
758         * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
759         * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
760         * omp-low.c (omp_reduction_init): Likewise.
761         * rtlanal.c (may_trap_p_1): Likewise.
762         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
763         * tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
764         * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
765         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
766         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
767
768 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
769
770         * ipa-inline.c (ipa_inline): Fix condition on when
771         TODO_remove_unreachable_functions is needed.
772
773 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
774
775         * ipa-devirt.c (possible_polymorphic_call_targets): Return early
776         if otr_type has no BINFO.
777
778 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
779
780         PR rtl-optimization/63917
781         * ifcvt.c (cc_in_cond): New function.
782         (end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
783         (noce_process_if_block, check_cond_move_block): Check CC references.
784
785 2014-12-11  Andrew Pinski  <apinski@cavium.com>
786
787         * config/aarch64/aarch64-protos.h (tune_params): Add align field.
788         * config/aarch64/aarch64.c (generic_tunings): Specify align.
789         (cortexa53_tunings): Likewise.
790         (cortexa57_tunings): Likewise.
791         (thunderx_tunings): Likewise.
792         (aarch64_override_options): Set align_loops, align_jumps,
793         align_functions based on what the tuning struct.
794
795 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
796
797         * doc/md.texi (Insn Lengths): Fix description of (pc).
798
799 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
800
801         PR ipa/61324
802         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
803         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
804         * cgraphunit.c (symbol_table::process_new_functions): Add
805         IPA_SSA_AFTER_INLINING.
806         (ipa_passes): Update call of remove_unreachable_nodes.
807         (symbol_table::compile): Remove call of remove_unreachable_nodes.
808         * ipa-inline.c (inline_small_functions): Do not ICE with
809         -flto-partition=none
810         (ipa_inline): Update symtab->state; fix formatting
811         update call of remove_unreachable_nodes.
812         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
813         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
814         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
815         (remove_unreachable_nodes): Update.
816         * ipa.c (process_references): Keep external references only
817         when optimizing.
818         (walk_polymorphic_call_targets): Keep possible polymorphic call
819         target only when devirtualizing.
820         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
821         parameter.
822         (ipa_single_use): Update comment.
823         * ipa-pure-const.c (cdtor_p): New function.
824         (propagate_pure_const): Track if some cdtor was turned pure/const.
825         (execute): Return TODO_remove_functions if needed.
826         * ipa-comdats.c (ipa_comdats): Update comment.
827
828 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
829
830         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
831         parameter.
832         (gen_inlined_subroutine_die): Same.
833         (gen_block_die): Same.
834         (decls_for_scope): Same.
835
836 2014-12-11  Renlin Li  <renlin.li@arm.com>
837
838         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
839         AARCH64_FL_FOR_ARCH8.
840         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
841         aarch64-cores.def file only.
842
843 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
844
845         PR fortran/44054
846         * diagnostic.c (diagnostic_action_after_output): Make it extern.
847         Take diagnostic_t argument instead of diagnostic_info. Count also
848         DK_WERROR towards max_errors.
849         (diagnostic_report_diagnostic): Update call according to the above.
850         (error_recursion): Likewise.
851         * diagnostic.h (diagnostic_action_after_output): Declare.
852         * pretty-print.c (pp_formatted_text_data): Delete.
853         (pp_append_r): Call output_buffer_append_r.
854         (pp_formatted_text): Call output_buffer_formatted_text.
855         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
856         * pretty-print.h (output_buffer_formatted_text): New.
857         (output_buffer_append_r): New.
858         (output_buffer_last_position_in_text): New.
859
860 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
861
862         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
863         message to say +no only when removing extension.
864
865 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
866
867         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
868         for generator file.  Add comment indicating it is a generated file.
869         * config/tilepro/mul-tables.c: Update generated file.
870         * config/tilegx/mul-tables.c: Likewise.
871
872 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
873
874         * combine.c (try_combine): Do not allow combining a PARALLEL I2
875         with a register move I3 if that I2 is an asm.
876
877 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
878
879         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
880         (vrndnq_f32): ... this.
881         (vrndqa_f32): Rename to...
882         (vrndaq_f32): ... this.
883         (vrndqp_f32): Rename to...
884         (vrndpq_f32): ... this.
885         (vrndqm_f32): Rename to...
886         (vrndmq_f32): ... this.
887         (vrndx_f32): New intrinsic.
888         (vrndxq_f32): Likewise.
889
890 2014-12-11  Marek Polacek  <polacek@redhat.com>
891
892         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
893         (extract_muldiv_1): Likewise.
894         (maybe_canonicalize_comparison_1): Likewise.
895         (fold_comparison): Likewise.
896         (tree_binary_nonnegative_warnv_p): Likewise.
897         (tree_binary_nonzero_warnv_p): Likewise.
898         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
899         * tree-scalar-evolution.c (simple_iv): Likewise.
900         (scev_const_prop): Likewise.
901         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
902         * tree-vect-generic.c (expand_vector_operation): Likewise.
903         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
904         (ANY_INTEGRAL_TYPE_P): Define.
905         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
906         Add ANY_INTEGRAL_TYPE_CHECK.
907         (any_integral_type_check): New function.
908
909 2014-12-11  Tobias Burnus  <burnus@net-b.de>
910             Manuel López-Ibáñez  <manu@gcc.gnu.org>
911
912         * error.c (gfc_get_terminal_width): Renamed from
913         get_terminal_width and use same-named common function.
914         (gfc_error_init_1): Update call.
915
916 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
917
918         * gdbhooks.py (class DWDieRefPrinter): New class.
919         (build_pretty_printer): Register dw_die_ref's.
920
921 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
922
923         * config.gcc: Support "knl".
924         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
925         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
926         PROCESSOR_KNL.
927         * config/i386/i386.c (m_KNL): Define.
928         (processor_target_table): Add "knl".
929         (PTA_KNL): Define.
930         (ix86_issue_rate): Add PROCESSOR_KNL.
931         (ix86_adjust_cost): Ditto.
932         (ia32_multipass_dfa_lookahead): Ditto.
933         (get_builtin_code_for_version): Handle "knl".
934         (fold_builtin_cpu): Ditto.
935         * config/i386/i386.h (TARGET_KNL): Define.
936         (processor_type): Add PROCESSOR_KNL.
937         * config/i386/i386.md (attr "cpu"): Add knl.
938         * config/i386/x86-tune.def: Add m_KNL.
939
940 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
941
942         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
943         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
944         when it is not streamed to the given ltrans.
945         (compute_ltrans_boundary): Make code adding all polymorphic
946         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
947         * common.opt (fdevirtualize-at-ltrans): New flag.
948
949 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
950
951         * varpool.c (varpool_node::get_create): Force output of vars with
952         "omp declare target" attribute.
953
954 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
955
956         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
957         * real.c: Include rtl.h and options.h.
958         (HONOR_NANS): Define three overloads.
959         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
960         Simplify argument of HONOR_NANS.
961         * fold-const.c (combine_comparisons, fold_truth_not_expr,
962         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
963         fold_comparison, fold_binary_loc): Likewise.
964         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
965         * ipa-inline-analysis.c (add_clause,
966         set_cond_stmt_execution_predicate): Likewise.
967         * match.pd: Likewise.
968         * rtlanal.c (may_trap_p_1): Likewise.
969         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
970         * tree-if-conv.c (parse_predicate): Likewise.
971         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
972         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
973         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
974         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
975         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
976
977 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
978
979         PR tree-optimization/62021
980         * omp-low.c (simd_clone_adjust_return_type): Use
981         vector of pointer_sized_int_node types instead vector of pointer
982         types.
983         (simd_clone_adjust_argument_types): Likewise.
984
985 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
986             Evgeny Stupachenko  <evstupac@gmail.com>
987
988         PR target/64252
989         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
990         set dcopy.target to a new pseudo.
991
992 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
993
994         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
995
996 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
997
998         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
999         config/rs6000/440.md (ppc440-compare): Remove "compare".
1000         config/rs6000/476.md (ppc476-compare): Remove "compare".
1001         config/rs6000/601.md (ppc601-compare): Remove "compare".
1002         config/rs6000/603.md (ppc603-compare): Remove "compare".
1003         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
1004         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
1005         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
1006         config/rs6000/8540.md (ppc8540_su): Remove "compare".
1007         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
1008         "compare".
1009         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
1010         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
1011         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
1012         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
1013         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
1014         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
1015         config/rs6000/power4.md (power4-compare): Remove "compare".
1016         config/rs6000/power5.md (power5-compare): Remove "compare".
1017         config/rs6000/power6.md (power6-compare): Remove "compare".
1018         config/rs6000/power7.md (power7-compare): Remove "compare".
1019         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
1020         comment.
1021         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
1022         (three times).
1023         (is_cracked_insn): Remove TYPE_COMPARE case.
1024         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
1025         config/rs6000/rs6000.md (type): Remove "compare".
1026         (cell_micro): Remove "compare".
1027         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
1028
1029 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1030
1031         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
1032         Change type from "compare" to "two".
1033
1034 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1035
1036         PR target/64180
1037         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
1038         (signed_comparison_operator): New.
1039         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
1040         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
1041         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
1042         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
1043         add to addc,adde directly, if !TARGET_POWERPC64.
1044         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
1045         if !TARGET_POWERPC64.
1046         (neg<mode>2): Delete expander.
1047         (*neg<mode>2): Rename to "neg<mode>2".
1048         (addti3, subti3): Delete.
1049         (addti3, subti3): New expanders.
1050         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
1051         (cstore<mode>4_unsigned): New expander.
1052         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
1053         (cstore<mode>4 for FP): Remove superfluous quotes.
1054         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
1055         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
1056         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
1057         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
1058         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
1059         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
1060         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
1061         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
1062         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
1063         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
1064         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
1065         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
1066         Delete.
1067         (eq<mode>3, ne<mode>3): New.
1068         (*neg_eq_<mode>, *neg_ne_<mode>): New.
1069         (*plus_eq_<mode>, *plus_ne_<mode>): New.
1070         (*minus_eq_<mode>, *minus_ne_<mode>): New.
1071
1072 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1073
1074         PR target/64180
1075         * config/rs6000/predicates.md (adde_operand): New.
1076         * config/rs6000/rs6000.md (add<mode>3_carry): New.
1077         (*add<mode>3_imm_carry_pos): New.
1078         (*add<mode>3_imm_carry_0): New.
1079         (*add<mode>3_imm_carry_m1): New.
1080         (*add<mode>3_imm_carry_neg): New.
1081         (add<mode>3_carry_in): New.
1082         (*add<mode>3_carry_in_internal): New.
1083         (add<mode>3_carry_in_0): New.
1084         (add<mode>3_carry_in_m1): New.
1085         (subf<mode>3_carry): New.
1086         (*subf<mode>3_imm_carry_0): New.
1087         (*subf<mode>3_imm_carry_m1): New.
1088         (subf<mode>3_carry_in): New.
1089         (*subf<mode>3_carry_in_internal): New.
1090         (subf<mode>3_carry_in_0): New.
1091         (subf<mode>3_carry_in_m1): New.
1092         (subf<mode>3_carry_in_xx): New.
1093
1094 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1095
1096         PR target/64180
1097         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
1098         "*add<mode>3".
1099         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
1100         Delete.
1101         (*add<mode>3_dot, *add<mode>3_dot2): New.
1102         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
1103
1104 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1105
1106         PR target/64180
1107         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
1108         alternative.
1109
1110 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1111
1112         PR target/64180
1113         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
1114         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
1115         to "b".  Increase length.
1116         (splitters for these): Split to cmp+addi instead of addic.
1117
1118 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1119
1120         PR target/64180
1121         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
1122         (macho_low_di): Ditto.
1123         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
1124         (tocref<mode>): Ditto.
1125         (elf_low): Ditto.
1126         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
1127         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
1128         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
1129         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
1130
1131 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1132
1133         PR target/64180
1134         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
1135         (rs6000_md_asm_clobbers): New function.
1136
1137 2014-12-10  Felix Yang  <felix.yang@huawei.com>
1138
1139         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
1140         declaration of removed function.
1141
1142 2014-12-10  Richard Biener  <rguenther@suse.de>
1143
1144         * tree-ssa-loop-im.c
1145         (move_computations_dom_walker::before_dom_children): Clear
1146         SSA_NAME_RANGE_INFO on moved stmts.
1147
1148 2014-12-10  Martin Liska  <mliska@suse.cz>
1149
1150         * sreal.c (sreal::shift_right): New implementation
1151         for int64_t as m_sig.
1152         (sreal::normalize): Likewise.
1153         (sreal::to_int): Likewise.
1154         (sreal::operator+): Likewise.
1155         (sreal::operator-): Likewise.
1156         (sreal::operator*): Likewise.
1157         (sreal::operator/): Likewise.
1158         (sreal::signedless_minus): Removed.
1159         (sreal::signedless_plus): Removed.
1160         (sreal::debug): const keyword is added.
1161         * sreal.h (sreal::operator<): New implementation
1162         for int64_t as m_sig.
1163         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
1164         with sreal::min ().
1165
1166 2014-12-10  Martin Liska  <mliska@suse.cz>
1167
1168         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
1169         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
1170         replaces loop based on precomputed number of non-debug statements.
1171
1172 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1173
1174         * config/linux.c (linux_has_ifunc_p): Remove.
1175         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
1176
1177 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
1178
1179         * contrib/check_GNU_style.sh (col): Got rid of cut operation
1180         from the pipe chain and instead added cut inside awk command.
1181
1182 2014-12-10  Richard Biener  <rguenther@suse.de>
1183
1184         PR tree-optimization/64191
1185         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
1186         mark clobbers as necessary.
1187         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
1188
1189 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
1190
1191         PR target/63594
1192         * config/i386/sse.md (vec_dupv4sf): Move after
1193         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
1194         (*vec_dupv4si, *vec_dupv2di): Likewise.
1195         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
1196         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
1197         pattern.
1198         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
1199         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
1200         is set too).
1201         * config/i386/i386.c (enum ix86_builtins): Remove
1202         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
1203         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
1204         IX86_BUILTIN_PBROADCASTQ512_MEM.
1205         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
1206         __builtin_ia32_pbroadcastq256_gpr_mask and
1207         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
1208         regardless of OPTION_MASK_ISA_64BIT.
1209         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
1210         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
1211         builtins regardless of whether TARGET_64BIT is defined or not.
1212         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
1213         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
1214         Likewise.
1215
1216         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
1217         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
1218
1219 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
1220
1221         PR target/53513
1222         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
1223
1224 2014-12-10  Marek Polacek  <polacek@redhat.com>
1225
1226         PR tree-optimization/61686
1227         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
1228         p->high.
1229
1230 2014-12-10  Kito Cheng  <kito@0xlab.org>
1231
1232         * doc/libgcc.texi: Update text to match implementation in
1233         libgcc/libgcc2.c
1234
1235 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
1236
1237         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
1238         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
1239         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
1240         param_is.
1241
1242 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
1243
1244         PR target/53513
1245         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
1246         Document it.
1247
1248 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1249
1250         PR middle-end/64225
1251         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
1252         for BUILT_IN_POW when flag_errno_math is present.
1253
1254 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
1255
1256         * lto-wrapper.c (compile_offload_image): Start processing in_argv
1257         from 0 instead of 1.
1258         (run_gcc): Put offload objects into offload_argv, put LTO objects and
1259         possible preceding arguments into lto_argv.
1260         Pass offload_argv to compile_images_for_offload_targets instead of argv.
1261         Use lto_argv for LTO recompilation instead of argv.
1262
1263 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
1264
1265         * doc/install.texi: Describe --with-aix-soname option.
1266
1267 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1268
1269         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
1270
1271 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1272
1273         PR target/63870
1274         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
1275         Delete.
1276         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
1277         Delete.
1278         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
1279         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
1280         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
1281         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
1282         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
1283         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
1284         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
1285         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
1286         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
1287         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
1288         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
1289         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
1290         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
1291         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
1292         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
1293         'q2' argument.
1294         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
1295         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
1296         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
1297         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
1298         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
1299         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
1300         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
1301         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
1302         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
1303         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
1304         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
1305         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
1306         to __aarch64_vdup_lane_any.
1307         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
1308         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
1309         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
1310         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
1311         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
1312         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
1313         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
1314         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
1315         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
1316         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
1317         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
1318         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
1319         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
1320         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
1321         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
1322         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
1323         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
1324         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
1325         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
1326         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
1327         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
1328         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
1329         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
1330         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
1331         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
1332         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
1333         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
1334         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
1335         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
1336         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
1337         __aarch64_vget_lane_any.
1338
1339 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1340
1341         PR target/63870
1342         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
1343         message for SIMD_ARG_CONSTANT.
1344
1345 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1346
1347         PR target/63870
1348         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
1349         TYPES_BINOPV): Delete.
1350         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
1351         AARCH64_SIMD_PATTERN_START.
1352         (aarch64_init_simd_builtins): Register
1353         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
1354         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
1355         AARCH64_SIMD_PATTERN_START.
1356
1357         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
1358         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
1359
1360         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
1361         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
1362         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
1363         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
1364         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
1365         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
1366         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
1367         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
1368
1369 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1370
1371         PR target/63950
1372         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
1373         New.
1374         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
1375         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
1376         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
1377         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
1378         number of lanes.
1379         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
1380         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
1381         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
1382         __aarch64_vset_lane_any rather than vset_lane_xxx.
1383
1384 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
1385
1386         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
1387         earlyclobbering result operand.
1388
1389         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
1390         Remove final qualifier_internal.
1391         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
1392
1393 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1394
1395         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
1396         tuning parameters.
1397         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
1398         Define.
1399         (aarch64_reassociation_width): New function.
1400         (generic_tunings): Add reassociation tuning parameters.
1401         (cortexa53_tunings): Likewise.
1402         (cortexa57_tunings): Likewise.
1403         (thunderx_tunings): Likewise.
1404
1405 2014-12-09  Andrew Pinski  <apinski@cavium.com>
1406             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1407
1408         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
1409         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
1410         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
1411
1412 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
1413
1414         PR jit/64166
1415         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
1416         New function.
1417         (gcc::dump_manager::get_dump_file_name): Split out bulk of
1418         implementation into a new overloaded variant taking a
1419         dump_file_info *.
1420         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
1421         New function.
1422         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
1423         this function, taking a dump_file_info *.
1424
1425 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
1426
1427         PR bootstrap/64213
1428         Revert:
1429         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
1430
1431         PR rtl-optimization/64037
1432         * combine.c (setup_incoming_promotions): Pass the argument
1433         before any promotions happen to promote_function_mode.
1434
1435 2014-12-09  Richard Biener  <rguenther@suse.de>
1436
1437         PR tree-optimization/64193
1438         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
1439         and valueize the VUSE before looking up the def stmt.
1440         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1441         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
1442         to walk_non_aliased_vuses.
1443         (vn_reference_lookup): Likewise.
1444         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
1445         callback to walk_non_aliased_vuses.
1446
1447 2014-12-09  Richard Biener  <rguenther@suse.de>
1448
1449         PR middle-end/64199
1450         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
1451
1452 2014-12-09  Richard Biener  <rguenther@suse.de>
1453
1454         PR tree-optimization/64191
1455         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
1456         not relevant (nor are their uses).
1457
1458 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1459
1460         * lto/lto-partition.c (privatize_symbol_name): Correctly
1461         privatize instrumentation clones.
1462
1463 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1464
1465         * lto-cgraph.c (input_cgraph_1): Don't break existing
1466         instrumentation clone references.
1467         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
1468         instrumented_version references appropriately.
1469
1470 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
1471
1472         PR bootstrap/63995
1473         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
1474         between nodes sharing assembler name.
1475
1476 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1477
1478         PR target/64204
1479         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
1480         constant moves if -mupper-regs-df.
1481
1482         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
1483         0.0L to TFmode.
1484         (movtd_64bit_nodm): Likewise.
1485         (mov<mode>_32bit, FMOVE128 case): Likewise.
1486
1487 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
1488
1489         * simplify-rtx.c (simplify_relational_operation_1): Handle
1490         simplification identities for BICS patterns.
1491
1492 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
1493
1494         * config/nvptx/nvptx.c: Convert htabs to hash_table.
1495
1496 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
1497
1498         PR target/64226
1499         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
1500         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
1501         TARGET_TOC. Always use rs6000_emit_move.
1502
1503 2014-12-08  Mark Wielaard  <mjw@redhat.com>
1504
1505         PR debug/60782
1506         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
1507
1508 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
1509
1510         PR target/61692
1511         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
1512
1513 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
1514
1515         PR jit/63854
1516         * cgraph.h (xstrdup_for_dump): New function.
1517         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
1518         within fprintf with xstrdup_for_dump.
1519         (cgraph_edge::make_speculative): Likewise.
1520         (cgraph_edge::resolve_speculation): Likewise.
1521         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1522         (cgraph_node::dump): Likewise.
1523         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1524         * ipa-cp.c (perhaps_add_new_callers): Likewise.
1525         * ipa-inline.c (report_inline_failed_reason): Likewise.
1526         (want_early_inline_function_p): Likewise.
1527         (edge_badness): Likewise.
1528         (update_edge_key): Likewise.
1529         (flatten_function): Likewise.
1530         (inline_always_inline_functions): Likewise.
1531         * ipa-profile.c (ipa_profile): Likewise.
1532         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
1533         (ipa_make_edge_direct_to_target): Likewise.
1534         (remove_described_reference): Likewise.
1535         (propagate_controlled_uses): Likewise.
1536         * ipa-utils.c (ipa_merge_profiles): Likewise.
1537
1538 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1539
1540         PR ipa/64049
1541         * ipa-polymorphic-call.c
1542         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
1543
1544 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
1545
1546         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
1547         New define_insn.
1548         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
1549         Likewise.
1550
1551 2014-12-08  Felix Yang  <felix.yang@huawei.com>
1552             Haijian Zhang  <z.zhanghaijian@huawei.com>
1553             Jiji Jiang  <jiangjiji@huawei.com>
1554             Pengfei Sui  <suipengfei@huawei.com>
1555
1556         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
1557         builtin functions.
1558         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
1559         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
1560         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
1561         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
1562         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
1563         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
1564         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
1565         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
1566         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
1567         vrsubhn_high_u64): Likewise.
1568         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
1569         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
1570         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
1571         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
1572         subhn2, rsubhn2, urecpe): New builtins.
1573
1574 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
1575
1576         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
1577         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
1578
1579 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
1580
1581         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
1582         (expand_vec_perm_vpermi2_vpshub2): New.
1583         (ix86_expand_vec_perm_const_1): Use it.
1584         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
1585         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
1586
1587 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1588
1589         * tree-chkp.c (chkp_build_returned_bound): Don't predict
1590         return bounds for strchr calls.
1591
1592 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1593
1594         * tree-chkp.c (chkp_call_returns_bounds_p): New.
1595         (chkp_build_returned_bound): Use zero bounds as
1596         returned by calls not returning bounds.
1597
1598 2014-12-08  Richard Biener  <rguenther@suse.de>
1599
1600         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
1601         (fold_builtin_1): Likewise.
1602         (fold_builtin_3): Likewise.
1603         (fold_builtin_varargs): Likewise.
1604         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
1605         (fold_builtin_n): Adjust.
1606         (fold_builtin_stpcpy): Move to gimple-fold.c.
1607         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
1608         (gimple_fold_builtin): Fold stpcpy here.
1609
1610 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
1611
1612         * symtab.c (symtab_node::verify): Check for section attribute before
1613         asserting something isn't in a section and a comdat group.
1614
1615 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1616
1617         PR target/50751
1618         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1619
1620 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1621
1622         * compare-elim.c: Fix head comment.
1623         (conforming_compare): Remove redundant test.
1624         (can_eliminate_compare): New function extracted from...
1625         (before_dom_children): ...here.  Use it, replace direct uses of
1626         flag_non_call_exceptions and tidy up.
1627         (maybe_select_cc_mode): Tidy up.
1628
1629 2014-12-07  Felix Yang  <felix.yang@huawei.com>
1630             Shanyao Chen  <chenshanyao@huawei.com>
1631
1632         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
1633         patterns.
1634         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
1635         builtins.
1636         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
1637         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
1638         vcntq_u8): Rewrite using builtin functions.
1639
1640 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
1641
1642         * symtab.c (symtab_node::equal_address_to): New function.
1643         * cgraph.h (symtab_node::equal_address_to): Declare.
1644         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
1645         * c-family/c-common.c: Refuse weaks for symbols that can not change
1646         visibility.
1647
1648 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
1649
1650         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
1651
1652 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
1653             Sebastian Pop  <s.pop@samsung.com>
1654             Brian Rzycki  <b.rzycki@samsung.com>
1655
1656         PR tree-optimization/54742
1657         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
1658         max-fsm-thread-paths): New.
1659
1660         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
1661         max-fsm-thread-paths): Documented.
1662
1663         * tree-cfg.c (split_edge_bb_loc): Export.
1664         * tree-cfg.h (split_edge_bb_loc): Declared extern.
1665
1666         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
1667         original value of cond when simplification fails.
1668         (fsm_find_thread_path): New.
1669         (fsm_find_control_statement_thread_paths): New.
1670         (thread_through_normal_block): Call find_control_statement_thread_paths.
1671
1672         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
1673         EDGE_FSM_THREAD.
1674         (verify_seme): New.
1675         (duplicate_seme_region): New.
1676         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
1677         calling duplicate_seme_region.
1678
1679         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
1680
1681 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1682
1683         PR target/64200
1684         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1685         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1686
1687 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
1688
1689         PR sanitizer/64170
1690         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
1691         non-NULL, call maybe_get_dominating_check on it even if g is
1692         non-NULL.
1693
1694 2014-12-05  Jeff Law  <law@redhat.com>
1695
1696         * doc/md.texi: Note problems using function calls to determine
1697         insn lengths and point readers to a potential workaround.
1698
1699 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
1700
1701         * combine.c (is_parallel_of_n_reg_sets)
1702         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
1703
1704 2014-12-05  Andrew Pinski  <apinski@cavium.com>
1705
1706         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
1707         than CF10 so 2 is appended on the code.
1708         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
1709         (bswap<mode>2): This so it matches for the optabs.
1710
1711 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1712
1713         * regrename.c (find_best_rename_reg): Rename to ...
1714         (find_rename_reg): This. Also add a parameter to skip tick check.
1715         * regrename.h: Likewise.
1716         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
1717
1718 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1719
1720         PR ipa/64192
1721         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
1722         from bits to bytes after checking they are byte-aligned.
1723
1724 2014-12-05  Renlin Li  <renlin.li@arm.com>
1725
1726         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
1727         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1728         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
1729         IDENT to SCHED.
1730
1731 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
1732
1733         * config/aarch64/aarch64.md (load_pair<mode>): Split to
1734         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
1735         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
1736         from load_pair<mode>.  New alternative to support int/fp
1737         registers in fp/int mode patterns.
1738         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
1739         store_pairsf and store_pairdi.
1740         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
1741         from store_pair<mode>.  New alternative to support int/fp
1742         registers in fp/int mode patterns.
1743         (*load_pair_extendsidi2_aarch64): New pattern.
1744         (*load_pair_zero_extendsidi2_aarch64): New pattern.
1745         (aarch64-ldpstp.md): Include.
1746         * config/aarch64/aarch64-ldpstp.md: New file.
1747         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
1748         New.
1749         (extract_base_offset_in_addr): New.
1750         (aarch64_operands_ok_for_ldpstp): New.
1751         (aarch64_operands_adjust_ok_for_ldpstp): New.
1752         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
1753         (TARGET_SCHED_FUSION_PRIORITY): New hook.
1754         (fusion_load_store): New functon.
1755         (extract_base_offset_in_addr): New function.
1756         (aarch64_gen_adjusted_ldpstp): New function.
1757         (aarch64_sched_fusion_priority): New function.
1758         (aarch64_operands_ok_for_ldpstp): New function.
1759         (aarch64_operands_adjust_ok_for_ldpstp): New function.
1760
1761 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1762
1763         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
1764         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
1765         DWARF_REG_TO_UNWIND_COLUMN.
1766
1767 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1768
1769         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
1770         one particular reg for expand_builtin_init_dwarf_reg_sizes.
1771         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
1772         account for dwarf register spans.
1773
1774 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1775
1776         PR target/64003
1777         * config/i386/i386.md (*jcc_1_bnd): New.
1778         (*jcc_2_bnd): New.
1779         (jump_bnd): New.
1780         (*jcc_1): Remove bnd prefix.
1781         (*jcc_2): Likewise.
1782         (jump): Likewise.
1783
1784 2014-12-05  Renlin Li  <renlin.li@arm.com>
1785
1786         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1787         selected_tune.
1788         (aarch64_override_options): Use selected_cpu's tuning.
1789
1790 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1791
1792         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1793         alignment to section name. Increase default alignment to word.
1794
1795 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1796
1797         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1798         (cgraph_edge): New method redirect_callee_duplicating_thunks.
1799         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1800         created thunks.
1801         (redirect_edge_duplicating_thunks): Turned into edge method
1802         redirect_callee_duplicating_thunks.
1803         (cgraph_node::expand_all_artificial_thunks): New method.
1804         (create_clone): Call expand_all_artificial_thunks.
1805         * ipa-cp.c (perhaps_add_new_callers): Call
1806         redirect_callee_duplicating_thunks instead of redirect_callee.
1807         Also call expand_all_artificial_thunks.
1808
1809 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1810
1811         PR target/64056
1812         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target
1813         Keywords.
1814
1815 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1816
1817         * diagnostic.h (diagnostic_expand_location): New inline function.
1818         * diagnostic.c (diagnostic_build_prefix): Use it.
1819         (diagnostic_show_locus): Likewise.
1820
1821 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
1822
1823         PR bootstrap/64189
1824         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1825         * configure: Regenerated.
1826
1827 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1828
1829         * diagnostic.c (diagnostic_color_init): New.
1830         * diagnostic.h: Declare.
1831         * gcc.c (driver::global_initializations): Use it.
1832         (driver_handle_option): Handle -fdiagnostics-color_.
1833         * toplev.c: Do not include diagnostic-color.h.
1834         (process_options): Do not initialize color diagnostics here.
1835         * common.opt (fdiagnostics-color=): Add Driver.
1836         * opts-global.c (init_options_once): Initialize color here.
1837         * opts.c (common_handle_option): Use diagnostics_color_init.
1838         * diagnostic-color.h: Fix comment.
1839
1840 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1841
1842         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1843         (NIY): Likewise.
1844         (buffer): Rename this variable to...
1845         (tree_pp): ...this.
1846
1847         (do_niy): Rename param from "buffer" to "pp".
1848         (dump_decl_name): Likewise.
1849         (dump_function_name): Likewise.
1850         (dump_function_declaration): Likewise.
1851         (dump_array_domain): Likewise.
1852         (dump_omp_clause): Likewise.
1853         (dump_omp_clauses): Likewise.
1854         (dump_location): Likewise.
1855         (dump_block_node): Likewise.
1856         (dump_generic_node): Likewise.
1857         (print_declaration): Likewise.
1858         (print_struct_decl): Likewise.
1859         (print_call_name): Likewise.
1860         (pretty_print_string): Likewise.
1861         (newline_and_indent): Likewise.
1862
1863         (print_generic_decl): Update for renaming of "buffer" to
1864         "tree_pp".
1865         (print_generic_stmt): Likewise.
1866         (print_generic_stmt_indented): Likewise.
1867         (print_generic_expr): Likewise.
1868         (maybe_init_pretty_print): Likewise.
1869
1870 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1871
1872         PR jit/63854
1873         * tree-pretty-print.c: Eliminate include of <new>.
1874         (buffer): Convert this variable from a pretty_printer to a
1875         pretty_printer *.
1876         (initialized): Eliminate this variable in favor of the NULL-ness
1877         of "buffer".
1878         (print_generic_decl): Update for "buffer" becoming a pointer.
1879         (print_generic_stmt): Likewise.
1880         (print_generic_stmt_indented): Likewise.
1881         (print_generic_expr): Likewise.
1882         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1883         heap and using its non-NULL-ness to ensure idempotency.
1884
1885 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1886
1887         PR jit/63854
1888         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1889         ipa_add_new_function on function_insertion_hook_holder being
1890         non-NULL.
1891         * ipa-reference.c (ipa_reference_c_finalize): Remove
1892         node_removal_hook_holder and node_duplication_hook_holder if
1893         they've been added to symtab.
1894         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1895         before cgraph_c_finalize so that the former can access "symtab".
1896
1897 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1898
1899         * doc/cfg.texi (GIMPLE statement iterators): Add note about
1900         gphi_iterator, and use one in the example.
1901         * doc/gimple.texi (Tuple specific accessors): Add missing
1902         GIMPLE_GOTO section and menu item.
1903         (gimple_build_asm, gimple gimple_build_assign_with_ops)
1904         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1905         description of removed functions.
1906         (gimple_build_assign, gimple_build_bind, gimple_build_call,
1907         gimple_build_call_from_tree, gimple_build_call_vec,
1908         gimple_build_catch, gimple_build_cond,
1909         gimple_build_cond_from_tree, gimple_build_debug_bind,
1910         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1911         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1912         gimple_build_omp_continue, gimple_build_omp_critical,
1913         gimple_build_omp_for, gimple_build_omp_parallel,
1914         gimple_build_omp_sections, gimple_build_omp_single,
1915         gimple_build_return, gimple_build_resx, gimple_build_switch,
1916         gimple_build_try): Update return type within description to
1917         reflect changes in gimple.h to using gimple subclasses.
1918         (gimple_build_asm_vec): Update return type, params and
1919         description.
1920         (gimple_asm_ninputs): Update param.
1921         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1922         gimple_asm_set_input_op, gimple_asm_output_op
1923         gimple_asm_set_output_op, gimple_asm_clobber_op,
1924         gimple_asm_set_clobber_op, gimple_asm_string,
1925         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1926         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1927         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1928         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1929         gimple_call_return_type, gimple_call_set_chain,
1930         gimple_call_set_tail, gimple_call_tail_p,
1931         gimple_call_copy_skip_args, gimple_catch_types,
1932         gimple_catch_types_ptr, gimple_catch_handler,
1933         gimple_catch_set_types, gimple_catch_set_handler,
1934         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1935         gimple_cond_true_label, gimple_cond_set_true_label,
1936         gimple_cond_set_false_label, gimple_cond_false_label,
1937         gimple_cond_make_false, gimple_cond_make_true,
1938         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1939         gimple_eh_must_not_throw_fndecl,
1940         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1941         gimple_label_set_label, gimple_goto_set_dest,
1942         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1943         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1944         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1945         gimple_omp_continue_control_def,
1946         gimple_omp_continue_control_def_ptr,
1947         gimple_omp_continue_set_control_def,
1948         gimple_omp_continue_control_use,
1949         gimple_omp_continue_control_use_ptr,
1950         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1951         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1952         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1953         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1954         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1955         gimple_omp_parallel_data_arg_ptr,
1956         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1957         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1958         gimple_resx_set_region, gimple_return_retval,
1959         gimple_return_set_retval, gimple_switch_num_labels,
1960         gimple_switch_set_num_labels, gimple_switch_index,
1961         gimple_switch_set_index, gimple_switch_label,
1962         gimple_switch_set_label, gimple_switch_default_label,
1963         gimple_switch_set_default_label, gimple_try_set_eval,
1964         gimple_try_set_cleanup): Update initial param within description
1965         to reflect changes in gimple.h to using gimple subclasses.
1966         (Adding a new GIMPLE statement code): Update to reflect gimple
1967         statement subclassing.
1968
1969 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
1970             H.J. Lu  <hongjiu.lu@intel.com>
1971
1972         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1973         Linux/x86-64 linker supports PIE with copy reloc.
1974         * config.in: Regenerated.
1975         * configure: Likewise.
1976
1977         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1978         pc-relative address for undefined, non-weak, non-function
1979         symbol reference in 64-bit PIE if linker supports PIE with
1980         copy reloc.
1981
1982         * doc/sourcebuild.texi: Document pie_copyreloc target.
1983
1984 2014-12-04  Marek Polacek  <polacek@redhat.com>
1985
1986         PR middle-end/56917
1987         * fold-const.c (fold_unary_loc): Perform the negation in A's type
1988         when transforming ~ (A - 1) or ~ (A + -1) to -A.
1989
1990 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1991
1992         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1993
1994 2014-12-04  Richard Biener  <rguenther@suse.de>
1995
1996         * doc/match-and-simplify.texi: Update for recent changes.
1997
1998 2014-12-04  Martin Jambor  <mjambor@suse.cz>
1999
2000         * ipa-prop.h (ipa_alignment): New type.
2001         (ipa_jump_func): New field alignment.
2002         (ipcp_transformation_summary) New type.
2003         (ipcp_grow_transformations_if_necessary): Declare.
2004         (ipa_node_agg_replacements): Removed.
2005         (ipcp_transformations): Declare.
2006         (ipcp_get_transformation_summary): New function.
2007         (ipa_get_agg_replacements_for_node): Use it.
2008         * ipa-cp.c (ipcp_param_lattices): New field alignment.
2009         (print_all_lattices): Also print alignment.
2010         (alignment_bottom_p): New function.
2011         (set_alignment_to_bottom): Likewise.
2012         (set_all_contains_variable): Also set alignment to bottom.
2013         (initialize_node_lattices): Likewise.
2014         (propagate_alignment_accross_jump_function): New function.
2015         (propagate_constants_accross_call): Call it.
2016         (ipcp_store_alignment_results): New function.
2017         (ipcp_driver): Call it.
2018         * ipa-prop.c (ipa_node_agg_replacements): Removed.
2019         (ipcp_transformations): New.
2020         (ipa_print_node_jump_functions_for_edge): Also print alignment.
2021         (ipa_set_jf_unknown): New function.
2022         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
2023         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
2024         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
2025         (ipcp_grow_transformations_if_necessary): New function.
2026         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
2027         (ipa_node_removal_hook): Likewise.
2028         (ipa_node_duplication_hook): Also duplicate alignment results.
2029         (ipa_write_jump_function): Also stream alignments.
2030         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
2031         alignments.
2032         (write_agg_replacement_chain): Renamed to
2033         write_ipcp_transformation_info, also stream alignments.
2034         (read_agg_replacement_chain): Renamed to
2035         read_ipcp_transformation_info, also stream alignments.
2036         (ipa_prop_write_all_agg_replacement): Renamed to
2037         ipcp_write_transformation_summaries. Stream always.
2038         (ipa_prop_read_all_agg_replacement): Renamed to
2039         ipcp_read_transformation_summaries.
2040         (ipcp_update_alignments): New function.
2041         (ipcp_transform_function): Call it, free also alignments.
2042
2043 2014-12-04  Richard Biener  <rguenther@suse.de>
2044
2045         * gimple-fold.c (replace_stmt_with_simplification): Properly
2046         fail when maybe_push_res_to_seq fails.
2047
2048 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
2049
2050         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
2051
2052 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2053
2054         * doc/install.texi: Remove mentions of cloog and ppl.
2055         * doc/invoke.texi: Likewise
2056
2057 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
2058
2059         PR c++/56493
2060         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
2061         Handle COMPOUND_EXPR.
2062
2063 2014-12-04  Richard Biener  <rguenther@suse.de>
2064
2065         * builtins.c (target_newline): Export.
2066         (target_percent_s_newline): Likewise.
2067         (fold_builtin_1): Do not fold printf functions here.
2068         (fold_builtin_2): Likewise.
2069         (fold_builtin_3): Likewise, do not fold strncat.
2070         (fold_builtin_strncat): Move to gimple-fold.c.
2071         (fold_builtin_printf): Likewise.
2072         * builtins.h (target_newline): Declare.
2073         (target_percent_s_newline): Likewise.
2074         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
2075         builtins.c and gimplify.
2076         (gimple_fold_builtin_printf): Likewise.
2077         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
2078         vprintf, printf_chk and vprintf_chk here.
2079
2080 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
2081
2082         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
2083         (floatunssidf2_internal): Same.
2084         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
2085         (rs6000_emit_int_cmove): Same.
2086         (rs6000_sched_reorder): Same.
2087         (altivec_expand_vec_perm_const): Same.
2088         (rs6000_expand_vec_perm_const_1): Same.
2089
2090 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2091
2092         PR rtl-optimization/64010
2093         * reload.c (push_reload): Before reusing a register contained
2094         in an operand as input reload register, ensure that it is not
2095         used in CALL_INSN_FUNCTION_USAGE.
2096
2097 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
2098
2099         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
2100         if it exists.
2101
2102 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
2103
2104         * expmed.c (expand_mult): Use std::swap.
2105
2106         PR c/59708
2107         * expmed.c (expand_widening_mult): Return const0_rtx if
2108         coeff is 0.
2109
2110         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
2111         (gimple_build_assign): Document the new overloads.
2112
2113 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2114
2115         PR target/64019
2116         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2117         not create LO_SUM address for constant addresses if the type can
2118         go in Altivec registers.
2119
2120 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2121
2122         PR fortran/44054
2123         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
2124         (pp_flush): Flush only if flush_p.
2125         (pp_really_flush): New.
2126         * pretty-print.h (struct output_buffer): Add flush_p.
2127         (pp_really_flush): Declare.
2128
2129 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
2130
2131         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
2132         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
2133         (GENGTYPE_OBJS): New.
2134         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
2135         Remove explicit dependencies.
2136         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
2137         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
2138         instead of -DGENERATOR_FILE.
2139         (CFLAGS-errors.o): New.
2140         * gengtype.c: Instead of testing GENERATOR_FILE define, test
2141         HOST_GENERATOR_FILE.  If defined, include config.h and define
2142         GENERATOR_FILE afterwards, otherwise include bconfig.h.
2143         * gengtype-parse.c: Likewise.
2144         * gengtype-state.c: Likewise.
2145         * gengtype-lex.l: Likewise.
2146         * errors.c: Likewise.
2147
2148 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2149
2150         * config/epiphany/epiphany.c (epiphany_override_options):
2151         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
2152         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
2153         reverse_condition_maybe_unordered if flag_finite_math_only is set.
2154
2155 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
2156
2157         Revert:
2158
2159         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
2160         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
2161         when architecture is older than ARMv7.
2162
2163 2014-12-03  Richard Biener  <rguenther@suse.de>
2164
2165         * builtins.c (target_percent_c): Export.
2166         (fold_builtin_fprintf): Move to gimple-fold.c.
2167         (fold_builtin_2): Do not fold fprintf functions.
2168         (fold_builtin_3): Likewise.
2169         (fold_builtin_4): Remove.
2170         (fold_builtin_n): Do not call fold_builtin_4.
2171         * builtins.h (target_percent_c): Declare.
2172         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
2173         builtins.c and gimplify.
2174         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
2175         fprintf_chk and vfprintf_chk here.
2176
2177 2014-12-03  Martin Jambor  <mjambor@suse.cz>
2178
2179         PR ipa/64153
2180         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
2181         type sizes before view_converting.
2182
2183 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
2184
2185         PR rtl-optimization/64151
2186         PR rtl-optimization/64156
2187         * ira-costs.c (scan_one_insn): Revert r218266.
2188
2189 2014-12-03  Richard Biener  <rguenther@suse.de>
2190
2191         * builtins.c (fold_builtin_fpclassify): Change to take
2192         array of arguments instead of CALL_EXPR tree.
2193         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
2194         (fold_builtin_n): Dispatch to fold_builtin_varargs.
2195         (fold_call_expr): Always use fold_builtin_n.
2196         (fold_builtin_call_array): Change to not build the unfolded call,
2197         always use fold_builtin_n.
2198         (fold_builtin_varargs): Change to take array of arguments instead
2199         of CALL_EXPR tree.
2200         (fold_call_stmt): Always use fold_builtin_n.
2201         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
2202         * fold-const.c (fold_build_call_array_loc): Build the call
2203         if fold_builtin_call_array returned NULL_TREE.
2204         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
2205         a CALL_EXPR and use fold_builtin_call_array instead of
2206         fold_call_expr.
2207
2208 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
2209
2210         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
2211         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
2212         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
2213         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
2214         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
2215         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
2216         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
2217         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
2218         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
2219         Change VDQ to VDQ_I.
2220
2221         (mul<mode>3): Change VDQM to VDQ_BHSI.
2222         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
2223         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
2224         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
2225
2226         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
2227         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
2228         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
2229         Change VDW to VD_BHSI.
2230         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
2231         Change VDIC to VD_BHSI.
2232
2233         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
2234         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
2235         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
2236
2237         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
2238         VDIC, VDQQHS): Remove.
2239         (Vwtype): Update comment (changing VDW to VD_BHSI).
2240
2241 2014-12-03  Richard Biener  <rguenther@suse.de>
2242
2243         PR middle-end/14541
2244         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
2245         * match.pd: ... here as patterns.
2246
2247 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
2248
2249         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
2250         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
2251         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
2252         reservation order.
2253
2254 2014-12-03  Tom de Vries  <tom@codesourcery.com>
2255
2256         PR rtl-optimization/63957
2257         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
2258         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
2259         flag_ipa_ra.
2260         (get_call_reg_set_usage): Same.
2261         * lra-assigns.c (lra_assign): Same.
2262         * lra-constraints.c (need_for_call_save_p): Same.
2263         * lra-lives.c (process_bb_lives): Same.
2264         * lra.c (lra): Same.
2265         * calls.c (expand_call): Same.
2266         (emit_library_call_value_1): Same.
2267         * config/arm/arm.c (arm_option_override): Same.
2268         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
2269         OPT_fipa_ra.
2270         * target.def (call_fusage_contains_non_callee_clobbers): Replace
2271         fuse-caller-save with fipa-ra.
2272         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
2273         * common.opt: Same.
2274
2275 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
2276
2277         * sanopt.c (maybe_get_single_definition): New function.
2278         (maybe_get_dominating_check): Ditto.
2279         (can_remove_asan_check): Ditto.
2280         (struct tree_map_traits): New struct.
2281         (struct sanopt_ctx): Use custom traits for asan_check_map.
2282         (maybe_optimize_ubsan_null_ifn): Move code to
2283         maybe_get_dominating_check.
2284         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
2285         into account when optimizing.
2286         (sanopt_optimize_walker): Optimize ASan checks even when
2287         recovering.
2288
2289 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
2290
2291         * config/i386/constraints.md (Yr): New.
2292         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
2293         (REG_CLASS_NAMES): Likewise.
2294         (REG_CLASS_CONTENTS): Likewise.
2295         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
2296         which use only NO_REX_SSE_REGS.
2297         (vec_set<mode>_0): Likewise.
2298         (*vec_setv4sf_sse4_1): Likewise.
2299         (sse4_1_insertps): Likewise.
2300         (*sse4_1_extractps): Likewise.
2301         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
2302         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
2303         (*sse4_1_<code><mode>3<mask_name>): Likewise.
2304         (*sse4_1_<code><mode>3): Likewise.
2305         (*sse4_1_eqv2di3): Likewise.
2306         (sse4_2_gtv2di3): Likewise.
2307         (*vec_extractv4si): Likewise.
2308         (*vec_concatv2si_sse4_1): Likewise.
2309         (vec_concatv2di): Likewise.
2310         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
2311         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
2312         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
2313         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
2314         (<sse4_1_avx2>_mpsadbw): Likewise.
2315         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
2316         (<sse4_1_avx2>_pblendvb): Likewise.
2317         (sse4_1_pblendw): Likewise.
2318         (sse4_1_phminposuw): Likewise.
2319         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
2320         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
2321         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
2322         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
2323         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
2324         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
2325         (sse4_1_ptest): Likewise.
2326         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
2327         (sse4_1_round<ssescalarmodesuffix>): Likewise.
2328         * config/i386/subst.md (mask_prefix4): New.
2329         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
2330
2331 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
2332
2333         PR rtl-optimization/52714
2334         * combine.c (try_combine): Allow combining two insns into two
2335         new insns if at least one of those is a noop.
2336
2337 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
2338
2339         * target.def (fusion_priority): Wrap code with @smallexample.
2340         * doc/tm.texi: Regenerated.
2341
2342 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2343
2344         * diagnostic.c (diagnostic_show_locus): Honor override_column when
2345         placing the caret.
2346
2347 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
2348
2349         * asan.c: (asan_finish_file): Use default priority for constructors
2350         in kernel mode.
2351
2352 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2353
2354         PR target/64115
2355         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
2356         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
2357
2358 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2359
2360         PR target/64108
2361         * config/i386/i386.c (decide_alg): Stop only if there aren't
2362         any usable algorithms.
2363
2364 2014-12-02  Tom de Vries  <tom@codesourcery.com>
2365
2366         PR rtl-optimization/63718
2367         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
2368         Thumb1.
2369
2370 2014-12-02  Richard Biener  <rguenther@suse.de>
2371
2372         * match.pd: When combining divisions exclude the degenerate
2373         case involving INT_MIN from overflow handling.
2374
2375 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2376
2377         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
2378
2379 2014-12-02  Martin Jambor  <mjambor@suse.cz>
2380
2381         PR ipa/63814
2382         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
2383         (cgraph_edge_brings_value_p): New parameter dest, use
2384         same_node_or_its_all_contexts_clone_p and check availability.
2385         (cgraph_edge_brings_value_p): Likewise.
2386         (get_info_about_necessary_edges): New parameter dest, pass it to
2387         cgraph_edge_brings_value_p.  Update caller.
2388         (gather_edges_for_value): Likewise.
2389         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
2390         both the destination and availability.
2391
2392 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
2393
2394         PR target/64113
2395         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
2396         using post-reload splitter.  Use peephole2 pass instead.
2397         (call_value_osf_tlsldm): Ditto.
2398         (TLS_CALL): New int iterator.
2399         (tls): New int attribute.
2400         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
2401         and call_value_tlsldm using TLS_CALL int iterator.
2402
2403 2014-12-02  Richard Biener  <rguenther@suse.de>
2404             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
2405
2406         * genmatch.c: Include hash-set.h.
2407         (fatal_at): Add source_location overload.
2408         (parser::record_operlist): New method.
2409         (parser::push_simplify): Likewise.
2410         (parser::oper_lists_set): New member.
2411         (parser::oper_lists): Likewise.
2412         (parser::parse_operation): Record seen operator list references.
2413         (parser::parse_c_expr): Likewise.
2414         (parser::parse_simplify): Init oper_lists_set and oper_lists
2415         and use push_simplify.
2416         (parser::parser): Init oper_lists_set and oper_lists.
2417
2418 2014-12-02  Richard Biener  <rguenther@suse.de>
2419
2420         * match.pd: Restrict division combining to trunc_div and
2421         exact_div.
2422
2423 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
2424
2425         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
2426         Remove NULL last argument from create_tmp_var calls.
2427         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
2428         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
2429         * config/i386/i386.c (add_condition_to_bb,
2430         ix86_atomic_assign_expand_fenv): Likewise.
2431         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
2432         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
2433         * config/aarch64/aarch64-builtins.c
2434         (aarch64_atomic_assign_expand_fenv): Likewise.
2435         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
2436         Likewise.
2437         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
2438         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
2439         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
2440
2441         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
2442         gimple_build_assign instead of gimple_build_assign_with_ops and swap
2443         the order of first two arguments.
2444         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
2445         Likewise.  Remove last NULL_TREE argument.
2446
2447 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2448
2449         PR rtl-optimization/59278
2450         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
2451
2452 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2453
2454         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
2455
2456 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2457
2458         * combine.c (is_parallel_of_n_reg_sets): New function.
2459         (can_split_parallel_of_n_reg_sets): New function.
2460         (try_combine): If I2 is a PARALLEL of two SETs, split it into
2461         two insns if possible.
2462
2463 2014-12-01  Tobias Burnus  <burnus@net-b.de>
2464             Jack Howarth  <howarth@bromo.med.uc.edu>
2465
2466         PR middle-end/64017
2467         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
2468         New check.
2469         * doc/install.texi (ISL): Permit ISL 0.14.
2470         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
2471         Conditionally use ISL 0.13+ functions.
2472         * graphite-interchange.c: Make 'extern "C"' conditional.
2473         * graphite-isl-ast-to-gimple.c: Ditto.
2474         * graphite-poly.c: Ditto.
2475         * graphite-sese-to-poly.c: Ditto.
2476         * config.in: Regenerate.
2477         * gcc/configure: Regenerate.
2478
2479 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2480
2481         * combine.c (distribute_links): Handle multiple SETs.
2482
2483 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
2484
2485         * combine.c (struct insn_link): New field `regno'.
2486         (alloc_insn_link): New parameter `regno'.  Use it.
2487         (find_single_use): Check the new field.
2488         (can_combine_def_p, can_combine_use_p): New functions.  Split
2489         off from ...
2490         (create_log_links): ... here.  Correct data type of `regno'.
2491         Adjust call to alloc_insn_link.
2492         (adjust_for_new_dest): Find regno, use it in call to
2493         alloc_insn_link.
2494         (try_combine): Check reg_used_between_p when combining a PARALLEL
2495         as earlier insn.  Adjust call to alloc_insn_link.
2496         (distribute_links): Check the new field.
2497
2498 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
2499
2500         PR jit/63854
2501         * real.c (real_from_string): Add missing mpfr_clear.
2502
2503 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
2504
2505         PR jit/63854
2506         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
2507         release of stmts by converting it to an auto_vec.
2508
2509 2014-12-01  Richard Biener  <rguenther@suse.de>
2510
2511         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
2512         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
2513         bootstrap with old GCC.
2514         (generic-match.o-warn): Likewise.
2515
2516 2014-12-01  Richard Biener  <rguenther@suse.de>
2517
2518         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
2519         Properly handle FIXED_CST shifts by INTEGER_CST.
2520         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
2521         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
2522         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
2523         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
2524         (fold_binary_loc): ... here.  Call const_binop overload
2525         with result type.
2526
2527 2014-12-01  Marek Polacek  <polacek@redhat.com>
2528             Jakub Jelinek  <jakub@redhat.com>
2529
2530         PR sanitizer/64121
2531         * ubsan.c (instrument_object_size): Stop searching if the base
2532         occurs in abnormal phi.
2533
2534 2014-12-01  Marek Polacek  <polacek@redhat.com>
2535
2536         PR sanitizer/63956
2537         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
2538
2539 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
2540
2541         * gimple.h (gimple_build_assign_stat): Remove prototype.
2542         (gimple_build_assign): Remove define.  Add overload prototypes
2543         with tree lhs and either a tree rhs, or enum tree_code and
2544         1, 2 or 3 tree operands.
2545         * gimple.c (gimple_build_assign_stat): Renamed to...
2546         (gimple_build_assign): ... this.  Add overloads with
2547         enum tree_code and 1, 2 or 3 tree operands.
2548         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
2549         Rename the 3 operand overload to ...
2550         (gimple_build_assign_1): ... this.  Make it static inline.
2551         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
2552         instead of gimple_build_assign_with_ops, swap the order of first
2553         two arguments and adjust formatting where necessary.
2554         * tree-vect-slp.c (vect_get_constant_vectors,
2555         vect_create_mask_and_perm): Likewise.
2556         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2557         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2558         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2559         * tsan.c (instrument_builtin_call): Likewise.
2560         * tree-chkp.c (chkp_compute_bounds_for_assignment,
2561         chkp_generate_extern_var_bounds): Likewise.
2562         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2563         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
2564         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2565         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
2566         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
2567         gimple_mod_subtract): Likewise.
2568         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2569         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
2570         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
2571         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
2572         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
2573         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
2574         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2575         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2576         adjust_bool_pattern_cast, adjust_bool_pattern,
2577         vect_recog_bool_pattern): Likewise.
2578         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
2579         insert_initializers, introduce_cast_before_cand,
2580         replace_one_candidate): Likewise.
2581         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
2582         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
2583         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
2584         Likewise.
2585         * tree-tailcall.c (adjust_return_value_with_ops,
2586         update_accumulator_with_ops): Likewise.
2587         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
2588         * tree-ssa-reassoc.c (build_and_add_sum,
2589         optimize_range_tests_to_bit_test, update_ops,
2590         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2591         negate_value, repropagate_negates, attempt_builtin_powi,
2592         reassociate_bb): Likewise.
2593         * tree-vect-loop.c (vect_is_simple_reduction_1,
2594         get_initial_def_for_induction, vect_create_epilog_for_reduction):
2595         Likewise.
2596         * ipa-split.c (split_function): Likewise.
2597         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
2598         abs_replacement, neg_replacement): Likewise.
2599         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
2600         * tree-vrp.c (simplify_truth_ops_using_ranges,
2601         simplify_float_conversion_using_ranges,
2602         simplify_internal_call_using_ranges): Likewise.
2603         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
2604         * tree-vect-generic.c (expand_vector_divmod,
2605         optimize_vector_constructor): Likewise.
2606         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
2607         instrument_bool_enum_load): Likewise.
2608         * tree-ssa-loop-manip.c (create_iv): Likewise.
2609         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
2610         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
2611         expand_cilk_for, simd_clone_adjust): Likewise.
2612         * trans-mem.c (expand_transaction): Likewise.
2613         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
2614         vect_setup_realignment, vect_permute_load_chain,
2615         vect_shift_permute_load_chain): Likewise.
2616         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2617         vectorizable_simd_clone_call, vect_gen_widened_results_half,
2618         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
2619         vectorizable_shift, vectorizable_operation, vectorizable_store,
2620         permute_vec_elements, vectorizable_load): Likewise.
2621
2622 2014-12-01  Richard Biener  <rguenther@suse.de>
2623
2624         PR middle-end/64111
2625         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
2626         htab_hash_pointer to not break PCH.
2627
2628 2014-12-01  Richard Biener  <rguenther@suse.de>
2629
2630         PR tree-optimization/15346
2631         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
2632         add -Wno-unused-but-set-variable.
2633         * match.pd: Combine two successive divisions.
2634
2635 2014-12-01  Richard Biener  <rguenther@suse.de>
2636
2637         PR middle-end/64126
2638         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
2639         and -1 - A -> ~A.
2640         * fold-const.c (fold_binary_loc): Remove transforms here.
2641
2642 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
2643
2644         * config/mips/mips.c (mips16_build_call_stub): Move the save of
2645         the return address in $18 ahead of passing arguments to FPRs.
2646
2647 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
2648
2649         PR target/64055
2650         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
2651         values in array domain.
2652
2653 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2654
2655         PR tree-optimization/63941
2656         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
2657         DOM_BB has non-true predicate, conditionally set non-true predicate
2658         for BB.
2659
2660 2014-12-01  Martin Jambor  <mjambor@suse.cz>
2661
2662         PR ipa/63551
2663         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
2664         value of the argument to the type of the value in the condition.
2665
2666 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
2667
2668         PR target/63986
2669         PR target/51244
2670         * config/sh/sh.c (sh_unspec_insn_p,
2671         sh_insn_operands_modified_between_p): New functions.
2672         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
2673         are modified or if it has side effects, may trap or is volatile.
2674
2675 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2676
2677         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
2678         create_tmp_reg): Add default NULL value to last argument.
2679         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
2680         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
2681         last argument from create_tmp_var_raw, create_tmp_var,
2682         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
2683         * tree-ssa-strlen.c (get_string_length): Likewise.
2684         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
2685         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2686         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2687         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2688         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2689         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2690         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2691         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2692         * tsan.c (instrument_expr, instrument_builtin_call,
2693         instrument_func_entry): Likewise.
2694         * varpool.c (add_new_static_var): Likewise.
2695         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2696         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
2697         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
2698         gimplify_init_ctor_eval_range, gimplify_init_constructor,
2699         gimplify_omp_atomic, gimplify_expr): Likewise.
2700         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2701         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
2702         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
2703         vect_loop_versioning): Likewise.
2704         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
2705         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2706         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2707         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2708         vect_recog_over_widening_pattern): Likewise.
2709         * tree-sra.c (build_ref_for_offset, create_access_replacement):
2710         Likewise.
2711         * tree-cfg.c (make_blocks): Likewise.
2712         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
2713         Likewise.
2714         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
2715         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
2716         Likewise.
2717         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
2718         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
2719         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
2720         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
2721         * tree-ssa-reassoc.c (build_and_add_sum,
2722         optimize_range_tests_to_bit_test, update_ops,
2723         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2724         negate_value, repropagate_negates): Likewise.
2725         * tree-vect-loop.c (vect_is_simple_reduction_1,
2726         vect_create_epilog_for_reduction): Likewise.
2727         * ipa-split.c (split_function): Likewise.
2728         * tree-inline.c (remap_ssa_name, setup_one_parameter,
2729         declare_return_variable, tree_function_versioning): Likewise.
2730         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2731         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
2732         Likewise.
2733         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
2734         neg_replacement): Likewise.
2735         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
2736         Likewise.
2737         * tree-vrp.c (simplify_truth_ops_using_ranges,
2738         simplify_float_conversion_using_ranges,
2739         simplify_internal_call_using_ranges): Likewise.
2740         * tree-switch-conversion.c (emit_case_bit_tests,
2741         build_one_array, build_arrays, gen_def_assigns): Likewise.
2742         * gimple-fold.c (gimple_fold_builtin_memory_op,
2743         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
2744         * tree-vect-generic.c (expand_vector_divmod,
2745         optimize_vector_constructor): Likewise.
2746         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
2747         ubsan_expand_objsize_ifn, instrument_si_overflow,
2748         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
2749         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
2750         * tree-ssa-loop-manip.c (create_iv,
2751         tree_transform_and_unroll_loop): Likewise.
2752         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
2753         lower_rec_input_clauses, lower_lastprivate_clauses,
2754         expand_parallel_call, expand_omp_for_static_chunk,
2755         expand_omp_atomic_pipeline, expand_omp_target,
2756         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
2757         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
2758         lower_depend_clauses, lower_omp_target, lower_omp_1,
2759         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
2760         * tree-parloops.c (take_address_of, create_phi_for_local_result,
2761         create_call_for_reduction_1, separate_decls_in_region,
2762         create_parallel_loop): Likewise.
2763         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
2764         handle_scalar_deps_crossing_scop_limits): Likewise.
2765         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
2766         expand_assign_tm, expand_call_tm, expand_transaction,
2767         ipa_tm_insert_gettmclone_call): Likewise.
2768         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
2769         Likewise.
2770         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2771         vectorizable_call, vectorizable_simd_clone_call,
2772         vectorizable_conversion, vectorizable_store, permute_vec_elements,
2773         vectorizable_load): Likewise.
2774
2775 2014-11-29  Tobias Burnus  <burnus@net-b.de>
2776             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2777
2778         * opt-functions.awk (lang_enabled_by): Support || for
2779         enabled-by.
2780         * optc-gen.awk: Ditto.
2781         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
2782         || syntax.
2783
2784 2014-11-28  Mike Stump  <mikestump@comcast.net>
2785
2786         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
2787         (bitmap_ior_and_compl): Likewise.
2788
2789 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2790
2791         PR target/64061
2792         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
2793         subreg.
2794
2795 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
2796
2797         PR target/64093
2798         * config/rs6000/rs6000.md (and<mode>3): Don't generate
2799         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2800
2801 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2802
2803         PR rtl-optimization/64087
2804         * lra-lives.c (process_bb_lives): Add debug output.
2805         (lra_create_live_ranges): Don't remove dead insn on the second
2806         call of lra_create_live_ranges_1.
2807
2808 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
2809
2810         PR rtl-optimization/64037
2811         * combine.c (setup_incoming_promotions): Pass the argument
2812         before any promotions happen to promote_function_mode.
2813
2814 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
2815
2816         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2817         permutations to loads group of size 3.
2818
2819 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
2820
2821         * config/arm/arm.md (copysignsf3): New pattern.
2822         (copysigndf3): Likewise.
2823
2824 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2825             Ilya Verbin  <ilya.verbin@intel.com>
2826
2827         * omp-low.c (lower_omp_critical): Mark critical sections
2828         inside target functions as offloadable.
2829
2830 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2831
2832         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2833         file contains sections with LTO and offload IR, respectively.
2834
2835 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2836
2837         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2838         (symbol_table::compile): Set flag_generate_offload if there is something
2839         to offload.
2840         * common.opt (flag_generate_offload): New Variable declaration.
2841         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2842         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2843         flag_generate_offload is set.
2844         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2845         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2846         is set.
2847         * toplev.c (compile_file): Emit LTO marker if offload info has been
2848         previously emitted.  Do not emit lto_slim marker if
2849         flag_generate_offload is without flag_generate_lto.
2850         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2851
2852 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2853
2854         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2855         * config/arm/arm-tables.opt: Regenerate.
2856         * config/arm/arm-tune.md: Regenerate.
2857         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2858         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2859         MULTILIB_MATCHES.
2860
2861 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2862
2863         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2864         Include cortex-a17.md.
2865         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2866         * config/arm/arm-cores.def (cortex-a17): New entry.
2867         * config/arm/arm-tables.opt: Regenerate.
2868         * config/arm/arm-tune.md: Regenerate.
2869         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2870         * config/arm/cortex-a17.md: New file.
2871         * config/arm/cortex-a17-neon.md: New file.
2872         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2873         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2874
2875 2014-11-28  Richard Biener  <rguenther@suse.de>
2876
2877         PR middle-end/64084
2878         * genmatch.c (dt_node::gen_kids_1): New function, split out
2879         from dt_node::gen_kids.
2880         (decision_tree::cmp_node): DT_TRUE are generally not equal.
2881         (decision_tree::find_node): Treat DT_TRUE as barrier for
2882         node CSE on the same level.
2883         (dt_node::append_node): Do not keep DT_TRUE last.
2884         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2885
2886 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2887
2888         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2889         -march=armv8-a+crc.
2890
2891 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
2892
2893         * config/i386/i386.md (preferred_for_size): New attribute
2894         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
2895         attribute to conditionally disable alternative 1.
2896         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
2897         and prefered_for_speed attributes to conditionally disable
2898         alternative 1.
2899         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
2900         preferred_for_size attribute to conditionally disable
2901         alternatives 3 and 4.
2902         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
2903         preferred_for_size and prefered_for_speed attributes to conditionally
2904         disable alternatives 3 and 4.
2905         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2906
2907 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2908
2909         * dwarf2out.c (set_block_origin_self): Skip nested functions.
2910
2911 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
2912
2913         PR target/63833
2914         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2915         R15_REG for 64-bit.
2916         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2917
2918 2014-11-27  Martin Liska  <mliska@suse.cz>
2919             David Malcolm  <dmalcolm@redhat.com>
2920
2921         * ipa-icf.c (sem_function::equals_private): int* is replaced with
2922         auto_vec.
2923         (sem_function::bb_dict_test): Likewise.
2924         * ipa-icf.h: Likewise.
2925
2926 2014-11-27  Richard Biener  <rguenther@suse.de>
2927
2928         PR middle-end/64088
2929         * fold-const.c (const_unop): Re-instantiate missing condition
2930         before calling fold_abs_const.
2931
2932         PR tree-optimization/64088
2933         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2934         the stmt break from the loop over use operands.
2935
2936 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
2937
2938         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2939         Define.
2940         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2941         (fold_builtin_cpu): Ditto.
2942         * doc/extend.texi: Documment it.
2943
2944 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
2945
2946         PR middle-end/64067
2947         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2948         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2949         not only if modifier is EXPAND_INITIALIZER, but whenever
2950         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2951
2952         PR tree-optimization/64024
2953         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2954         field.  Add simd_clone_info field.
2955         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2956         (STMT_VINFO_SIMD_CLONE_INFO): Define.
2957         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2958         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2959         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
2960         base and linear_step from analysis phase and use it during transform
2961         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2962         multiplied by linear_step.
2963         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2964
2965         PR lto/64025
2966         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
2967         if it is CONSTANT_P other than CONST_INT.
2968
2969 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2970
2971         PR target/59593
2972         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2973         based on mode size.
2974         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2975         make it TARGET_EITHER.
2976         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2977         and move HFmode handling from consttable_4 to it.
2978         (consttable_4): Move HFmode handling to consttable_2 pattern.
2979         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2980         (consttable_2): Ditto.
2981
2982 2014-11-27  Richard Biener  <rguenther@suse.de>
2983
2984         * tree-ssa-sccvn.c (try_to_simplify): Allow
2985         gimple_fold_stmt_to_constant_1 to follow SSA edges.
2986
2987 2014-11-27  Richard Biener  <rguenther@suse.de>
2988
2989         PR tree-optimization/64083
2990         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2991         forcibly mark loop for removal the wrong way.
2992
2993 2014-11-27  Richard Biener  <rguenther@suse.de>
2994
2995         PR middle-end/63704
2996         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2997         and instead return false when !fstrict-aliasing.
2998
2999 2014-11-27  Richard Biener  <rguenther@suse.de>
3000
3001         PR tree-optimization/61634
3002         * tree-vect-slp.c: Include gimple-walk.h.
3003         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
3004         down the SLP tree for one scalar statement.
3005         (vect_detect_hybrid_slp_1): New walker function.
3006         (vect_detect_hybrid_slp_2): Likewise.
3007         (vect_detect_hybrid_slp): Properly handle pattern statements
3008         in a pre-scan over all loop stmts.
3009
3010 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3011
3012         Revert:
3013         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3014         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
3015         aarch64_convert_mode, aarch64_gen_ccmp_first,
3016         aarch64_gen_ccmp_next): New functions.
3017         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
3018
3019 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
3020
3021         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
3022         without -pie or -shared, error on -fsanitize=thread -static instead.
3023
3024 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3025
3026         PR ipa/61190
3027         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
3028         (cgraph_node::function_or_virtual_thunk_symbol): New function.
3029         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
3030         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
3031         Add new optional parameter exclude_virtual_thunks.
3032         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
3033         optional parameter exclude_virtual_thunks.
3034         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
3035         (cgraph_node::set_pure_flag): Likewise.
3036         (cgraph_node::function_symbol): Simplified.
3037         (cgraph_node::function_or_virtual_thunk_symbol): New function.
3038         * ipa-pure-const.c (analyze_function): For virtual thunks set
3039         pure_const_state to IPA_NEITHER.
3040         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
3041
3042 2014-11-26  Richard Biener  <rguenther@suse.de>
3043
3044         PR middle-end/63738
3045         * tree-data-ref.c (split_constant_offset_1): Do not follow
3046         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3047
3048 2014-11-26  Richard Biener  <rguenther@suse.de>
3049
3050         * fold-const.h (const_unop): Declare.
3051         (const_binop): Likewise.
3052         * fold-const.c (const_binop): Export overload that expects
3053         a type parameter and dispatches to fold_relational_const as well.
3054         Check both operand kinds for guarding the transforms.
3055         (const_unop): New function, with constant folding from fold_unary_loc.
3056         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
3057         Remove constant folding done there from the simplifications.
3058         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
3059         (fold_negate_expr): Remove dead code from the REAL_CST case.
3060         Avoid building garbage in the COMPLEX_CST case.
3061         * gimple-match-head.c (gimple_resimplify1): Dispatch to
3062         const_unop.
3063         (gimple_resimplify2): Dispatch to const_binop.
3064         (gimple_simplify): Likewise.
3065
3066 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
3067
3068         PR bootstrap/63995
3069         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
3070         debug statement when searching for a new position for
3071         bounds load/creation statement.
3072
3073 2014-11-26  Marek Polacek  <polacek@redhat.com>
3074
3075         PR sanitizer/63788
3076         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
3077         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
3078         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
3079
3080 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
3081
3082         PR lto/64075
3083         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
3084         proper size for function_code bitfield.
3085         (pack_ts_function_decl_value_fields): Likewise.
3086
3087 2014-11-21  Mark Wielaard  <mjw@redhat.com>
3088
3089         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
3090         * opts.c (common_handle_option): Accept -gdwarf-5.
3091         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
3092         DW_LANG_C_plus_plus_14.
3093         (lower_bound_default): Likewise. Plus DW_LANG_C11.
3094         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
3095         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
3096         (output_compilation_unit_header): Output at most a DWARFv4 header.
3097         (output_skeleton_debug_sections): Likewise.
3098         (output_line_info): Likewise.
3099         (output_aranges): Document header version number.
3100
3101 2014-11-26  Richard Biener  <rguenther@suse.de>
3102
3103         * gimple-fold.c (get_symbol_constant_value): Allow all
3104         GIMPLE register type zero-constants.
3105
3106 2014-11-26  Mark Wielaard  <mjw@redhat.com>
3107
3108         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
3109         function decl has TREE_THIS_VOLATILE.
3110
3111 2014-11-26  Richard Biener  <rguenther@suse.de>
3112
3113         PR tree-optimization/62238
3114         * tree-predcom.c (ref_at_iteration): Unshare the expression
3115         before gimplifying it.
3116         (prepare_initializers_chain): Discard unused seq.
3117
3118 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
3119
3120         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
3121         for p5600.
3122
3123 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
3124
3125         * ira-lives.c (process_bb_node_lives): Make code with conditional
3126         REAL_PIC_OFFSET_TABLE_REGNUM.
3127
3128 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
3129
3130         PR target/63527
3131         * ira-lives.c (process_bb_node_lives): Check and remove conflict
3132         of pic pseudo with pic hard reg.
3133
3134 2014-11-25  Rohit  <rohitarulraj@freescale.com>
3135
3136         PR bootstrap/63703
3137         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
3138         added GCC hard register numbers for SPE high registers.
3139
3140 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3141
3142         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
3143         before removing it, not after.
3144
3145 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3146
3147         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
3148         PATTERN call.
3149
3150 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3151
3152         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
3153         of addic.
3154
3155 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
3156
3157         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
3158         (rest of file): Replace those with code resp. CODE.
3159
3160 2014-11-25  Tom de Vries  <tom@codesourcery.com>
3161
3162         * tree-cfg.c (verify_sese): New function.
3163         (move_sese_region_to_fn): Call verify_sese.
3164         * tree-cfg.h (verify_sese): Declare.
3165
3166 2014-11-25  Richard Biener  <rguenther@suse.de>
3167
3168         PR lto/64065
3169         * lto-streamer-out.c (output_struct_function_base): Stream
3170         last_clique field.
3171         * lto-streamer-in.c (input_struct_function_base): Likewise.
3172
3173 2014-11-25  Martin Liska  <mliska@suse.cz>
3174
3175         PR bootstrap/64050
3176         PR ipa/64060
3177         * sreal.c (sreal::operator+): Addition fixed.
3178         (sreal::signedless_plus): Negative numbers are
3179         handled correctly.
3180         (sreal::operator-): Subtraction is fixed.
3181         (sreal::signedless_minus): Negative numbers are
3182         handled correctly.
3183         * sreal.h (sreal::operator<): Equal negative numbers
3184         are compared correctly.
3185         (sreal::shift): New checking asserts are introduced.
3186         Operation is fixed.
3187
3188 2014-11-25  Richard Biener  <rguenther@suse.de>
3189
3190         PR tree-optimization/61927
3191         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
3192         of group and pattern analysis to the one in GCC 4.8.
3193
3194 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
3195             Jakub Jelinek  <jakub@redhat.com>
3196
3197         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
3198         strlen, strncpy.
3199         * lto-wrapper.c (append_offload_options): Likewise.
3200
3201 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
3202
3203         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
3204         load the static chain if the call was originally direct.
3205
3206 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
3207
3208         PR ipa/64059
3209         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
3210         devirtualization is disabled.
3211
3212 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3213
3214         PR target/63965
3215         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
3216         Altivec & -16 mask if the type is not valid for Altivec registers.
3217         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
3218         reg) that occurs during push_reload processing.
3219
3220         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
3221         alternative for moving constant vectors which are easy altivec
3222         constants to GPRs.  Set the length attribute each of the
3223         alternatives.
3224
3225         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
3226         work in progress patch was committed instead of the fixes for
3227         63965.
3228         * config/rs6000/rs6000.c: Likewise.
3229
3230 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
3231
3232         PR ipa/63671
3233         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
3234         and -fno-devirtualize more carefully.
3235         (can_remove_node_now_p): Update.
3236
3237 2014-11-24  Andrew Pinski  <apinski@cavium.com>
3238
3239         PR rtl-opt/63972
3240         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
3241
3242 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
3243
3244         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
3245
3246 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
3247
3248         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
3249         Refactor by combining switch statements and make arrays into scalars.
3250
3251 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
3252
3253         PR c++/58561
3254         * dbxout.c: Include stringpool.h
3255         (dbxout_type) [default]: Ignore auto type.
3256
3257 2014-11-24  Richard Biener  <rguenther@suse.de>
3258
3259         PR tree-optimization/63679
3260         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
3261         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
3262         to properly leave off at -1.
3263         (fully_constant_vn_reference_p): Generalize folding from
3264         constant initializers.
3265         (vn_reference_lookup_3): When looking through aggregate copies
3266         handle offsetted reads and try simplifying the result to
3267         a constant.
3268         * gimple-fold.h (fold_ctor_reference): Export.
3269         * gimple-fold.c (fold_ctor_reference): Likewise.
3270
3271 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
3272
3273         * simplify-rtx.c (simplify_ternary_operation): Simplify
3274         vec_merge (vec_duplicate (vec_select)).
3275
3276 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3277
3278         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
3279         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
3280         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
3281
3282 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3283
3284         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
3285         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
3286         (cortexa57_tunings): Likewise.
3287         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
3288
3289 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3290
3291         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
3292         in the not conditional jump case.
3293         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
3294         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
3295
3296 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3297
3298         * config/aarch64/aarch64.c: Include tm-constrs.h
3299         (AARCH64_FUSE_ADRP_ADD): Define.
3300         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
3301         (cortexa53_tunings): Likewise.
3302         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
3303
3304 2014-11-24  Martin Liska  <mliska@suse.cz>
3305
3306         * ipa-inline.c (edge_badness): long is replaced by sreal
3307         as fibonacci_heap template type.
3308         (update_edge_key): Likewise.
3309         (inline_small_functions): Likewise.
3310
3311 2014-11-24  Martin Liska  <mliska@suse.cz>
3312
3313         * predict.c (propagate_freq): More elegant sreal API is used.
3314         (estimate_bb_frequencies): Precomputed constants replaced by integer
3315         constants.
3316         * sreal.c (sreal::normalize): New function.
3317         (sreal::to_int): Likewise.
3318         (sreal::operator+): Likewise.
3319         (sreal::operator-): Likewise.
3320         (sreal::signedless_plus): Likewise.
3321         (sreal::signedless_minus): Likewise.
3322         (sreal::operator/): Negative number support is added.
3323         * sreal.h: Definition of new functions added.
3324         (inline sreal operator<<): New function.
3325         (inline sreal operator>>): Likewise.
3326
3327 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3328
3329         * config/aarch64/aarch64-protos.h (struct tune_params): Add
3330         fuseable_ops field.
3331         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
3332         (cortexa53_tunings): Likewise.
3333         (cortexa57_tunings): Likewise.
3334         (thunderx_tunings): Likewise.
3335         (aarch64_macro_fusion_p): New function.
3336         (aarch_macro_fusion_pair_p): Likewise.
3337         (TARGET_SCHED_MACRO_FUSION_P): Define.
3338         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
3339         (AARCH64_FUSE_MOV_MOVK): Likewise.
3340         (AARCH64_FUSE_NOTHING): Likewise.
3341
3342 2014-11-24  Martin Liska  <mliska@suse.cz>
3343
3344         PR lto/63968
3345         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
3346         with replace_key method.
3347         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
3348         (fibonacci_heap::replace_key_data): Likewise.
3349         (fibonacci_heap::replace_key): New method that can even increment key,
3350         this operation costs O(log N).
3351         (fibonacci_heap::extract_min): New argument.
3352         (fibonacci_heap::delete_node): Likewise.
3353
3354 2014-11-24  Richard Biener  <rguenther@suse.de>
3355
3356         PR tree-optimization/55334
3357         * function.h (struct function): Add last_clique member.
3358         * tree-inline.c (remap_dependence_clique): New function.
3359         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
3360         (copy_tree_body_r): Likewise.
3361         (copy_cfg_body): Free dependence map.
3362         (copy_gimple_seq_and_replace_locals): Likewise.
3363         * tree-pretty-print.c (dump_generic_node): Dump
3364         dependence info.
3365         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
3366         to answer alias query.
3367         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
3368         tree-pretty-print.h and gimple-walk.h.
3369         (struct variable_info): Add is_restrict_var flag and ruid
3370         member.
3371         (new_var_info): Initialize is_restrict_var.
3372         (make_constraint_from_restrict): Likewise.
3373         (create_variable_info_for): Exclude restricts from global vars
3374         from new handling.
3375         (intra_create_variable_infos): But not those from parameters.
3376         (visit_loadstore): New function.
3377         (maybe_set_dependence_info): Likewise.
3378         (compute_dependence_clique): Likewise.
3379         (compute_may_aliases): Call compute_dependence_clique.
3380         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
3381         to fake MEM_REF.
3382         (dr_may_alias_p): Use recorded dependence info to answer
3383         alias query.
3384         * tree-core.h (struct tree_base): Add clique, base struct in
3385         union.
3386         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
3387         (MR_DEPENDENCE_BASE): Likewise.
3388         * tree-inline.h (dependence_hasher): New hash-map kind.
3389         (struct copy_body_data): Add dependence_map pointer.
3390         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
3391         throwing away dependence info.
3392         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
3393         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
3394
3395 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
3396
3397         PR target/53976
3398         * config/sh/sh_optimize_sett_clrt.cc
3399         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
3400         of void.  Abort at complex edges.
3401         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
3402         returned false.
3403
3404 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
3405
3406         PR other/63694
3407         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
3408         declarations.
3409         * configure: Regenerated.
3410         * config.in: Regenerated.
3411
3412 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
3413
3414         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
3415         clones as having abstract origin used.
3416         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
3417         origin check.
3418         (clone_inlined_nodes): Copy abstract originflag.
3419         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
3420         abstract origin node.
3421
3422 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
3423
3424         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
3425         * config/i386/i386.c (ix86_option_override_internal): Do not increase
3426         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3427
3428 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
3429
3430         PR target/63783
3431         PR target/51244
3432         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
3433         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
3434         Adjust related comments throughout the file.
3435
3436 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
3437
3438         PR target/63986
3439         PR target/51244
3440         * config/sh/sh.c (sh_is_logical_t_store_expr,
3441         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
3442         (sh_split_movrt_negc_to_movt_xor): New function.
3443         (sh_find_set_of_reg): Move to ...
3444         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
3445         to template function.
3446         (set_of_reg): Use rtx_insn* for insn member.
3447         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
3448         rtx_insn* for insn argument.
3449         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
3450         sequence using new sh_split_movrt_negc_to_movt_xor function.
3451         (movrt_xor): Allow also for SH2A.
3452         (*movt_movrt): Delete insns and splits.
3453
3454 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
3455
3456         PR tree-optimization/60770
3457         * tree-sra.c (clobber_subtree): New function.
3458         (sra_modify_constructor_assign): Call it.
3459
3460 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
3461
3462         PR target/63897
3463         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
3464         argument.
3465         (process_bb_lives): Rename dead_insn_p on remove_p
3466         and global_live_info_p on dead_insn_p.  Calculate local live info
3467         unconditionally.  Remove last argument in calls mark_regno_live and
3468         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
3469         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
3470         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
3471         flag of live info change.
3472         (lra_create_live_ranges): New.
3473
3474 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3475
3476         PR target/63848
3477         PR target/63975
3478         * internal-fn.c (expand_arith_overflow_result_store,
3479         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
3480         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
3481         adjust arguments to those functions.  Use unsignedp = true for
3482         EQ, NE, GEU, LEU, LTU and GTU comparisons.
3483
3484         PR tree-optimization/64006
3485         * tree-vrp.c (stmt_interesting_for_vrp): Return true
3486         for {ADD,SUB,MUL}_OVERFLOW internal calls.
3487         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
3488         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
3489         immediate uses would change their value ranges and return
3490         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
3491         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
3492         interesting for vrp.
3493
3494 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3495
3496         PR target/63965
3497         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
3498         Altivec & -16 mask if the type is not valid for Altivec registers.
3499         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
3500         reg) that occurs during push_reload processing.
3501
3502         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
3503         alternative for moving constant vectors which are easy altivec
3504         constants to GPRs.  Set the length attribute each of the
3505         alternatives.
3506
3507 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
3508
3509         * configure.ac: When checking for MIPS .module support ensure that
3510         o32 FPXX is supported to avoid a second configure check.
3511         * configure: Regenerate.
3512
3513 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
3514
3515         * config/aarch64/iterators.md (VS): New mode iterator.
3516         (vsi2qi): New mode attribute.
3517         (VSI2QI): Likewise.
3518         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
3519         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
3520         * config/aarch64/aarch64-builtins.c
3521         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
3522
3523 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
3524
3525         PR bootstrap/63784
3526         * configure: Regenerated.
3527
3528 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3529
3530         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
3531
3532 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3533
3534         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
3535         OPTION_MASK_ISA_PCOMMIT_SET): New.
3536         (ix86_handle_option): Handle OPT_mpcommit.
3537         * config.gcc: Add pcommitintrin.h
3538         * config/i386/pcommitintrin.h: New file.
3539         * config/i386/cpuid.h (bit_PCOMMIT): Define.
3540         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
3541         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3542         __PCOMMIT__.
3543         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
3544         (PTA_PCOMMIT): Define.
3545         (ix86_option_override_internal): Handle new option.
3546         (ix86_valid_target_attribute_inner_p): Add pcommit.
3547         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
3548         (bdesc_special_args): Add __builtin_ia32_pcommit.
3549         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
3550         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
3551         (pcommit): New instruction.
3552         * config/i386/i386.opt: Add mpcommit.
3553         * config/i386/x86intrin.h: Include pcommitintrin.h.
3554
3555 2014-11-20  Mark Wielaard  <mjw@redhat.com>
3556
3557         PR debug/38757
3558         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
3559         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
3560         (darwin_override_options): Likewise.
3561         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
3562         Likewise.
3563         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
3564         Likewise.
3565         * dbxout.c (get_lang_number): Likewise.
3566         (dbxout_type): Likewise.
3567         (dbxout_symbol_location): Likewise.
3568         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
3569         also for DW_LANG_{C,C99,ObjC}.
3570         (highest_c_language): New function.
3571         (gen_compile_unit_die): Call highest_c_language to merge LTO
3572         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
3573         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
3574         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
3575         * langhooks.h (struct lang_hooks): Add version comment to name.
3576         (lang_GNU_C): New function declaration.
3577         (lang_GNU_CXX): Likewise.
3578         * langhooks.c (lang_GNU_C): New function.
3579         (lang_GNU_CXX): Likewise.
3580         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
3581
3582 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3583
3584         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
3585         OPTION_MASK_ISA_CLWB_SET): New.
3586         (ix86_handle_option): Handle OPT_mclwb.
3587         * config.gcc: Add clwbintrin.h.
3588         * config/i386/clwbintrin.h: New file.
3589         * config/i386/cpuid.h (bit_CLWB): Define.
3590         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
3591         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3592         __CLWB__.
3593         * config/i386/i386.c (ix86_target_string): Add -mclwb.
3594         (PTA_CLWB): Define.
3595         (ix86_option_override_internal): Handle new option.
3596         (ix86_valid_target_attribute_inner_p): Add clwb.
3597         (ix86_builtins): Add IX86_BUILTIN_CLWB.
3598         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
3599         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
3600         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
3601         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
3602         (clwb): New instruction.
3603         * config/i386/i386.opt: Add mclwb.
3604         * config/i386/x86intrin.h: Include clwbintrin.h.
3605
3606 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3607
3608         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
3609         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
3610         (ix86_handle_option): Handle OPT_mavx512vbmi.
3611         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
3612         * config/i386/avx512vbmiintrin.h: New file.
3613         * config/i386/avx512vbmivlintrin.h: Ditto.
3614         * config/i386/cpuid.h (bit_AVX512VBMI): New.
3615         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
3616         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3617         __AVX512VBMI__.
3618         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
3619         (PTA_AVX512VBMI): Define.
3620         (ix86_option_override_internal): Handle new options.
3621         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
3622         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
3623         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
3624         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
3625         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
3626         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
3627         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
3628         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
3629         IX86_BUILTIN_VPERMI2VARQI128.
3630         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
3631         __builtin_ia32_vpmultishiftqb256_mask,
3632         __builtin_ia32_vpmultishiftqb128_mask,
3633         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
3634         __builtin_ia32_vpermt2varqi512_maskz,
3635         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
3636         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
3637         __builtin_ia32_vpermt2varqi256_maskz,
3638         __builtin_ia32_vpermt2varqi128_mask,
3639         __builtin_ia32_vpermt2varqi128_maskz,
3640         __builtin_ia32_vpermi2varqi256_mask,
3641         __builtin_ia32_vpermi2varqi128_mask.
3642         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
3643         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
3644         * config/i386/i386.opt: Add mavx512vbmi.
3645         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
3646         avx512vbmivlintrin.h.
3647         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
3648         (VI1_AVX512VL): New iterator.
3649         (<avx512>_permvar<mode><mask_name>): Use it.
3650         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
3651         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
3652         (<avx512>_vpermi2var<mode>3_mask): Ditto.
3653         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
3654         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
3655         (<avx512>_vpermt2var<mode>3_mask): Ditto.
3656         (vpmultishiftqb<mode><mask_name>): Ditto.
3657
3658 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3659
3660         PR rtl-optimization/63952
3661         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
3662         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
3663         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
3664
3665 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3666
3667         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
3668         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
3669         (ix86_handle_option): Handle OPT_mavx512ifma.
3670         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
3671         * config/i386/avx512ifmaintrin.h: New file.
3672         * config/i386/avx512ifmaivlntrin.h: Ditto.
3673         * config/i386/cpuid.h (bit_AVX512IFMA): New.
3674         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3675         avx512ifma.
3676         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3677         __AVX512IFMA__.
3678         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
3679         (PTA_AVX512IFMA): Define.
3680         (ix86_option_override_internal): Handle new options.
3681         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
3682         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
3683         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
3684         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
3685         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
3686         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
3687         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
3688         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
3689         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
3690         __builtin_ia32_vpmadd52luq512_maskz,
3691         __builtin_ia32_vpmadd52huq512_mask,
3692         __builtin_ia32_vpmadd52huq512_maskx,
3693         __builtin_ia32_vpmadd52luq256_mask,
3694         __builtin_ia32_vpmadd52luq256_maskz,
3695         __builtin_ia32_vpmadd52huq256_mask,
3696         __builtin_ia32_vpmadd52huq256_maskz,
3697         __builtin_ia32_vpmadd52luq128_mask,
3698         __builtin_ia32_vpmadd52luq128_maskz,
3699         __builtin_ia32_vpmadd52huq128_mask,
3700         __builtin_ia32_vpmadd52huq128_maskz,
3701         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
3702         * config/i386/i386.opt: Add mavx512ifma.
3703         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
3704         avx512ifmavlintrin.h.
3705         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
3706         UNSPEC_VPMADD52HUQ.
3707         (VPMADD52): New iterator.
3708         (vpmadd52type): New attribute.
3709         (vpamdd52huq<mode>_maskz): New.
3710         (vpamdd52luq<mode>_maskz): Ditto.
3711         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
3712         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
3713
3714 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
3715
3716         Revert:
3717         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
3718         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
3719
3720 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
3721
3722         * config/mips/mips.c (mips_process_sync_loop): Place a
3723         nop in the delay slot of the branch likely instruction.
3724         (mips_output_sync_loop): Ensure mips_branch_likely is
3725         set before calling mips_output_sync_loop.
3726         (mips_sync_loop_insns): Likewise.
3727
3728 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3729
3730         PR/target 63673
3731         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
3732         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
3733         double.
3734
3735 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
3736
3737         Forward-port from 2014-10-30 4_9-branch r216934
3738
3739         PR target/63633
3740         * config/avr/avr-protos.h (regmask): New inline function.
3741         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
3742         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
3743         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
3744         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
3745         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
3746         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
3747         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
3748         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
3749         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
3750         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
3751         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
3752         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
3753         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
3754         needed.
3755
3756 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3757
3758         PR target/61137
3759         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
3760         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
3761
3762 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
3763
3764         * config/aarch64/aarch64-simd.md
3765         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
3766         output mnemonic and operands.
3767         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
3768         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
3769
3770 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3771
3772         * config/i386/i386.c (ix86_option_override_internal): Increase
3773         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3774
3775 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3776
3777         PR target/60451
3778         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
3779         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
3780         replace for V16QI, V16HI and V32QI modes.
3781         (ix86_expand_vec_perm_const_1): Add new expand.
3782
3783 2014-11-21  Nick Clifton  <nickc@redhat.com>
3784
3785         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
3786         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
3787         (rl78_expand_prologue): Save the ES register in interrupt handlers
3788         that use it.
3789         (rl78_expand_epilogue): Restore the ES register if necessary.
3790         (rl78_start_function): Mention if the function uses the ES
3791         register.
3792         (rl78_lo16): Record the use of the ES register.
3793         (transcode_memory_rtx): Likewise.
3794
3795 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3796
3797         PR tree-optimization/61773
3798         * tree-ssa-strlen.c (get_string_length): Don't assert
3799         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3800
3801         PR target/63910
3802         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3803         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
3804         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3805
3806 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
3807
3808         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3809         HOST_WIDE_INT_M1U instead of ~0.
3810         (includes_rldicr_lshift_p): Likewise.
3811
3812 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3813
3814         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3815         we need to look into its operand to determine if it is a valid
3816         address.
3817
3818 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3819
3820         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3821         vaarg_p argument and create correct CFI info.
3822         (nds32_expand_prologue): Pass true or false to
3823         nds32_emit_stack_push_multiple function.
3824
3825 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3826
3827         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3828         as RTX_FRAME_RELATED_P rtx.
3829
3830 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3831
3832         * config/nds32/nds32.opt (march): Add help message.
3833
3834 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
3835
3836         * tree-vrp.c (test_for_singularity): New parameter
3837         strict_overflow_p.  Set *strict_overflow_p to true if signed
3838         overflow must be undefined for the return value to satisfy the
3839         conditional.
3840         (simplify_cond_using_ranges): Don't perform the simplification
3841         if it violates overflow rules.
3842
3843 2014-11-20  Marek Polacek  <polacek@redhat.com>
3844
3845         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3846
3847 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3848
3849         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3850         condition would be removed due to undefined behaviour.
3851
3852 2014-11-20  Andrew Pinski  <apinski@cavium.com>
3853
3854         PR ipa/63981
3855         PR ipa/63982
3856         * ipa-polymorphic-call.c (possible_placement_new):
3857         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3858         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3859         (extr_type_from_vtbl_ptr_store): Likewise.
3860
3861 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
3862
3863         * config/rs6000/constraints.md: Avoid signed integer overflows.
3864         * config/rs6000/predicates.md: Likewise.
3865         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3866         (includes_rldic_lshift_p): Likewise.
3867         (includes_rldicr_lshift_p): Likewise.
3868         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3869         * loop-iv.c (determine_max_iter): Likewise.
3870         (iv_number_of_iterations): Likewise.
3871         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3872         * varasm.c (get_section_anchor): Likewise.
3873
3874 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
3875
3876         PR target/63870
3877         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3878         expression to aarch64_simd_lane_bounds.
3879         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3880         prototype.
3881         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3882         call to aarch64_simd_lane_bounds.
3883         (aarch64_get_lanedi): Likewise.
3884         (aarch64_ld2_lane<mode>): Likewise.
3885         (aarch64_ld3_lane<mode>): Likewise.
3886         (aarch64_ld4_lane<mode>): Likewise.
3887         (aarch64_im_lane_boundsi): Likewise.
3888         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3889         parameter. Report calling function in error message if exp is non-NULL.
3890
3891 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3892
3893         PR target/60111
3894         * config/sh/sh.c: Use signed char for signed field.
3895
3896 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3897
3898         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3899         hash_table.
3900
3901 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3902
3903         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3904         tree-scalar-evolution.c: Replace htab with hash_table.
3905
3906 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3907
3908         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3909         (lto_free_function_in_decl_state): Likewise.
3910         * lto-streamer-out.c (copy_function_or_variable): Likewise.
3911         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3912         (lto_file_decl_data_num_ ## name ## s): Likewise.
3913         (struct lto_tree_ref_table): Remove.
3914         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3915
3916 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3917
3918         * hash-map.h (hash_map::iterator): New class.
3919         (hash_map::begin): New method.
3920         (hash_map::end): Likewise.
3921         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3922         replace splay_tree with hash_map.
3923
3924 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3925
3926         * hash-table.h (hash_table::hash_table): Call alloc_entries.
3927         (hash_table::alloc_entries): new method.
3928         (hash_table::expand): Call alloc_entries.
3929         (hash_table::empty): Likewise.
3930
3931 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3932
3933         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3934         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3935
3936 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3937
3938         * doc/gty.texi: Document the new cache gty attribute.
3939         * gengtype.c (finish_cache_funcs): New function.
3940         (write_roots): Call gt_clear_cache on global variables with the cache
3941         gty attribute.
3942         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3943         * ggc.h (gt_clear_caches): New declaration.
3944         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3945         memory.
3946         (gt_cleare_cache): New function.
3947         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3948
3949 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3950
3951         * combine.c (try_combine): Prefer to delete dead SETs inside
3952         a PARALLEL over keeping them.
3953
3954 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3955
3956         * combine.c (combine_validate_cost): Always print the insn costs
3957         to the dump file.
3958
3959 2014-11-20  Richard Henderson <rth@redhat.com>
3960
3961         PR target/63977
3962         * config/i386/i386.c (ix86_static_chain): Reinstate the check
3963         for DECL_STATIC_CHAIN.
3964
3965 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
3966
3967         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3968         Fixup prototype.
3969         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3970         aarch64_cannot_force_const_mem, aarch64_classify_address,
3971         aarch64_classify_symbolic_expression): Fixup call to
3972         aarch64_classify_symbol.
3973         (aarch64_classify_symbol): Add range-checking for
3974         symbol + offset addressing for tiny and small models.
3975
3976 2014-11-20  Richard Biener  <rguenther@suse.de>
3977
3978         PR middle-end/63962
3979         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3980         Guard with single-use operand 0.
3981
3982 2014-11-20   Richard Biener  <rguenther@suse.de>
3983
3984         PR tree-optimization/63677
3985         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3986         (avail_exprs_stack): Make a vector of pairs.
3987         (struct hash_expr_elt): Replace stmt member with vop member.
3988         (expr_elt_hasher::equal): Simplify.
3989         (initialize_hash_element): Adjust.
3990         (initialize_hash_element_from_expr): Likewise.
3991         (dom_opt_dom_walker::thread_across_edge): Likewise.
3992         (record_cond): Likewise.
3993         (dom_opt_dom_walker::before_dom_children): Likewise.
3994         (print_expr_hash_elt): Likewise.
3995         (remove_local_expressions_from_table): Restore previous state
3996         if requested.
3997         (record_equivalences_from_stmt): Record &x + CST as constant
3998         &MEM[&x, CST] for further propagation.
3999         (vuse_eq): New function.
4000         (lookup_avail_expr): For loads use the alias oracle to see
4001         whether a candidate from the expr hash is usable.
4002         (avail_expr_hash): Do not hash VUSEs.
4003
4004 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4005
4006         PR target/59593
4007         * config/arm/arm.md (*movhi_insn): Use right formatting
4008         for immediate.
4009
4010 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
4011
4012         PR sanitizer/63845
4013         * function.c (assign_parms): Move init of pic_offset_table_rtx
4014         from here to...
4015         * cfgexpand.c (expand_used_vars): ...here.
4016
4017 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
4018
4019         * tree.c (free_lang_data_in_type): If BINFO has no important
4020         information in it, set it to NULL.
4021         (get_binfo_at_offset): Do not walk fields, only bases.
4022         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
4023         to be NULL.
4024         * ipa-polymorphic-call.c (record_known_type): Likewise.
4025
4026 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4027
4028         PR jit/63854
4029         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
4030         congruence_class_group *.
4031
4032 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
4033
4034         PR target/63947
4035         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
4036         Output "b" and "nb" suffix for FP mode.
4037
4038 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
4039
4040         PR bootstrap/63963
4041         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream
4042         out DECL_FUNCTION_SPECIFIC_TARGET
4043         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream
4044         in DECL_FUNCTION_SPECIFIC_TARGET.
4045
4046 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4047
4048         PR jit/63854
4049         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
4050
4051 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4052
4053         PR jit/63854
4054         * lra.c (lra): After creating live ranges in preparation for call
4055         to lra_inheritance, set live_p to true.
4056
4057 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4058
4059         PR jit/63854
4060         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
4061         "path", delete it.
4062         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
4063
4064 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4065
4066         PR jit/63854
4067         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
4068         vec<> to auto_vec<> to fix a leak.
4069
4070 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4071
4072         PR jit/63854
4073         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
4074
4075 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4076
4077         PR jit/63854
4078         * ira-costs.c (ira_costs_c_finalize): New function.
4079         * ira.h (ira_costs_c_finalize): New prototype.
4080         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
4081
4082 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4083
4084         PR jit/63854
4085         * ipa-reference.c (ipa_reference_c_finalize): Release
4086         optimization_summary_obstack.
4087
4088 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4089
4090         PR jit/63854
4091         * toplev.c (toplev::finalize): Free opts_obstack.
4092
4093 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4094
4095         PR jit/63854
4096         * toplev.c (toplev::finalize): Clean up save_decoded_options.
4097
4098 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4099
4100         PR jit/63854
4101         * bb-reorder.c
4102         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
4103         local bbs_in_hot_partition from vec<> to auto_vec<>.
4104
4105 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4106
4107         PR jit/63854
4108         * config/alpha/alpha.c (alpha_option_override): Remove static from
4109         "handle_trap_shadows_info" and "align_insns_info".
4110         * config/i386/i386.c (ix86_option_override): Likewise for
4111         "insert_vzeroupper_info".
4112         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
4113         "rl78_devirt_info" and "rl78_move_elim_info".
4114         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
4115         "analyze_swaps_info".
4116         * context.c (gcc::context::~context): New.
4117         * context.h (gcc::context::~context): New.
4118         * dumpfile.c (dump_files): Add "false" initializers for new field
4119         "owns_strings".
4120         (gcc::dump_manager::~dump_manager): New.
4121         (gcc::dump_manager::dump_register): Add param "take_ownership".
4122         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
4123         (gcc::dump_manager::~dump_manager): New.
4124         (gcc::dump_manager::dump_register): Add param "take_ownership".
4125         * pass_manager.h (gcc::pass_manager::operator delete): New.
4126         (gcc::pass_manager::~pass_manager): New.
4127         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
4128         new "owns_strings" argument to dump_register.
4129         (pass_manager::operator delete): New.
4130         (delete_pass_tree): New function.
4131         (pass_manager::~pass_manager): New.
4132         * statistics.c (statistics_early_init): Pass "false" to
4133         new "owns_strings" argument to dump_register.
4134         * toplev.c (toplev::finalize): Clean up the context and thus the
4135         things it owns.
4136
4137 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4138
4139         PR jit/63854
4140         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
4141         obstack_free when cleaning up valid_mode_changes_obstack.
4142
4143 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4144
4145         PR jit/63854
4146         * opts.c (finalize_options_struct): New.
4147         * opts.h (finalize_options_struct): New.
4148         * toplev.c (toplev::finalize): Call finalize_options_struct
4149         on global_options and global_options_set.
4150
4151 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4152             Jakub Jelinek  <jakub@redhat.com>
4153
4154         PR driver/36312
4155         PR driver/63837
4156         * gcc.c (process_command): Don't check for input/output
4157         filename equality if output is HOST_BIT_BUCKET.
4158         * toplev.c (init_asm_output): Likewise.
4159
4160 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
4161
4162         Merger of git branch "gimple-classes-v2-option-3".
4163
4164         * ChangeLog.gimple-classes: New.
4165
4166         * coretypes.h (struct gcond): Add forward decl.
4167         (struct gdebug): Likewise.
4168         (struct ggoto): Likewise.
4169         (struct glabel): Likewise.
4170         (struct gswitch): Likewise.
4171         (struct gassign): Likewise.
4172         (struct gasm): Likewise.
4173         (struct gcall): Likewise.
4174         (struct gtransaction): Likewise.
4175         (struct greturn): Likewise.
4176         (struct gbind): Likewise.
4177         (struct gcatch): Likewise.
4178         (struct geh_filter): Likewise.
4179         (struct geh_mnt): Likewise.
4180         (struct geh_else): Likewise.
4181         (struct gresx): Likewise.
4182         (struct geh_dispatch): Likewise.
4183         (struct gphi): Likewise.
4184         (struct gtry): Likewise.
4185         (struct gomp_atomic_load): Likewise.
4186         (struct gomp_atomic_store): Likewise.
4187         (struct gomp_continue): Likewise.
4188         (struct gomp_critical): Likewise.
4189         (struct gomp_for): Likewise.
4190         (struct gomp_parallel): Likewise.
4191         (struct gomp_task): Likewise.
4192         (struct gomp_sections): Likewise.
4193         (struct gomp_single): Likewise.
4194         (struct gomp_target): Likewise.
4195         (struct gomp_teams): Likewise.
4196
4197         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
4198         for renaming of gimple subclasses.
4199
4200         * gdbhooks.py: Update.
4201
4202         * gimple-iterator.c (gsi_for_phi): New.
4203         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
4204         to gphi_iterator.
4205         * gimple-iterator.h (struct gphi_iterator): New subclass of
4206         gimple_stmt_iterator.
4207         (gsi_for_phi): New prototype.
4208         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
4209         to gphi_iterator.
4210         (gsi_next_nonvirtual_phi): Strengthen param from
4211         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
4212         gimple to gphi *.
4213
4214         * gsstruct.def: Update for renamings of classes.
4215
4216         * gimple.c (gimple_build_return): Strengthen return type from
4217         gimple to greturn *.
4218         (gimple_call_reset_alias_info): Strengthen param to gcall *.
4219         (gimple_build_call_1): Strengthen return type from gimple to
4220         gcall *.
4221         (gimple_build_call_vec): Likewise.
4222         (gimple_build_call): Likewise.
4223         (gimple_build_call_valist): Likewise.
4224         (gimple_build_call_internal_1): Likewise.
4225         (gimple_build_call_internal): Likewise.
4226         (gimple_build_call_internal_vec): Likewise.
4227         (gimple_build_call_from_tree): Likewise.
4228         (gimple_build_assign_stat): Strengthen return type from gimple to
4229         gassign *.
4230         (gimple_build_assign_with_ops): Likewise.
4231         (gimple_build_assign_with_ops): Likewise.
4232         (gimple_build_cond): Strengthen return type from gimple to
4233         gcond *.
4234         (gimple_build_cond_from_tree): Likewise.
4235         (gimple_cond_set_condition_from_tree): Require a gcond *.
4236         (gimple_build_label): Strengthen return type from gimple to
4237         glabel *.
4238         (gimple_build_goto): Strengthen return type from gimple to
4239         ggoto *.
4240         (gimple_build_bind): Strengthen return type from gimple to
4241         gbind *.
4242         (gimple_build_asm_1): Strengthen return type from gimple to
4243         gasm *.
4244         (gimple_build_asm_vec): Likewise.
4245         (gimple_build_catch): Strengthen return type from gimple to
4246         gcatch *.
4247         (gimple_build_eh_filter): Strengthen return type from gimple to
4248         geh_filter *.
4249         (gimple_build_eh_must_not_throw): Strengthen return type from
4250         gimple to geh_mnt *.
4251         (gimple_build_eh_else): Strengthen return type from gimple to
4252         geh_else *.
4253         (gimple_build_try): Update for renaming of gimple_statement_try to
4254         gtry.
4255         (gimple_build_resx): Strengthen return type from gimple to
4256         gresx *.
4257         (gimple_build_switch_nlabels): Strengthen return type from gimple
4258         to gswitch *.
4259         (gimple_build_switch): Likewise.
4260         (gimple_build_eh_dispatch): Strengthen return type from gimple to
4261         geh_dispatch *.
4262         (gimple_build_debug_bind_stat): Strengthen return type from gimple
4263         to gdebug *.
4264         (gimple_build_debug_source_bind_stat): Strengthen return type from
4265         gimple to gdebug *.
4266         (gimple_build_omp_critical): Strengthen return type from gimple to
4267         gomp_critical *.
4268         (gimple_build_omp_for): Strengthen return type from gimple to
4269         gomp_for *.
4270         (gimple_build_omp_parallel): Strengthen return type from gimple to
4271         gomp_parallel *.
4272         (gimple_build_omp_task): Strengthen return type from gimple to
4273         gomp_task *.
4274         (gimple_build_omp_continue): Strengthen return type from gimple to
4275         gomp_continue *.
4276         (gimple_build_omp_sections): Strengthen return type from gimple to
4277         gomp_sections *.
4278         (gimple_build_omp_single): Strengthen return type from gimple to
4279         gomp_single *.
4280         (gimple_build_omp_target): Strengthen return type from gimple to
4281         gomp_target *.
4282         (gimple_build_omp_teams): Strengthen return type from gimple to
4283         gomp_teams *.
4284         (gimple_build_omp_atomic_load): Strengthen return type from gimple
4285         to gomp_atomic_load *.
4286         (gimple_build_omp_atomic_store): Strengthen return type from gimple
4287         to gomp_atomic_store *.
4288         (gimple_build_transaction): Strengthen return type from gimple
4289         to gtransaction *.
4290         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
4291         (gimple_call_fnspec): Require a const gcall *.
4292         (gimple_call_arg_flags): Likewise.
4293         (gimple_call_return_flags): Likewise.
4294         (gimple_set_bb): Add a checked cast.
4295         (gimple_copy): Within the cases, add locals of the appropriate
4296         subclass and use in place of "stmt" and "copy" for typesafety.
4297         (gimple_has_side_effects): Add a checked cast.
4298         (gimple_could_trap_p_1): Likewise.
4299         (gimple_call_copy_skip_args): Require a gcall *, and return one.
4300         (gimple_asm_clobbers_memory_p): Require a const gasm *.
4301         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
4302         dyn_cast, introducing local "return_stmt" and using ti in place
4303         of "stmt".
4304
4305         * gimple.h (gimple_vec): Eliminate this typedef.
4306         (struct gimple_statement_call): Rename to...
4307         (struct gcall): ...this.
4308         (struct gimple_statement_bind): Rename to...
4309         (struct gbind): ...this.
4310         (struct gimple_statement_catch): Rename to...
4311         (struct gcatch): ...this.
4312         (struct gimple_statement_eh_filter): Rename to...
4313         (struct geh_filter): ...this.
4314         (struct gimple_statement_eh_else): Rename to...
4315         (struct geh_else): ...this.
4316         (struct gimple_statement_eh_mnt): Rename to...
4317         (struct geh_mnt): ...this.
4318         (struct gimple_statement_phi): Rename to...
4319         (struct gphi): ...this.
4320         (struct gimple_statement_resx): Rename to...
4321         (struct gresx): ...this.
4322         (struct gimple_statement_eh_dispatch): Rename to...
4323         (struct geh_dispatch): ...this.
4324         (struct gimple_statement_try): Rename to...
4325         (struct gtry): ...this.
4326         (struct gimple_statement_asm): Rename to...
4327         (struct gasm): ...this.
4328         (struct gimple_statement_omp_critical): Rename to...
4329         (struct gomp_critical): ...this.
4330         (struct gimple_statement_omp_for): Rename to...
4331         (struct gomp_for): ...this.
4332         (struct gimple_statement_omp_parallel): Rename to...
4333         (struct gomp_parallel): ...this.
4334         (struct gimple_statement_omp_target): Rename to...
4335         (struct gomp_target): ...this.
4336         (struct gimple_statement_omp_task): Rename to...
4337         (struct gomp_task): ...this.
4338         (struct gimple_statement_omp_sections): Rename to...
4339         (struct gomp_sections): ...this.
4340         (struct gimple_statement_omp_continue): Rename to...
4341         (struct gomp_continue): ...this.
4342         (struct gimple_statement_omp_single): Rename to...
4343         (struct gomp_single): ...this.
4344         (struct gimple_statement_omp_teams): Rename to...
4345         (struct gomp_teams): ...this.
4346         (struct gimple_statement_omp_atomic_load): Rename to...
4347         (struct gomp_atomic_load): ...this.
4348         (struct gimple_statement_omp_atomic_store :): Rename to...
4349         (struct gomp_atomic_store :): ...this.
4350         (struct gimple_statement_transaction): Rename to...
4351         (struct gtransaction): ...this.
4352         (struct gcond): New subclass.
4353         (struct gdebug): New subclass.
4354         (struct ggoto): New subclass.
4355         (struct glabel): New subclass.
4356         (struct gswitch): New subclass.
4357         (struct gassign): New subclass.
4358         (struct greturn): New subclass.
4359         (is_a_helper <gimple_statement_asm *>::test): Rename to...
4360         (is_a_helper <gasm *>::test): ...this.
4361         (is_a_helper <gimple_statement_bind *>::test): Rename to...
4362         (is_a_helper <gbind *>::test): ...this.
4363         (is_a_helper <gassign *>::test): New.
4364         (is_a_helper <gimple_statement_call *>::test): Rename to...
4365         (is_a_helper <gcall *>::test): ...this.
4366         (is_a_helper <gimple_statement_catch *>::test): Rename to...
4367         (is_a_helper <gcatch *>::test): ...this.
4368         (is_a_helper <gimple_statement_resx *>::test): Rename to...
4369         (is_a_helper <gresx *>::test): ...this.
4370         (is_a_helper <gcond *>::test): New.
4371         (is_a_helper <gdebug *>::test): New.
4372         (is_a_helper <ggoto *>::test): New.
4373         (is_a_helper <glabel *>::test): New.
4374         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
4375         (is_a_helper <geh_dispatch *>::test): ...this.
4376         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
4377         (is_a_helper <geh_else *>::test): ...this.
4378         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
4379         (is_a_helper <geh_filter *>::test): ...this.
4380         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
4381         (is_a_helper <geh_mnt *>::test): ...this.
4382         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
4383         (is_a_helper <gomp_atomic_load *>::test): ...this.
4384         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
4385         (is_a_helper <gomp_atomic_store *>::test): ...this.
4386         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
4387         (is_a_helper <gomp_continue *>::test): ...this.
4388         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
4389         (is_a_helper <gomp_critical *>::test): ...this.
4390         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
4391         (is_a_helper <gomp_for *>::test): ...this.
4392         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
4393         (is_a_helper <gomp_parallel *>::test): ...this.
4394         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
4395         (is_a_helper <gomp_target *>::test): ...this.
4396         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
4397         (is_a_helper <gomp_sections *>::test): ...this.
4398         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
4399         (is_a_helper <gomp_single *>::test): ...this.
4400         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
4401         (is_a_helper <gomp_teams *>::test): ...this.
4402         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
4403         (is_a_helper <gomp_task *>::test): ...this.
4404         (is_a_helper <gimple_statement_phi *>::test): Rename to...
4405         (is_a_helper <gphi *>::test): ...this.
4406         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
4407         (is_a_helper <gtransaction *>::test): ...this.
4408         (is_a_helper <greturn *>::test): New.
4409         (is_a_helper <gswitch *>::test): New.
4410         (is_a_helper <gimple_statement_try *>::test): Rename to...
4411         (is_a_helper <gtry *>::test): ...this.
4412         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
4413         (is_a_helper <const gasm *>::test): ...this.
4414         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
4415         (is_a_helper <const gbind *>::test): ...this.
4416         (is_a_helper <const gimple_statement_call *>::test): Rename to...
4417         (is_a_helper <const gcall *>::test): ...this.
4418         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
4419         (is_a_helper <const gcatch *>::test): ...this.
4420         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
4421         (is_a_helper <const gresx *>::test): ...this.
4422         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
4423         (is_a_helper <const geh_dispatch *>::test): ...this.
4424         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
4425         (is_a_helper <const geh_filter *>::test): ...this.
4426         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
4427         Rename to...
4428         (is_a_helper <const gomp_atomic_load *>::test): ...this.
4429         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
4430         Rename to...
4431         (is_a_helper <const gomp_atomic_store *>::test): ...this.
4432         (is_a_helper <const gimple_statement_omp_continue *>::test):
4433         Rename to...
4434         (is_a_helper <const gomp_continue *>::test): ...this.
4435         (is_a_helper <const gimple_statement_omp_critical *>::test):
4436         Rename to...
4437         (is_a_helper <const gomp_critical *>::test): ...this.
4438         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
4439         (is_a_helper <const gomp_for *>::test): ...this.
4440         (is_a_helper <const gimple_statement_omp_parallel *>::test):
4441         Rename to...
4442         (is_a_helper <const gomp_parallel *>::test): ...this.
4443         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
4444         (is_a_helper <const gomp_target *>::test): ...this.
4445         (is_a_helper <const gimple_statement_omp_sections *>::test):
4446         Rename to...
4447         (is_a_helper <const gomp_sections *>::test): ...this.
4448         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
4449         (is_a_helper <const gomp_single *>::test): ...this.
4450         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
4451         (is_a_helper <const gomp_teams *>::test): ...this.
4452         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
4453         (is_a_helper <const gomp_task *>::test): ...this.
4454         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
4455         (is_a_helper <const gphi *>::test): ...this.
4456         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
4457         (is_a_helper <const gtransaction *>::test): ...this.
4458         (gimple_build_return): Strengthen return type to greturn *.
4459         (gimple_call_reset_alias_info): Require a gcall *.
4460         (gimple_build_call_vec): Return a gcall *.
4461         (gimple_build_call): Likewise.
4462         (gimple_build_call_valist): Likewise.
4463         (gimple_build_call_internal): Likewise.
4464         (gimple_build_call_internal_vec): Likewise.
4465         (gimple_build_call_from_tree): Likewise.
4466         (gimple_build_assign_stat): Return a gassign *.
4467         (gimple_build_assign_with_ops): Likewise.
4468         (gimple_build_cond): Return a gcond *.
4469         (gimple_build_cond_from_tree): Likewise.
4470         (gimple_cond_set_condition_from_tree): Require a gcond *.
4471         (gimple_build_label): Return a glabel *.
4472         (gimple_build_goto): Return a ggoto *.
4473         (gimple_build_bind): Return a gbind *.
4474         (gimple_build_asm_vec): Return a gasm *.
4475         (gimple_build_catch): Return a gcatch *.
4476         (gimple_build_eh_filter): Return a geh_filter *.
4477         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
4478         (gimple_build_eh_else): Return a geh_else *.
4479         (gimple_build_try): Return a gtry *.
4480         (gimple_build_resx): Return a gresx *.
4481         (gimple_build_switch_nlabels): Return a gswitch *.
4482         (gimple_build_switch): Return a gswitch *.
4483         (gimple_build_eh_dispatch): Return a geh_dispatch *.
4484         (gimple_build_debug_bind_stat): Return a gdebug *.
4485         (gimple_build_debug_source_bind_stat): Return a gdebug *.
4486         (gimple_build_omp_critical): Return a gomp_critical *.
4487         (gimple_build_omp_for): Return a gomp_for *.
4488         (gimple_build_omp_parallel): Return a gomp_parallel *.
4489         (gimple_build_omp_task): Return a gomp_task *.
4490         (gimple_build_omp_continue): Return a gomp_continue *.
4491         (gimple_build_omp_sections): Return a gomp_sections *.
4492         (gimple_build_omp_single): Return a gomp_single *.
4493         (gimple_build_omp_target): Return a gomp_target *.
4494         (gimple_build_omp_teams): Return a gomp_teams *.
4495         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
4496         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
4497         (gimple_build_transaction): Return a gtransaction *.
4498         (gimple_call_arg_flags): Require a const gcall *.
4499         (gimple_call_return_flags): Likewise.
4500         (gimple_call_copy_skip_args): Require and return a gcall *.
4501         (gimple_asm_clobbers_memory_p): Require a const gasm *.
4502         (gimple_seq_first_stmt_as_a_bind): New.
4503         (gimple_assign_nontemporal_move_p): Require a const gassign *
4504         rather than a const_gimple.
4505         (gimple_call_internal_fn): Update for renaming to gcall.
4506         (gimple_call_fntype): Likewise.
4507         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
4508         (gimple_call_set_fn): Likewise.
4509         (gimple_call_set_internal_fn): Likewise.
4510         (gimple_call_set_chain): Likewise.
4511         (gimple_call_set_tail): Likewise.
4512         (gimple_call_tail_p): Likewise.
4513         (gimple_call_set_return_slot_opt): Likewise.
4514         (gimple_call_return_slot_opt_p): Likewise.
4515         (gimple_call_set_from_thunk): Likewise.
4516         (gimple_call_from_thunk_p): Likewise.
4517         (gimple_call_set_va_arg_pack): Likewise.
4518         (gimple_call_va_arg_pack_p): Likewise.
4519         (gimple_call_set_nothrow): Likewise.
4520         (gimple_call_nothrow_p): Likewise.
4521         (gimple_call_set_alloca_for_var): Likewise.
4522         (gimple_call_alloca_for_var_p): Likewise.
4523         (gimple_call_use_set): Likewise.
4524         (gimple_call_clobber_set): Likewise.
4525         (gimple_call_return_type): Require a const gcall * rather than a
4526         const_gimple.
4527         (gimple_call_chain_ptr): Likewise.
4528         (gimple_call_copy_flags): Require a pair of gcall *.
4529         (gimple_cond_set_code): Require a gcond * rather than a gimple
4530         (gimple_cond_set_lhs): Likewise.
4531         (gimple_cond_set_rhs): Likewise.
4532         (gimple_cond_set_true_label): Likewise.
4533         (gimple_cond_set_false_label): Likewise.
4534         (gimple_cond_make_false): Likewise.
4535         (gimple_cond_make_true): Likewise.
4536         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
4537         const_gimple.
4538         (gimple_cond_rhs_ptr): Likewise.
4539         (gimple_cond_true_label): Likewise.
4540         (gimple_cond_false_label): Likewise.
4541         (gimple_cond_true_p): Likewise.
4542         (gimple_cond_false_p): Likewise.
4543         (gimple_cond_set_condition): Likewise.
4544         (gimple_label_label): Require a const glabel *.
4545         (gimple_label_set_label): Require a glabel *.
4546         (gimple_goto_set_dest): Require a ggoto *.
4547         (gimple_bind_vars): Require a const gbind *.
4548         (gimple_bind_block): Likewise.
4549         (gimple_bind_set_vars): Require a gbind *.
4550         (gimple_bind_append_vars): Likewise.
4551         (gimple_bind_body_ptr): Likewise.
4552         (gimple_bind_body): Likewise.
4553         (gimple_bind_set_body): Likewise.
4554         (gimple_bind_add_stmt): Likewise.
4555         (gimple_bind_add_seq): Likewise.
4556         (gimple_bind_set_block): Likewise.
4557         (gimple_asm_ninputs): Require a const gasm *.
4558         (gimple_asm_noutputs): Likewise.
4559         (gimple_asm_nclobbers): Likewise.
4560         (gimple_asm_nlabels): Likewise.
4561         (gimple_asm_input_op): Likewise.
4562         (gimple_asm_input_op_ptr): Likewise.
4563         (gimple_asm_output_op): Likewise.
4564         (gimple_asm_output_op_ptr): Likewise.
4565         (gimple_asm_clobber_op): Likewise.
4566         (gimple_asm_label_op): Likewise.
4567         (gimple_asm_string): Likewise.
4568         (gimple_asm_volatile_p): Likewise.
4569         (gimple_asm_input_p): Likewise.
4570         (gimple_asm_set_input_op): Require a gasm *.
4571         (gimple_asm_set_output_op): Likewise.
4572         (gimple_asm_set_clobber_op): Likewise.
4573         (gimple_asm_set_label_op): Likewise.
4574         (gimple_asm_set_volatile): Likewise.
4575         (gimple_asm_set_input): Likewise.
4576         (gimple_catch_types): Require a const gcatch *.
4577         (gimple_catch_types_ptr): Require a gcatch *.
4578         (gimple_catch_handler_ptr): Likewise.
4579         (gimple_catch_handler): Likewise.
4580         (gimple_catch_set_types): Likewise.
4581         (gimple_catch_set_handler): Likewise.
4582         (gimple_eh_filter_types): Update for renaming of subclass to
4583         geh_filter.
4584         (gimple_eh_filter_types_ptr): Likewise.
4585         (gimple_eh_filter_failure_ptr): Likewise.
4586         (gimple_eh_filter_set_types): Require a geh_filter *.
4587         (gimple_eh_filter_set_failure): Likewise.
4588         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
4589         (gimple_eh_must_not_throw_set_fndecl): Likewise.
4590         (gimple_eh_else_n_body_ptr): Require a geh_else *.
4591         (gimple_eh_else_n_body): Likewise.
4592         (gimple_eh_else_e_body_ptr): Likewise.
4593         (gimple_eh_else_e_body): Likewise.
4594         (gimple_eh_else_set_n_body): Likewise.
4595         (gimple_eh_else_set_e_body): Likewise.
4596         (gimple_try_set_kind): Require a gtry *.
4597         (gimple_try_set_catch_is_cleanup): Likewise.
4598         (gimple_try_set_eval): Likewise.
4599         (gimple_try_set_cleanup): Likewise.
4600         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
4601         (gimple_try_cleanup_ptr): Likewise.
4602         (gimple_phi_capacity): Update for renaming of subclass to gphi.
4603         (gimple_phi_num_args): Likewise.
4604         (gimple_phi_result): Likewise.
4605         (gimple_phi_result_ptr): Likewise.
4606         (gimple_phi_arg): Likewise.
4607         (gimple_phi_set_result): Require a gphi *.
4608         (gimple_phi_set_arg): Likewise.
4609         (gimple_phi_arg_def_ptr): Likewise.
4610         (gimple_phi_arg_edge): Likewise.
4611         (gimple_phi_arg_location): Likewise.
4612         (gimple_phi_arg_location_from_edge): Likewise.
4613         (gimple_phi_arg_set_location): Likewise.
4614         (gimple_phi_arg_has_location): Likewise.
4615         (gimple_resx_region): Require a const gresx *.
4616         (gimple_resx_set_region): Require a gresx *.
4617         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
4618         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
4619         (gimple_switch_num_labels): Require a const gswitch *.
4620         (gimple_switch_set_num_labels): Likewise.
4621         (gimple_switch_index): Likewise.
4622         (gimple_switch_index_ptr): Likewise.
4623         (gimple_switch_label): Likewise.
4624         (gimple_switch_default_label): Likewise.
4625         (gimple_switch_set_index): Require a gswitch *.
4626         (gimple_switch_set_label): Likewise.
4627         (gimple_switch_set_default_label): Likewise.
4628         (gimple_omp_critical_name): Require a const gomp_critical *.
4629         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
4630         (gimple_omp_critical_set_name): Likewise.
4631         (gimple_omp_for_set_kind): Require a gomp_for *.
4632         (gimple_omp_for_set_combined_p): Likewise.
4633         (gimple_omp_for_set_combined_into_p): Likewise.
4634         (gimple_omp_for_clauses): Update for renaming of subclass to
4635         gomp_for.
4636         (gimple_omp_for_clauses_ptr): Likewise.
4637         (gimple_omp_for_set_clauses): Likewise.
4638         (gimple_omp_for_collapse): Likewise.
4639         (gimple_omp_for_index): Likewise.
4640         (gimple_omp_for_index_ptr): Likewise.
4641         (gimple_omp_for_set_index): Likewise.
4642         (gimple_omp_for_initial): Likewise.
4643         (gimple_omp_for_initial_ptr): Likewise.
4644         (gimple_omp_for_set_initial): Likewise.
4645         (gimple_omp_for_final): Likewise.
4646         (gimple_omp_for_final_ptr): Likewise.
4647         (gimple_omp_for_set_final): Likewise.
4648         (gimple_omp_for_incr): Likewise.
4649         (gimple_omp_for_incr_ptr): Likewise.
4650         (gimple_omp_for_set_incr): Likewise.
4651         (gimple_omp_for_pre_body): Likewise.
4652         (gimple_omp_for_set_pre_body): Likewise.
4653         (gimple_omp_parallel_clauses): Update for renaming of subclass to
4654         gomp_parallel.
4655         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
4656         (gimple_omp_parallel_set_clauses): Likewise.
4657         (gimple_omp_parallel_child_fn_ptr): Likewise.
4658         (gimple_omp_parallel_set_child_fn): Likewise.
4659         (gimple_omp_parallel_data_arg_ptr): Likewise.
4660         (gimple_omp_parallel_set_data_arg): Likewise.
4661         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
4662         (gimple_omp_parallel_data_arg): Likewise.
4663         (gimple_omp_task_clauses): Update for renaming of subclass to
4664         gomp_task.
4665         (gimple_omp_task_clauses_ptr): Likewise.
4666         (gimple_omp_task_set_clauses): Likewise.
4667         (gimple_omp_task_child_fn): Likewise.
4668         (gimple_omp_task_child_fn_ptr): Likewise.
4669         (gimple_omp_task_set_child_fn): Likewise.
4670         (gimple_omp_task_data_arg): Likewise.
4671         (gimple_omp_task_data_arg_ptr): Likewise.
4672         (gimple_omp_task_set_data_arg): Likewise.
4673         (gimple_omp_taskreg_clauses): Whitespace fixes.
4674         (gimple_omp_taskreg_clauses_ptr): Likewise.
4675         (gimple_omp_taskreg_set_clauses): Likewise.
4676         (gimple_omp_taskreg_child_fn): Likewise.
4677         (gimple_omp_taskreg_child_fn_ptr): Likewise.
4678         (gimple_omp_taskreg_set_child_fn): Likewise.
4679         (gimple_omp_taskreg_data_arg): Likewise.
4680         (gimple_omp_taskreg_data_arg_ptr): Likewise.
4681         (gimple_omp_taskreg_set_data_arg): Likewise.
4682         (gimple_omp_task_copy_fn): Update for renaming of subclass to
4683         gomp_task.
4684         (gimple_omp_task_copy_fn_ptr): Likewise.
4685         (gimple_omp_task_set_copy_fn): Likewise.
4686         (gimple_omp_task_arg_size): Likewise.
4687         (gimple_omp_task_arg_size_ptr): Likewise.
4688         (gimple_omp_task_set_arg_size): Likewise.
4689         (gimple_omp_task_arg_align): Likewise.
4690         (gimple_omp_task_arg_align_ptr): Likewise.
4691         (gimple_omp_task_set_arg_align): Likewise.
4692         (gimple_omp_single_clauses): Update for renaming of subclass to
4693         gomp_single.
4694         (gimple_omp_single_clauses_ptr): Likewise.
4695         (gimple_omp_single_set_clauses): Likewise.
4696         (gimple_omp_target_clauses): Update for renaming of subclass to
4697         gomp_target.
4698         (gimple_omp_target_clauses_ptr): Likewise.
4699         (gimple_omp_target_set_clauses): Require a gomp_target *.
4700         (gimple_omp_target_set_kind): Likewise.
4701         (gimple_omp_target_child_fn_ptr): Likewise.
4702         (gimple_omp_target_set_child_fn): Likewise.
4703         (gimple_omp_target_data_arg_ptr): Likewise.
4704         (gimple_omp_target_set_data_arg): Likewise.
4705         (gimple_omp_target_child_fn): Require a const gomp_target *.
4706         (gimple_omp_target_data_arg): Likewise.
4707         (gimple_omp_teams_clauses): Update for renaming of subclass to
4708         gomp_teams.
4709         (gimple_omp_teams_clauses_ptr): Likewise.
4710         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
4711         (gimple_omp_sections_clauses): Update for renaming of subclass to
4712         gomp_sections.
4713         (gimple_omp_sections_clauses_ptr): Likewise.
4714         (gimple_omp_sections_set_clauses): Likewise.
4715         (gimple_omp_sections_control): Likewise.
4716         (gimple_omp_sections_control_ptr): Likewise.
4717         (gimple_omp_sections_set_control): Likewise.
4718         (gimple_omp_for_set_cond): Likewise.
4719         (gimple_omp_for_cond): Likewise.
4720         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
4721         (gimple_omp_atomic_store_val_ptr): Likewise.
4722         (gimple_omp_atomic_load_set_lhs): Likewise.
4723         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
4724         (gimple_omp_atomic_load_lhs): Likewise.
4725         (gimple_omp_atomic_load_rhs): Likewise.
4726         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
4727         (gimple_omp_atomic_load_set_rhs): Likewise.
4728         (gimple_omp_atomic_load_rhs_ptr): Likewise.
4729         (gimple_omp_continue_control_def): Require a const gomp_continue *.
4730         (gimple_omp_continue_control_use): Likewise.
4731         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
4732         (gimple_omp_continue_set_control_def): Likewise.
4733         (gimple_omp_continue_control_use_ptr): Likewise.
4734         (gimple_omp_continue_set_control_use): Likewise.
4735         (gimple_transaction_body_ptr): Require a gtransaction *.
4736         (gimple_transaction_body): Likewise.
4737         (gimple_transaction_label_ptr): Likewise.
4738         (gimple_transaction_label): Require a const gtransaction *.
4739         (gimple_transaction_subcode): Likewise.
4740         (gimple_transaction_set_body): Require a gtransaction *.
4741         (gimple_transaction_set_label): Likewise.
4742         (gimple_transaction_set_subcode): Likewise.
4743         (gimple_return_retval_ptr): Require a const greturn *.
4744         (gimple_return_retval): Likewise.
4745         (gimple_return_set_retval): Require a greturn *.
4746         (gimple_expr_type): Introduce local "call_stmt" and use in place of
4747         "stmt" for typesafety.
4748
4749         * asan.c: Use gimple subclasses.
4750         * auto-profile.c: Likewise.
4751         * builtins.c: Likewise.
4752         * builtins.h: Likewise.
4753         * cfgexpand.c: Likewise.
4754         * cfgloop.c: Likewise.
4755         * cfgloopmanip.c: Likewise.
4756         * cgraph.c: Likewise.
4757         * cgraph.h: Likewise.
4758         * cgraphbuild.c: Likewise.
4759         * cgraphclones.c: Likewise.
4760         * cgraphunit.c: Likewise.
4761         * expr.h: Likewise.
4762         * gimple-builder.c: Likewise.
4763         * gimple-builder.h: Likewise.
4764         * gimple-fold.c: Likewise.
4765         * gimple-low.c: Likewise.
4766         * gimple-pretty-print.c: Likewise.
4767         * gimple-ssa-isolate-paths.c: Likewise.
4768         * gimple-ssa-strength-reduction.c: Likewise.
4769         * gimple-streamer-in.c: Likewise.
4770         * gimple-streamer-out.c: Likewise.
4771         * gimple-walk.c: Likewise.
4772         * gimplify-me.c: Likewise.
4773         * gimplify.c: Likewise.
4774         * gimplify.h: Likewise.
4775         * graphite-scop-detection.c: Likewise.
4776         * graphite-sese-to-poly.c: Likewise.
4777         * internal-fn.c: Likewise.
4778         * internal-fn.def:: Likewise.
4779         * internal-fn.h: Likewise.
4780         * ipa-icf-gimple.c: Likewise.
4781         * ipa-icf-gimple.h: Likewise.
4782         * ipa-icf.c: Likewise.
4783         * ipa-inline-analysis.c: Likewise.
4784         * ipa-prop.c: Likewise.
4785         * ipa-prop.h: Likewise.
4786         * ipa-pure-const.c: Likewise.
4787         * ipa-split.c: Likewise.
4788         * lto-streamer-in.c: Likewise.
4789         * lto-streamer-out.c: Likewise.
4790         * omp-low.c: Likewise.
4791         * predict.c: Likewise.
4792         * sanopt.c: Likewise.
4793         * sese.c: Likewise.
4794         * ssa-iterators.h: Likewise.
4795         * stmt.c: Likewise.
4796         * trans-mem.c: Likewise.
4797         * tree-call-cdce.c: Likewise.
4798         * tree-cfg.c: Likewise.
4799         * tree-cfg.h: Likewise.
4800         * tree-cfgcleanup.c: Likewise.
4801         * tree-chkp.c: Likewise.
4802         * tree-chkp.h: Likewise.
4803         * tree-complex.c: Likewise.
4804         * tree-data-ref.c: Likewise.
4805         * tree-dfa.c: Likewise.
4806         * tree-eh.c: Likewise.
4807         * tree-eh.h: Likewise.
4808         * tree-emutls.c: Likewise.
4809         * tree-if-conv.c: Likewise.
4810         * tree-inline.c: Likewise.
4811         * tree-inline.h: Likewise.
4812         * tree-into-ssa.c: Likewise.
4813         * tree-into-ssa.h: Likewise.
4814         * tree-loop-distribution.c: Likewise.
4815         * tree-nrv.c: Likewise.
4816         * tree-object-size.c: Likewise.
4817         * tree-outof-ssa.c: Likewise.
4818         * tree-parloops.c: Likewise.
4819         * tree-phinodes.c: Likewise.
4820         * tree-phinodes.h: Likewise.
4821         * tree-predcom.c: Likewise.
4822         * tree-profile.c: Likewise.
4823         * tree-scalar-evolution.c: Likewise.
4824         * tree-scalar-evolution.h
4825         * tree-sra.cn_function):
4826         * tree-ssa-alias.c: Likewise.
4827         * tree-ssa-alias.h: Likewise.
4828         * tree-ssa-ccp.c: Likewise.
4829         * tree-ssa-coalesce.c: Likewise.
4830         * tree-ssa-copy.c: Likewise.
4831         * tree-ssa-copyrename.c: Likewise.
4832         * tree-ssa-dce.c: Likewise.
4833         * tree-ssa-dom.c: Likewise.
4834         * tree-ssa-forwprop.c: Likewise.
4835         * tree-ssa-ifcombine.c: Likewise.
4836         * tree-ssa-live.c: Likewise.
4837         * tree-ssa-loop-im.c: Likewise.
4838         * tree-ssa-loop-ivcanon.c: Likewise.
4839         * tree-ssa-loop-ivopts.c: Likewise.
4840         * tree-ssa-loop-manip.c: Likewise.
4841         * tree-ssa-loop-niter.c: Likewise.
4842         * tree-ssa-loop-prefetch.c: Likewise.
4843         * tree-ssa-loop-unswitch.c: Likewise.
4844         * tree-ssa-math-opts.c: Likewise.
4845         * tree-ssa-operands.c: Likewise.
4846         * tree-ssa-phiopt.c: Likewise.
4847         * tree-ssa-phiprop.c: Likewise.
4848         * tree-ssa-pre.c: Likewise.
4849         * tree-ssa-propagate.c: Likewise.
4850         * tree-ssa-propagate.h: Likewise.
4851         * tree-ssa-reassoc.c: Likewise.
4852         * tree-ssa-sccvn.c: Likewise.
4853         * tree-ssa-sccvn.h: Likewise.
4854         * tree-ssa-sink.c: Likewise.
4855         * tree-ssa-strlen.c
4856         * tree-ssa-structalias.c
4857         * tree-ssa-tail-merge.c: Likewise.
4858         * tree-ssa-ter.c: Likewise.
4859         * tree-ssa-threadedge.c: Likewise.
4860         * tree-ssa-threadedge.h: Likewise.
4861         * tree-ssa-threadupdate.c: Likewise.
4862         * tree-ssa-uncprop.c: Likewise.
4863         * tree-ssa-uninit.c: Likewise.
4864         * tree-ssa.c: Likewise.
4865         * tree-stdarg.c: Likewise.
4866         * tree-switch-conversion.c: Likewise.
4867         * tree-tailcall.c: Likewise.
4868         * tree-vect-data-refs.c: Likewise.
4869         * tree-vect-generic.c: Likewise.
4870         * tree-vect-loop-manip.c: Likewise.
4871         * tree-vect-loop.c: Likewise.
4872         * tree-vect-patterns.c: Likewise.
4873         * tree-vect-slp.c: Likewise.
4874         * tree-vect-stmts.c: Likewise.
4875         * tree-vectorizer.h: Likewise.
4876         * tree-vrp.c: Likewise.
4877         * tree.c: Likewise.
4878         * ubsan.c: Likewise.
4879         * value-prof.c: Likewise.
4880         * value-prof.h: Likewise.
4881         * vtable-verify.c: Likewise.
4882
4883 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4884
4885         * config/rs6000/constraints.md: Avoid signed integer overflows.
4886         * config/rs6000/predicates.md: Likewise.
4887
4888 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4889
4890         PR target/63424
4891         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4892
4893 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4894
4895         PR middle-end/63762
4896         * ira.c (ira): Update preferred class.
4897
4898 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4899
4900         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4901         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4902         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
4903         inline overload to use it.  Add unary arg overload.
4904         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4905         (gimple_assign_set_rhs_from_tree): Use
4906         gimple_assign_set_rhs_with_ops instead of
4907         gimple_assign_set_rhs_with_ops_1.
4908         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4909         (gimple_assign_set_rhs_with_ops): ... this.
4910         * ipa-split.c (split_function): Remove last NULL argument
4911         from gimple_build_assign_with_ops call.
4912         * tree-ssa-loop-im.c
4913         (move_computations_dom_walker::before_dom_children): Likewise.
4914         * tsan.c (instrument_builtin_call): Likewise.
4915         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4916         vectorizable_conversion, vectorizable_load): Likewise.
4917         * tree-vect-loop.c (vect_is_simple_reduction_1,
4918         get_initial_def_for_induction): Likewise.
4919         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4920         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4921         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4922         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4923         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4924         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4925         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4926         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4927         neg_replacement): Likewise.
4928         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4929         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4930         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4931         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4932         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4933         simd_clone_adjust): Likewise.
4934         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4935         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4936         replace_one_candidate): Likewise.
4937         * gimple-builder.c (build_type_cast): Likewise.
4938         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4939         (forward_propagate_addr_expr_1): Remove last NULL argument
4940         from gimple_assign_set_rhs_with_ops call.
4941         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4942         instead of gimple_assign_set_rhs_with_ops_1.
4943         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4944         argument from gimple_build_assign_with_ops call.
4945         (repropagate_negates): Remove last NULL argument from
4946         gimple_assign_set_rhs_with_ops call.
4947         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4948         last NULL argument from gimple_build_assign_with_ops call.
4949         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
4950         from gimple_assign_set_rhs_with_ops call.
4951         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4952         Remove last NULL argument from gimple_build_assign_with_ops call.
4953         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
4954         of gimple_assign_set_rhs_with_ops_1.
4955         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4956         instead of gimple_assign_set_rhs_with_ops_1.
4957         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4958         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4959         from gimple_build_assign_with_ops call.
4960         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4961         from gimple_assign_set_rhs_with_ops call.
4962         * tree-vrp.c (simplify_truth_ops_using_ranges,
4963         simplify_bit_ops_using_ranges): Remove last NULL argument from
4964         gimple_assign_set_rhs_with_ops call.
4965         (simplify_float_conversion_using_ranges,
4966         simplify_internal_call_using_ranges): Remove last NULL argument from
4967         gimple_build_assign_with_ops call.
4968
4969 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
4970
4971         PR target/61915
4972         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4973         cost.
4974
4975 2014-11-19  Marek Polacek  <polacek@redhat.com>
4976
4977         PR sanitizer/63690
4978         * ubsan.c (instrument_object_size): Check for MEM_REF.
4979
4980 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
4981
4982         PR regression/63868
4983         * cgraph.c (cgraph_node::create): Guard g->have_offload with
4984         ifdef ENABLE_OFFLOADING.
4985         * omp-low.c (create_omp_child_function): Likewise.
4986         (expand_omp_target): Guard node->mark_force_output and offload_funcs
4987         with ifdef ENABLE_OFFLOADING.
4988         * varpool.c (varpool_node::get_create): Guard g->have_offload and
4989         offload_vars with ifdef ENABLE_OFFLOADING.
4990
4991 2014-11-19  Felix Yang  <felix.yang@huawei.com>
4992             Shanyao Chen  <chenshanyao@huawei.com>
4993
4994         PR target/59593
4995         * config/arm/arm.md (define_attr "arch"): Add v6t2.
4996         (define_attr "arch_enabled"): Add test for the above.
4997         (*movhi_insn_arch4): Add new alternative.
4998
4999 2014-11-19  Richard Henderson  <rth@redhat.com>
5000
5001         * c-family/c-common.c (c_common_reswords): Add
5002         __builtin_call_with_static_chain.
5003         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
5004         * c/c-parser.c (c_parser_postfix_expression): Handle it.
5005         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
5006
5007         * calls.c (prepare_call_address): Allow decl or type for first arg.
5008         (expand_call): Pass type to prepare_call_address if no decl.
5009         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
5010         the function doesn't use it; fold it otherwise.
5011         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
5012         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
5013         function calls.
5014
5015         * targhooks.c (default_static_chain): Remove check for
5016         DECL_STATIC_CHAIN.
5017         * config/moxie/moxie.c (moxie_static_chain): Likewise.
5018         * config/i386/i386.c (ix86_static_chain): Allow decl or type
5019         as the first argument.
5020         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
5021         of the unused first parameter.
5022         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
5023         may be a type.
5024         * target.def (static_chain): Likewise.
5025
5026 2014-11-19  Renlin Li  <renlin.li@arm.com>
5027
5028         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
5029         __ARM_FP_FAST, __ARM_FEATURE_FMA, __ARM_FP,
5030         __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
5031
5032 2014-11-19  Marek Polacek  <polacek@redhat.com>
5033
5034         PR sanitizer/63879
5035         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
5036         !TYPE_OVERFLOW_SANITIZED.
5037         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
5038         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
5039         is 0.
5040
5041 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
5042
5043         * collect2.c (main): Don't call fatal_error before
5044         diagnostic_initialize.
5045         * lto-wrapper.c (main): Likewise.
5046
5047 2014-11-19  Tom de Vries  <tom@codesourcery.com>
5048
5049         PR tree-optimization/62167
5050         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
5051         conservatively.
5052         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
5053         assigns.
5054
5055 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
5056
5057         PR tree-optimization/63915
5058         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
5059         true instead of false as last argument to gsi_replace.
5060
5061         PR sanitizer/63520
5062         * internal-fn.c (expand_ubsan_result_store): New function.
5063         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
5064         Use it instead of just emit_move_insn.
5065
5066 2014-11-19  Richard Biener  <rguenther@suse.de>
5067
5068         PR tree-optimization/63844
5069         * omp-low.c (fixup_child_record_type): Use a restrict qualified
5070         referece type for the receiver parameter.
5071
5072 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
5073
5074         PR sanitizer/63913
5075         * ubsan.c: Include tree-eh.h.
5076         (instrument_bool_enum_load): Handle loads that can throw.
5077
5078         PR rtl-optimization/63843
5079         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
5080         optimization of ashiftrt of subreg of lshiftrt, check that code
5081         is ASHIFTRT.
5082
5083 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
5084
5085         * attribs.c (decl_attributes): Remove always true condition,
5086         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
5087
5088 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5089
5090         PR target/63937
5091         * target.def (use_by_pieces_infrastructure_p): Take unsigned
5092         HOST_WIDE_INT as the size parameter.
5093         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
5094         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
5095         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
5096         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
5097         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
5098         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
5099         * config/aarch64/aarch64.c
5100         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
5101         * doc/tm.texi: Regenerate.
5102
5103 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
5104
5105         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
5106         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
5107         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
5108         (good_cloning_opportunity_p): Likewise.
5109         (ipa-cp gate): Enable ipa-cp with LTO.
5110         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
5111         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
5112         inheritance.
5113         * ipa-inline-transform.c (inline_transform): Check if there are inlines
5114         to apply even at -O0.
5115         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
5116         (analyze_functions): Build type inheritance graph.
5117         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
5118         (want_early_inline_function_p, want_inline_small_function_p):
5119         Likewise.
5120         (check_callers): Likewise.
5121         (edge_badness): Likewise.
5122         (inline_small_functions): Always be ready for indirect inlining
5123         to happend.
5124         (ipa_inline): Always use want_inline_function_to_all_callers_p.
5125         (early_inline_small_functions): Use opt_for_fn.
5126         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
5127         (estimate_function_body_sizes): Likewise.
5128         (compute_inline_parameters): Likewise.
5129         (estimate_edge_devirt_benefit): Likewise.
5130         (inline_analyze_function): Likewise.
5131         * ipa-devirt.c (ipa_devirt): Likewise.
5132         (gate): Use in_lto_p.
5133         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
5134         (try_make_edge_direct_virtual_call): Likewise.
5135         (update_indirect_edges_after_inlining): Likewise.
5136         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
5137         * common.opt (findirect-inlining): Turn into optimization.
5138         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
5139         (pure_const_generate_summary): Likewise.
5140         (gate_pure_const): Always enable with in_lto_p.
5141
5142 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
5143
5144         * config/mips/mips.md (compression): Add `micromips32' setting.
5145         (enabled, length): Handle it.
5146         (shift_compression): Replace `micromips' with `micromips32' in
5147         the `compression' attribute.
5148         (*add<mode>3, sub<mode>3): Likewise.
5149
5150 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
5151
5152         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
5153         range, a jump otherwise.
5154
5155 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5156
5157         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
5158         Split into...
5159         (cortex_a15_gp_to_vfp): ...This.
5160         (cortex_a15_fp_to_gp): ...And this.
5161         Define and comment bypass from vfp operations to fp->gp moves.
5162
5163 2014-11-18  Martin Liska  <mliska@suse.cz>
5164
5165         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
5166
5167 2014-11-18  Martin Liska  <mliska@suse.cz>
5168
5169         * bt-load.c (add_btr_def): New fibonacci_heap is used.
5170         (migrate_btr_defs): Likewise.
5171
5172 2014-11-18  Martin Liska  <mliska@suse.cz>
5173
5174         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
5175
5176 2014-11-18  Martin Liska  <mliska@suse.cz>
5177
5178         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
5179         (find_traces): Likewise.
5180         (find_traces_1_round): Likewise.
5181
5182 2014-11-18  Martin Liska  <mliska@suse.cz>
5183
5184         * fibonacci_heap.h: New file.
5185         (fibonacci_heap::insert): Created from fibheap_insert.
5186         (fibonacci_heap::empty): Created from fibheap_empty.
5187         (fibonacci_heap::nodes): Created from fibheap_nodes.
5188         (fibonacci_heap::min_key): Created from fibheap_min_key.
5189         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
5190         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
5191         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
5192         (fibonacci_heap::min): Created from fibheap_min.
5193         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
5194         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
5195         (fibonacci_heap::union_with): Created from fibheap_union.
5196         * ipa-inline.c (update_edge_key): New heap API is used.
5197         (update_caller_keys): Likewise.
5198         (update_callee_keys): Likewise.
5199         (lookup_recursive_calls): Likewise.
5200         (recursive_inlining): Likewise.
5201         (add_new_edges_to_heap): Likewise.
5202         (heap_edge_removal_hook): Likewise.
5203         (inline_small_functions): Likewise.
5204
5205 2014-11-18  Marek Polacek  <polacek@redhat.com>
5206
5207         PR sanitizer/63866
5208         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
5209         put it into TYPE_NAME and TYPE_STUB_DECL.
5210         * ubsan.c (ubsan_type_descriptor_type): New variable.
5211         Function renamed to ...
5212         (ubsan_get_type_descriptor_type): ... this.  Cache
5213         return value in ubsan_type_descriptor_type variable.
5214         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
5215         TYPE_NAME and TYPE_STUB_DECL.
5216         (ubsan_get_source_location_type): Create a TYPE_DECL for
5217         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
5218         (ubsan_type_descriptor, ubsan_create_data): Call
5219         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
5220         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
5221
5222 2014-11-18  Felix Yang  <felix.yang@huawei.com>
5223
5224         * config/aarch64/aarch64.c (doloop_end): New pattern.
5225         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
5226
5227 2014-11-18  Jason Merrill  <jason@redhat.com>
5228
5229         * tree.c (warn_deprecated_use): Show declaration with inform.
5230
5231 2014-11-18  Richard Biener  <rguenther@suse.de>
5232
5233         PR tree-optimization/63914
5234         * tree-ssa-ccp.c (canonicalize_value): Remove float value
5235         canonicalization.
5236         (valid_lattice_transition): Allow (partial) transition
5237         from NaN to non-NaN if !HONOR_NANS.
5238         (set_lattice_value): Check for valid lattice transitions
5239         only when checking is enabled.
5240
5241 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
5242
5243         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
5244
5245 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
5246
5247         * config/arm/neon-testgen.ml (emit_prologue): Handle new
5248         compile_test_optim argument.
5249         (emit_automatics): Rename to emit_variables. Support variable
5250         indentation of its output.
5251         (compile_test_optim): New function.
5252         (test_intrinsic): Call compile_test_optim.
5253         * config/arm/neon.ml (features): Add Compiler_optim.
5254         (ops): Add Compiler_optim feature to Vbic and Vorn.
5255         (type_in_crypto_only): Replace 'or' by '||'.
5256         (reinterp): Likewise.
5257         (reinterpq): Likewise.
5258
5259 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
5260
5261         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
5262         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
5263         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
5264         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
5265         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
5266         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
5267         pointer dereference.
5268
5269 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
5270
5271         * tree.c (element_mode, integer_truep): New functions.
5272         * tree.h (element_mode, integer_truep): Declare them.
5273         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
5274         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
5275         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
5276         fold_strip_sign_ops): Use element_mode.
5277         (fold_binary_loc): Use element_mode and element_precision.
5278         * match.pd: Use integer_truep, element_mode, element_precision,
5279         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
5280         vectors. Simplify A/-A.
5281
5282 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5283
5284         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
5285         manual swapping implementation.
5286         (movcond_addsi): Likewise.
5287         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
5288         (arm_select_dominance_cc_mode): Likewise.
5289         (arm_reload_out_hi): Likewise.
5290         (gen_operands_ldrd_strd): Likewise.
5291         (output_move_double): Likewise.
5292         (arm_print_operand_address): Likewise.
5293         (thumb_output_move_mem_multiple): Likewise.
5294         (SWAP_RTX): Delete.
5295
5296 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5297
5298         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
5299         (COPYSIGNF_QUALIFIERS): Likewise.
5300         (CREATE_QUALIFIERS): Likewise.
5301         (DUP_QUALIFIERS): Likewise.
5302         (FLOAT_WIDEN_QUALIFIERS): Likewise.
5303         (FLOAT_NARROW_QUALIFIERS): Likewise.
5304         (REINTERP_QUALIFIERS): Likewise.
5305         (RINT_QUALIFIERS): Likewise.
5306         (SPLIT_QUALIFIERS): Likewise.
5307         (FIXCONV_QUALIFIERS): Likewise.
5308         (SCALARMUL_QUALIFIERS): Likewise.
5309         (SCALARMULL_QUALIFIERS): Likewise.
5310         (SCALARMULH_QUALIFIERS): Likewise.
5311         (SELECT_QUALIFIERS): Likewise.
5312         (VTBX_QUALIFIERS): Likewise.
5313         (SHIFTIMM_QUALIFIERS): Likewise.
5314         (SCALARMAC_QUALIFIERS): Likewise.
5315         (LANEMUL_QUALIFIERS): Likewise.
5316         (LANEMULH_QUALIFIERS): Likewise.
5317         (LANEMULL_QUALIFIERS): Likewise.
5318         (SHIFTACC_QUALIFIERS): Likewise.
5319         (SHIFTINSERT_QUALIFIERS): Likewise.
5320         (VTBL_QUALIFIERS): Likewise.
5321         (LOADSTRUCT_QUALIFIERS): Likewise.
5322         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
5323         (STORESTRUCT_QUALIFIERS): Likewise.
5324         (STORESTRUCTLANE_QUALIFIERS): Likewise.
5325         (neon_builtin_type_mode): Delete.
5326         (v8qi_UP): Map to V8QImode.
5327         (v8qi_UP): Map to V8QImode.
5328         (v4hi_UP): Map to V4HImode.
5329         (v4hf_UP): Map to V4HFmode.
5330         (v2si_UP): Map to V2SImode.
5331         (v2sf_UP): Map to V2SFmode.
5332         (di_UP): Map to DImode.
5333         (v16qi_UP): Map to V16QImode.
5334         (v8hi_UP): Map to V8HImode.
5335         (v4si_UP): Map to V4SImode.
5336         (v4sf_UP): Map to V4SFmode.
5337         (v2di_UP): Map to V2DImode.
5338         (ti_UP): Map to TImode.
5339         (ei_UP): Map to EImode.
5340         (oi_UP): Map to OImode.
5341         (neon_itype): Delete.
5342         (neon_builtin_datum): Remove itype, make mode a machine_mode.
5343         (VAR1): Update accordingly.
5344         (arm_init_neon_builtins): Use machine_mode directly.
5345         (neon_dereference_pointer): Likewise.
5346         (arm_expand_neon_args): Use qualifiers to decide operand types.
5347         (arm_expand_neon_builtin): Likewise.
5348         * config/arm/arm_neon_builtins.def: Remap operation type for
5349         many builtins.
5350
5351 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5352
5353         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
5354         (enum arm_simd_type): Likewise.
5355         (struct arm_simd_type_info): Likewise
5356         (arm_mangle_builtin_scalar_type): Likewise.
5357         (arm_mangle_builtin_vector_type): Likewise.
5358         (arm_mangle_builtin_type): Likewise.
5359         (arm_simd_builtin_std_type): Likewise.
5360         (arm_lookup_simd_builtin_type): Likewise.
5361         (arm_simd_builtin_type): Likewise.
5362         (arm_init_simd_builtin_types): Likewise.
5363         (arm_init_simd_builtin_scalar_types): Likewise.
5364         (arm_init_neon_builtins): Rewrite using qualifiers.
5365         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
5366         * config/arm/arm-simd-builtin-types.def: New file.
5367         * config/arm/t-arm (arm-builtins.o): Depend on it.
5368         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
5369         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
5370         (int16x4_t): Likewise.
5371         (int32x2_t): Likewise.
5372         (float16x4_t): Likewise.
5373         (float32x2_t): Likewise.
5374         (poly8x8_t): Likewise.
5375         (poly16x4_t): Likewise.
5376         (uint8x8_t): Likewise.
5377         (uint16x4_t): Likewise.
5378         (uint32x2_t): Likewise.
5379         (int8x16_t): Likewise.
5380         (int16x8_t): Likewise.
5381         (int32x4_t): Likewise.
5382         (int64x2_t): Likewise.
5383         (float32x4_t): Likewise.
5384         (poly8x16_t): Likewise.
5385         (poly16x8_t): Likewise.
5386         (uint8x16_t): Likewise.
5387         (uint16x8_t): Likewise.
5388         (uint32x4_t): Likewise.
5389         (uint64x2_t): Likewise.
5390
5391 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5392
5393         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
5394         (neon_itype): Add new types corresponding to the types used in
5395         qualifiers names.
5396         (arm_unop_qualifiers): New.
5397         (arm_bswap_qualifiers): Likewise.
5398         (arm_binop_qualifiers): Likewise.
5399         (arm_ternop_qualifiers): Likewise.
5400         (arm_getlane_qualifiers): Likewise.
5401         (arm_lanemac_qualifiers): Likewise.
5402         (arm_setlane_qualifiers): Likewise.
5403         (arm_combine_qualifiers): Likewise.
5404         (arm_load1_qualifiers): Likewise.
5405         (arm_load1_lane_qualifiers): Likewise.
5406         (arm_store1_qualifiers): Likewise.
5407         (arm_storestruct_lane_qualifiers): Likewise.
5408         (UNOP_QUALIFIERS): Likewise.
5409         (DUP_QUALIFIERS): Likewise.
5410         (SPLIT_QUALIFIERS): Likewise.
5411         (CONVERT_QUALIFIERS): Likewise.
5412         (FLOAT_WIDEN_QUALIFIERS): Likewise.
5413         (FLOAT_NARROW_QUALIFIERS): Likewise.
5414         (RINT_QUALIFIERS): Likewise.
5415         (COPYSIGNF_QUALIFIERS): Likewise.
5416         (CREATE_QUALIFIERS): Likewise.
5417         (REINTERP_QUALIFIERS): Likewise.
5418         (BSWAP_QUALIFIERS): Likewise.
5419         (BINOP_QUALIFIERS): Likewise.
5420         (FIXCONV_QUALIFIERS): Likewise.
5421         (SCALARMUL_QUALIFIERS): Likewise.
5422         (SCALARMULL_QUALIFIERS): Likewise.
5423         (SCALARMULH_QUALIFIERS): Likewise.
5424         (TERNOP_QUALIFIERS): Likewise.
5425         (SELECT_QUALIFIERS): Likewise.
5426         (VTBX_QUALIFIERS): Likewise.
5427         (GETLANE_QUALIFIERS): Likewise.
5428         (SHIFTIMM_QUALIFIERS): Likewise.
5429         (LANEMAC_QUALIFIERS): Likewise.
5430         (SCALARMAC_QUALIFIERS): Likewise.
5431         (SETLANE_QUALIFIERS): Likewise.
5432         (SHIFTINSERT_QUALIFIERS): Likewise.
5433         (SHIFTACC_QUALIFIERS): Likewise.
5434         (LANEMUL_QUALIFIERS): Likewise.
5435         (LANEMULL_QUALIFIERS): Likewise.
5436         (LANEMULH_QUALIFIERS): Likewise.
5437         (COMBINE_QUALIFIERS): Likewise.
5438         (VTBL_QUALIFIERS): Likewise.
5439         (LOAD1_QUALIFIERS): Likewise.
5440         (LOADSTRUCT_QUALIFIERS): Likewise.
5441         (LOAD1LANE_QUALIFIERS): Likewise.
5442         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
5443         (STORE1_QUALIFIERS): Likewise.
5444         (STORESTRUCT_QUALIFIERS): Likewise.
5445         (STORE1LANE_QUALIFIERS): Likewise.
5446         (STORESTRUCTLANE_QUALIFIERS): Likewise.
5447         (neon_builtin_datum): Keep track of qualifiers.
5448         (VAR1): Likewise.
5449
5450 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5451
5452         * config/arm/arm-builtins.c (VAR1): Add a comma.
5453         (VAR2): Rewrite in terms of VAR1.
5454         (VAR3-10): Likewise.
5455         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
5456         * config/arm/arm_neon_builtins.def: Remove trailing commas.
5457
5458 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5459
5460         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
5461         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
5462         * config/arm/arm-builtins.c: New.
5463         * config/arm/t-arm (arm_builtins.o): New.
5464         * config/arm/arm-protos.h (arm_expand_builtin): New.
5465         (arm_builtin_decl): Likewise.
5466         (arm_init_builtins): Likewise.
5467         (arm_atomic_assign_expand_fenv): Likewise.
5468         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
5469         (arm_init_builtins): Likewise.
5470         (arm_init_iwmmxt_builtins): Likewise
5471         (safe_vector_operand): Likewise
5472         (arm_expand_binop_builtin): Likewise
5473         (arm_expand_unop_builtin): Likewise
5474         (arm_expand_builtin): Likewise
5475         (arm_builtin_decl): Likewise
5476         (insn_flags): Remove static.
5477         (tune_flags): Likewise.
5478         (enum arm_builtins): Move to config/arm/arm-builtins.c.
5479         (arm_init_neon_builtins): Likewise.
5480         (struct builtin_description): Likewise.
5481         (arm_init_iwmmxt_builtins): Likewise.
5482         (arm_init_fp16_builtins): Likewise.
5483         (arm_init_crc32_builtins): Likewise.
5484         (arm_init_builtins): Likewise.
5485         (arm_builtin_decl): Likewise.
5486         (safe_vector_operand): Likewise.
5487         (arm_expand_ternop_builtin): Likewise.
5488         (arm_expand_binop_builtin): Likewise.
5489         (arm_expand_unop_builtin): Likewise.
5490         (neon_dereference_pointer): Likewise.
5491         (arm_expand_neon_args): Likewise.
5492         (arm_expand_neon_builtin): Likewise.
5493         (neon_split_vcombine): Likewise.
5494         (arm_expand_builtin): Likewise.
5495         (arm_builtin_vectorized_function): Likewise.
5496         (arm_atomic_assign_expand_fenv): Likewise.
5497
5498 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5499
5500         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
5501         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
5502         (FL_ARCH3M): Likewise.
5503         (FL_MODE26): Likewise.
5504         (FL_MODE32): Likewise.
5505         (FL_ARCH4): Likewise.
5506         (FL_ARCH5): Likewise.
5507         (FL_THUMB): Likewise.
5508         (FL_LDSCHED): Likewise.
5509         (FL_STRONG): Likewise.
5510         (FL_ARCH5E): Likewise.
5511         (FL_XSCALE): Likewise.
5512         (FL_ARCH6): Likewise.
5513         (FL_VFPV2): Likewise.
5514         (FL_WBUF): Likewise.
5515         (FL_ARCH6K): Likewise.
5516         (FL_THUMB2): Likewise.
5517         (FL_NOTM): Likewise.
5518         (FL_THUMB_DIV): Likewise.
5519         (FL_VFPV3): Likewise.
5520         (FL_NEON): Likewise.
5521         (FL_ARCH7EM): Likewise.
5522         (FL_ARCH7): Likewise.
5523         (FL_ARM_DIV): Likewise.
5524         (FL_ARCH8): Likewise.
5525         (FL_CRC32): Likewise.
5526         (FL_SMALLMUL): Likewise.
5527         (FL_IWMMXT): Likewise.
5528         (FL_IWMMXT2): Likewise.
5529         (FL_TUNE): Likewise.
5530         (FL_FOR_ARCH2): Likewise.
5531         (FL_FOR_ARCH3): Likewise.
5532         (FL_FOR_ARCH3M): Likewise.
5533         (FL_FOR_ARCH4): Likewise.
5534         (FL_FOR_ARCH4T): Likewise.
5535         (FL_FOR_ARCH5): Likewise.
5536         (FL_FOR_ARCH5T): Likewise.
5537         (FL_FOR_ARCH5E): Likewise.
5538         (FL_FOR_ARCH5TE): Likewise.
5539         (FL_FOR_ARCH5TEJ): Likewise.
5540         (FL_FOR_ARCH6): Likewise.
5541         (FL_FOR_ARCH6J): Likewise.
5542         (FL_FOR_ARCH6K): Likewise.
5543         (FL_FOR_ARCH6Z): Likewise.
5544         (FL_FOR_ARCH6ZK): Likewise.
5545         (FL_FOR_ARCH6T2): Likewise.
5546         (FL_FOR_ARCH6M): Likewise.
5547         (FL_FOR_ARCH7): Likewise.
5548         (FL_FOR_ARCH7A): Likewise.
5549         (FL_FOR_ARCH7VE): Likewise.
5550         (FL_FOR_ARCH7R): Likewise.
5551         (FL_FOR_ARCH7M): Likewise.
5552         (FL_FOR_ARCH7EM): Likewise.
5553         (FL_FOR_ARCH8A): Likewise.
5554         * config/arm/arm-protos.h: Take definitions moved from arm.c.
5555
5556 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
5557
5558         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
5559         parameter, rearrange switch statement accordingly.
5560         (arm_evpc_neon_vrev): Remove "Magic Word".
5561         * config/arm/unspecs.md (unspec): Split many UNSPECs to
5562         rounding, or signed/unsigned variants.
5563         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
5564         (vcondu<mode><mode>): Likewise.
5565         (neon_vadd): Remove "Magic Word" operand.
5566         (neon_vaddl): Remove "Magic Word" operand, convert to use
5567         signed/unsigned iterator.
5568         (neon_vaddw): Likewise.
5569         (neon_vhadd): Likewise, also iterate over "rounding" forms.
5570         (neon_vqadd): Remove "Magic Word" operand, convert to use
5571         signed/unsigned iterator.
5572         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
5573         over "rounding" forms.
5574         (neon_vmul): Remove "Magic Word" operand, iterate over
5575         polynomial/float instruction forms.
5576         (neon_vmla): Remove "Magic Word" operand.
5577         (neon_vfma): Likewise.
5578         (neon_vfms): Likewise.
5579         (neon_vmls): Likewise.
5580         (neon_vmlal): Remove "Magic Word" operand, iterate over
5581         signed/unsigned forms.
5582         (neon_vmlsl): Likewise.
5583         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
5584         forms.
5585         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
5586         signed/unsigned forms.
5587         (neon_vqdmlsl): Likewise.
5588         (neon_vmull): Likewise.
5589         (neon_vqdmull): Remove "Magic Word" operand.
5590         (neon_vsub): Remove "Magic Word" operand.
5591         (neon_vsubl): Remove "Magic Word" operand, convert to use
5592         signed/unsigned iterator.
5593         (neon_vsubw): Likewise.
5594         (neon_vhsub): Likewise.
5595         (neon_vqsub): Likewise.
5596         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
5597         over "rounding" forms.
5598         (neon_vceq): Remove "Magic Word" operand.
5599         (neon_vcge): Likewise.
5600         (neon_vcgeu): Likewise.
5601         (neon_vcgt): Likewise.
5602         (neon_vcgtu): Likewise.
5603         (neon_vcle): Likewise.
5604         (neon_vclt): Likewise.
5605         (neon_vcage): Likewise.
5606         (neon_vcagt): Likewise.
5607         (neon_vabd): Remove "Magic Word" operand, iterate over
5608         signed/unsigned forms, and split out...
5609         (neon_vabdf): ...this as new.
5610         (neon_vabdl): Remove "Magic Word" operand, iterate over
5611         signed/unsigned forms.
5612         (neon_vaba): Likewise.
5613         (neon_vmax): Remove "Magic Word" operand, iterate over
5614         signed/unsigned and max/min forms, and split out...
5615         (neon_v<maxmin>f): ...this as new.
5616         (neon_vmin): Delete.
5617         (neon_vpadd): Remove "Magic Word" operand.
5618         (neon_vpaddl): Remove "Magic Word" operand, iterate over
5619         signed/unsigned variants.
5620         (neon_vpadal): Likewise.
5621         (neon_vpmax): Remove "Magic Word" operand, iterate over
5622         signed/unsigned and max/min forms, and split out...
5623         (neon_vp<maxmin>f): ...this as new.
5624         (neon_vpmin): Delete.
5625         (neon_vrecps): Remove "Magic Word" operand.
5626         (neon_vrsqrts): Likewise.
5627         (neon_vabs): Likewise.
5628         (neon_vqabs): Likewise.
5629         (neon_vneg): Likewise.
5630         (neon_vqneg): Likewise.
5631         (neon_vcls): Likewise.
5632         (neon_vcnt): Likewise.
5633         (neon_vrecpe): Likewise.
5634         (neon_vrsqrte): Likewise.
5635         (neon_vmvn): Likewise.
5636         (neon_vget_lane): Likewise.
5637         (neon_vget_laneu): New.
5638         (neon_vget_lanedi): Remove "Magic Word" operand.
5639         (neon_vget_lanev2di): Likewise.
5640         (neon_vcvt): Remove "Magic Word" operand, iterate over
5641         signed/unsigned variants.
5642         (neon_vcvt_n): Likewise.
5643         (neon_vmovn): Remove "Magic Word" operand.
5644         (neon_vqmovn): Remove "Magic Word" operand, iterate over
5645         signed/unsigned variants.
5646         (neon_vmovun): Remove "Magic Word" operand.
5647         (neon_vmovl): Remove "Magic Word" operand, iterate over
5648         signed/unsigned variants.
5649         (neon_vmul_lane): Remove "Magic Word" operand.
5650         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
5651         signed/unsigned variants.
5652         (neon_vqdmull_lane): Remove "Magic Word" operand.
5653         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
5654         rounding variants.
5655         (neon_vmla_lane): Remove "Magic Word" operand.
5656         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
5657         signed/unsigned variants.
5658         (neon_vqdmlal_lane): Remove "Magic Word" operand.
5659         (neon_vmls_lane): Likewise.
5660         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
5661         signed/unsigned variants.
5662         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
5663         (neon_vmul_n): Remove "Magic Word" operand.
5664         (neon_vmull_n): Rename to...
5665         (neon_vmulls_n): ...this, remove "Magic Word" operand.
5666         (neon_vmullu_n): New.
5667         (neon_vqdmull_n): Remove "Magic Word" operand.
5668         (neon_vqdmulh_n): Likewise.
5669         (neon_vqrdmulh_n): New.
5670         (neon_vmla_n): Remove "Magic Word" operand.
5671         (neon_vmls_n): Likewise.
5672         (neon_vmlal_n): Rename to...
5673         (neon_vmlals_n): ...this, remove "Magic Word" operand.
5674         (neon_vmlalu_n): New.
5675         (neon_vqdmlal_n): Remove "Magic Word" operand.
5676         (neon_vmlsl_n): Rename to...
5677         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
5678         (neon_vmlslu_n): New.
5679         (neon_vqdmlsl_n): Remove "Magic Word" operand.
5680         (neon_vrev64): Remove "Magic Word" operand.
5681         (neon_vrev32): Likewise.
5682         (neon_vrev16): Likewise.
5683         (neon_vshl): Remove "Magic Word" operand, iterate over
5684         signed/unsigned and "rounding" forms.
5685         (neon_vqshl): Likewise.
5686         (neon_vshr_n): Likewise.
5687         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
5688         "rounding" forms.
5689         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
5690         signed/unsigned and "rounding" forms.
5691         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
5692         "rounding" forms.
5693         (neon_vshl_n): Remove "Magic Word" operand.
5694         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
5695         signed/unsigned variants.
5696         (neon_vqshlu_n): Remove "Magic Word" operand.
5697         (neon_vshll_n): Remove "Magic Word" operand, iterate over
5698         signed/unsigned variants.
5699         (neon_vsra_n): Remove "Magic Word" operand, iterate over
5700         signed/unsigned and "rounding" forms.
5701         * config/arm/iterators.md (VPF): New.
5702         (VADDL): Likewise.
5703         (VADDW): Likewise.
5704         (VHADD): Likewise.
5705         (VQADD): Likewise.
5706         (VADDHN): Likewise.
5707         (VMLAL): Likewise.
5708         (VMLAL_LANE): Likewise.
5709         (VLMSL): Likewise.
5710         (VMLSL_LANE): Likewise.
5711         (VQDMULH): Likewise,
5712         (VQDMULH_LANE): Likewise.
5713         (VMULL): Likewise.
5714         (VMULL_LANE): Likewise.
5715         (VSUBL): Likewise.
5716         (VSUBW): Likewise.
5717         (VHSUB): Likewise.
5718         (VQSUB): Likewise.
5719         (VSUBHN): Likewise.
5720         (VABD): Likewise.
5721         (VABDL): Likewise.
5722         (VMAXMIN): Likewise.
5723         (VMAXMINF): Likewise.
5724         (VPADDL): Likewise.
5725         (VPADAL): Likewise.
5726         (VPMAXMIN): Likewise.
5727         (VPMAXMINF): Likewise.
5728         (VCVT_US): Likewise.
5729         (VCVT_US_N): Likewise.
5730         (VQMOVN): Likewise.
5731         (VMOVL): Likewise.
5732         (VSHL): Likewise.
5733         (VQSHL): Likewise.
5734         (VSHR_N): Likewise.
5735         (VSHRN_N): Likewise.
5736         (VQSHRN_N): Likewise.
5737         (VQSHRUN_N): Likewise.
5738         (VQSHL_N): Likewise.
5739         (VSHLL_N): Likewise.
5740         (VSRA_N): Likewise.
5741         (pf): Likewise.
5742         (sup): Likewise.
5743         (r): Liekwise.
5744         (maxmin): Likewise.
5745         (shift_op): Likewise.
5746         * config/arm/arm_neon_builtins.def (vaddl): Split to...
5747         (vaddls): ...this and...
5748         (vaddlu): ...this.
5749         (vaddw): Split to...
5750         (vaddws): ...this and...
5751         (vaddwu): ...this.
5752         (vhadd): Split to...
5753         (vhadds): ...this and...
5754         (vhaddu): ...this and...
5755         (vrhadds): ...this and...
5756         (vrhaddu): ...this.
5757         (vqadd): Split to...
5758         (vqadds): ...this and...
5759         (vqaddu): ...this.
5760         (vaddhn): Split to itself and...
5761         (vraddhn): ...this.
5762         (vmul): Split to...
5763         (vmulf): ...this and...
5764         (vmulp): ...this.
5765         (vmlal): Split to...
5766         (vmlals): ...this and...
5767         (vmlalu): ...this.
5768         (vmlsl): Split to...
5769         (vmlsls): ...this and...
5770         (vmlslu): ...this.
5771         (vqdmulh): Split to itself and...
5772         (vqrdmulh): ...this.
5773         (vmull): Split to...
5774         (vmullp): ...this and...
5775         (vmulls): ...this and...
5776         (vmullu): ...this.
5777         (vmull_n): Split to...
5778         (vmulls_n): ...this and...
5779         (vmullu_n): ...this.
5780         (vmull_lane): Split to...
5781         (vmulls_lane): ...this and...
5782         (vmullu_lane): ...this.
5783         (vqdmulh_n): Split to itself and...
5784         (vqrdmulh_n): ...this.
5785         (vqdmulh_lane): Split to itself and...
5786         (vqrdmulh_lane): ...this.
5787         (vshl): Split to...
5788         (vshls): ...this and...
5789         (vshlu): ...this and...
5790         (vrshls): ...this and...
5791         (vrshlu): ...this.
5792         (vqshl): Split to...
5793         (vqshls): ...this and...
5794         (vqrshlu): ...this and...
5795         (vqrshls): ...this and...
5796         (vqrshlu): ...this.
5797         (vshr_n): Split to...
5798         (vshrs_n): ...this and...
5799         (vshru_n): ...this and...
5800         (vrshrs_n): ...this and...
5801         (vrshru_n): ...this.
5802         (vshrn_n): Split to itself and...
5803         (vrshrn_n): ...this.
5804         (vqshrn_n): Split to...
5805         (vqshrns_n): ...this and...
5806         (vqshrnu_n): ...this and...
5807         (vqrshrns_n): ...this and...
5808         (vqrshrnu_n): ...this.
5809         (vqshrun_n): Split to itself and...
5810         (vqrshrun_n): ...this.
5811         (vqshl_n): Split to...
5812         (vqshl_s_n): ...this and...
5813         (vqshl_u_n): ...this.
5814         (vshll_n): Split to...
5815         (vshlls_n): ...this and...
5816         (vshllu_n): ...this.
5817         (vsra_n): Split to...
5818         (vsras_n): ...this and...
5819         (vsrau_n): ...this and.
5820         (vrsras_n): ...this and...
5821         (vrsrau_n): ...this and.
5822         (vsubl): Split to...
5823         (vsubls): ...this and...
5824         (vsublu): ...this.
5825         (vsubw): Split to...
5826         (vsubws): ...this and...
5827         (vsubwu): ...this.
5828         (vqsub): Split to...
5829         (vqsubs): ...this and...
5830         (vqsubu): ...this.
5831         (vhsub): Split to...
5832         (vhsubs): ...this and...
5833         (vhsubu): ...this.
5834         (vsubhn): Split to itself and...
5835         (vrsubhn): ...this.
5836         (vabd): Split to...
5837         (vabds): ...this and...
5838         (vabdu): ...this and...
5839         (vabdf): ...this.
5840         (vabdl): Split to...
5841         (vabdls): ...this and...
5842         (vabdlu): ...this.
5843         (vaba): Split to...
5844         (vabas): ...this and...
5845         (vabau): ...this and...
5846         (vabal): Split to...
5847         (vabals): ...this and...
5848         (vabalu): ...this.
5849         (vmax): Split to...
5850         (vmaxs): ...this and...
5851         (vmaxu): ...this and...
5852         (vmaxf): ...this.
5853         (vmin): Split to...
5854         (vmins): ...this and...
5855         (vminu): ...this and...
5856         (vminf): ...this.
5857         (vpmax): Split to...
5858         (vpmaxs): ...this and...
5859         (vpmaxu): ...this and...
5860         (vpmaxf): ...this.
5861         (vpmin): Split to...
5862         (vpmins): ...this and...
5863         (vpminu): ...this and...
5864         (vpminf): ...this.
5865         (vpaddl): Split to...
5866         (vpaddls): ...this and...
5867         (vpaddlu): ...this.
5868         (vpadal): Split to...
5869         (vpadals): ...this and...
5870         (vpadalu): ...this.
5871         (vget_laneu): New.
5872         (vqmovn): Split to...
5873         (vqmovns): ...this and...
5874         (vqmovnu): ...this.
5875         (vmovl): Split to...
5876         (vmovls): ...this and...
5877         (vmovlu): ...this.
5878         (vmlal_lane): Split to...
5879         (vmlals_lane): ...this and...
5880         (vmlalu_lane): ...this.
5881         (vmlsl_lane): Split to...
5882         (vmlsls_lane): ...this and...
5883         (vmlslu_lane): ...this.
5884         (vmlal_n): Split to...
5885         (vmlals_n): ...this and...
5886         (vmlalu_n): ...this.
5887         (vmlsl_n): Split to...
5888         (vmlsls_n): ...this and...
5889         (vmlslu_n): ...this.
5890         (vext): Make type "SHIFTINSERT".
5891         (vcvt): Split to...
5892         (vcvts): ...this and...
5893         (vcvtu): ...this.
5894         (vcvt_n): Split to...
5895         (vcvts_n): ...this and...
5896         (vcvtu_n): ...this.
5897         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5898         (vaddl_s16): Likewise.
5899         (vaddl_s32): Likewise.
5900         (vaddl_u8): Likewise.
5901         (vaddl_u16): Likewise.
5902         (vaddl_u32): Likewise.
5903         (vaddw_s8): Likewise.
5904         (vaddw_s16): Likewise.
5905         (vaddw_s32): Likewise.
5906         (vaddw_u8): Likewise.
5907         (vaddw_u16): Likewise.
5908         (vaddw_u32): Likewise.
5909         (vhadd_s8): Likewise.
5910         (vhadd_s16): Likewise.
5911         (vhadd_s32): Likewise.
5912         (vhadd_u8): Likewise.
5913         (vhadd_u16): Likewise.
5914         (vhadd_u32): Likewise.
5915         (vhaddq_s8): Likewise.
5916         (vhaddq_s16): Likewise.
5917         (vhaddq_s32): Likewise.
5918         (vhaddq_u8): Likewise.
5919         (vhaddq_u16): Likewise.
5920         (vrhadd_s8): Likewise.
5921         (vrhadd_s16): Likewise.
5922         (vrhadd_s32): Likewise.
5923         (vrhadd_u8): Likewise.
5924         (vrhadd_u16): Likewise.
5925         (vrhadd_u32): Likewise.
5926         (vrhaddq_s8): Likewise.
5927         (vrhaddq_s16): Likewise.
5928         (vrhaddq_s32): Likewise.
5929         (vrhaddq_u8): Likewise.
5930         (vrhaddq_u16): Likewise.
5931         (vrhaddq_u32): Likewise.
5932         (vqadd_s8): Likewise.
5933         (vqadd_s16): Likewise.
5934         (vqadd_s32): Likewise.
5935         (vqadd_s64): Likewise.
5936         (vqadd_u8): Likewise.
5937         (vqadd_u16): Likewise.
5938         (vqadd_u32): Likewise.
5939         (vqadd_u64): Likewise.
5940         (vqaddq_s8): Likewise.
5941         (vqaddq_s16): Likewise.
5942         (vqaddq_s32): Likewise.
5943         (vqaddq_s64): Likewise.
5944         (vqaddq_u8): Likewise.
5945         (vqaddq_u16): Likewise.
5946         (vqaddq_u32): Likewise.
5947         (vqaddq_u64): Likewise.
5948         (vaddhn_s16): Likewise.
5949         (vaddhn_s32): Likewise.
5950         (vaddhn_s64): Likewise.
5951         (vaddhn_u16): Likewise.
5952         (vaddhn_u32): Likewise.
5953         (vaddhn_u64): Likewise.
5954         (vraddhn_s16): Likewise.
5955         (vraddhn_s32): Likewise.
5956         (vraddhn_s64): Likewise.
5957         (vraddhn_u16): Likewise.
5958         (vraddhn_u32): Likewise.
5959         (vraddhn_u64): Likewise.
5960         (vmul_p8): Likewise.
5961         (vmulq_p8): Likewise.
5962         (vqdmulh_s16): Likewise.
5963         (vqdmulh_s32): Likewise.
5964         (vqdmulhq_s16): Likewise.
5965         (vqdmulhq_s32): Likewise.
5966         (vqrdmulh_s16): Likewise.
5967         (vqrdmulh_s32): Likewise.
5968         (vqrdmulhq_s16): Likewise.
5969         (vqrdmulhq_s32): Likewise.
5970         (vmull_s8): Likewise.
5971         (vmull_s16): Likewise.
5972         (vmull_s32): Likewise.
5973         (vmull_u8): Likewise.
5974         (vmull_u16): Likewise.
5975         (vmull_u32): Likewise.
5976         (vmull_p8): Likewise.
5977         (vqdmull_s16): Likewise.
5978         (vqdmull_s32): Likewise.
5979         (vmla_s8): Likewise.
5980         (vmla_s16): Likewise.
5981         (vmla_s32): Likewise.
5982         (vmla_f32): Likewise.
5983         (vmla_u8): Likewise.
5984         (vmla_u16): Likewise.
5985         (vmla_u32): Likewise.
5986         (vmlaq_s8): Likewise.
5987         (vmlaq_s16): Likewise.
5988         (vmlaq_s32): Likewise.
5989         (vmlaq_f32): Likewise.
5990         (vmlaq_u8): Likewise.
5991         (vmlaq_u16): Likewise.
5992         (vmlaq_u32): Likewise.
5993         (vmlal_s8): Likewise.
5994         (vmlal_s16): Likewise.
5995         (vmlal_s32): Likewise.
5996         (vmlal_u8): Likewise.
5997         (vmlal_u16): Likewise.
5998         (vmlal_u32): Likewise.
5999         (vqdmlal_s16): Likewise.
6000         (vqdmlal_s32): Likewise.
6001         (vmls_s8): Likewise.
6002         (vmls_s16): Likewise.
6003         (vmls_s32): Likewise.
6004         (vmls_f32): Likewise.
6005         (vmls_u8): Likewise.
6006         (vmls_u16): Likewise.
6007         (vmls_u32): Likewise.
6008         (vmlsq_s8): Likewise.
6009         (vmlsq_s16): Likewise.
6010         (vmlsq_s32): Likewise.
6011         (vmlsq_f32): Likewise.
6012         (vmlsq_u8): Likewise.
6013         (vmlsq_u16): Likewise.
6014         (vmlsq_u32): Likewise.
6015         (vmlsl_s8): Likewise.
6016         (vmlsl_s16): Likewise.
6017         (vmlsl_s32): Likewise.
6018         (vmlsl_u8): Likewise.
6019         (vmlsl_u16): Likewise.
6020         (vmlsl_u32): Likewise.
6021         (vqdmlsl_s16): Likewise.
6022         (vqdmlsl_s32): Likewise.
6023         (vfma_f32): Likewise.
6024         (vfmaq_f32): Likewise.
6025         (vfms_f32): Likewise.
6026         (vfmsq_f32): Likewise.
6027         (vsubl_s8): Likewise.
6028         (vsubl_s16): Likewise.
6029         (vsubl_s32): Likewise.
6030         (vsubl_u8): Likewise.
6031         (vsubl_u16): Likewise.
6032         (vsubl_u32): Likewise.
6033         (vsubw_s8): Likewise.
6034         (vsubw_s16): Likewise.
6035         (vsubw_s32): Likewise.
6036         (vsubw_u8): Likewise.
6037         (vsubw_u16): Likewise.
6038         (vsubw_u32): Likewise.
6039         (vhsub_s8): Likewise.
6040         (vhsub_s16): Likewise.
6041         (vhsub_s32): Likewise.
6042         (vhsub_u8): Likewise.
6043         (vhsub_u16): Likewise.
6044         (vhsub_u32): Likewise.
6045         (vhsubq_s8): Likewise.
6046         (vhsubq_s16): Likewise.
6047         (vhsubq_s32): Likewise.
6048         (vhsubq_u8): Likewise.
6049         (vhsubq_u16): Likewise.
6050         (vhsubq_u32): Likewise.
6051         (vqsub_s8): Likewise.
6052         (vqsub_s16): Likewise.
6053         (vqsub_s32): Likewise.
6054         (vqsub_s64): Likewise.
6055         (vqsub_u8): Likewise.
6056         (vqsub_u16): Likewise.
6057         (vqsub_u32): Likewise.
6058         (vqsub_u64): Likewise.
6059         (vqsubq_s8): Likewise.
6060         (vqsubq_s16): Likewise.
6061         (vqsubq_s32): Likewise.
6062         (vqsubq_s64): Likewise.
6063         (vqsubq_u8): Likewise.
6064         (vqsubq_u16): Likewise.
6065         (vqsubq_u32): Likewise.
6066         (vqsubq_u64): Likewise.
6067         (vsubhn_s16): Likewise.
6068         (vsubhn_s32): Likewise.
6069         (vsubhn_s64): Likewise.
6070         (vsubhn_u16): Likewise.
6071         (vsubhn_u32): Likewise.
6072         (vsubhn_u64): Likewise.
6073         (vrsubhn_s16): Likewise.
6074         (vrsubhn_s32): Likewise.
6075         (vrsubhn_s64): Likewise.
6076         (vrsubhn_u16): Likewise.
6077         (vrsubhn_u32): Likewise.
6078         (vrsubhn_u64): Likewise.
6079         (vceq_s8): Likewise.
6080         (vceq_s16): Likewise.
6081         (vceq_s32): Likewise.
6082         (vceq_f32): Likewise.
6083         (vceq_u8): Likewise.
6084         (vceq_u16): Likewise.
6085         (vceq_u32): Likewise.
6086         (vceq_p8): Likewise.
6087         (vceqq_s8): Likewise.
6088         (vceqq_s16): Likewise.
6089         (vceqq_s32): Likewise.
6090         (vceqq_f32): Likewise.
6091         (vceqq_u8): Likewise.
6092         (vceqq_u16): Likewise.
6093         (vceqq_u32): Likewise.
6094         (vceqq_p8): Likewise.
6095         (vcge_s8): Likewise.
6096         (vcge_s16): Likewise.
6097         (vcge_s32): Likewise.
6098         (vcge_f32): Likewise.
6099         (vcge_u8): Likewise.
6100         (vcge_u16): Likewise.
6101         (vcge_u32): Likewise.
6102         (vcgeq_s8): Likewise.
6103         (vcgeq_s16): Likewise.
6104         (vcgeq_s32): Likewise.
6105         (vcgeq_f32): Likewise.
6106         (vcgeq_u8): Likewise.
6107         (vcgeq_u16): Likewise.
6108         (vcgeq_u32): Likewise.
6109         (vcle_s8): Likewise.
6110         (vcle_s16): Likewise.
6111         (vcle_s32): Likewise.
6112         (vcle_f32): Likewise.
6113         (vcle_u8): Likewise.
6114         (vcle_u16): Likewise.
6115         (vcle_u32): Likewise.
6116         (vcleq_s8): Likewise.
6117         (vcleq_s16): Likewise.
6118         (vcleq_s32): Likewise.
6119         (vcleq_f32): Likewise.
6120         (vcleq_u8): Likewise.
6121         (vcleq_u16): Likewise.
6122         (vcleq_u32): Likewise.
6123         (vcgt_s8): Likewise.
6124         (vcgt_s16): Likewise.
6125         (vcgt_s32): Likewise.
6126         (vcgt_f32): Likewise.
6127         (vcgt_u8): Likewise.
6128         (vcgt_u16): Likewise.
6129         (vcgt_u32): Likewise.
6130         (vcgtq_s8): Likewise.
6131         (vcgtq_s16): Likewise.
6132         (vcgtq_s32): Likewise.
6133         (vcgtq_f32): Likewise.
6134         (vcgtq_u8): Likewise.
6135         (vcgtq_u16): Likewise.
6136         (vcgtq_u32): Likewise.
6137         (vclt_s8): Likewise.
6138         (vclt_s16): Likewise.
6139         (vclt_s32): Likewise.
6140         (vclt_f32): Likewise.
6141         (vclt_u8): Likewise.
6142         (vclt_u16): Likewise.
6143         (vclt_u32): Likewise.
6144         (vcltq_s8): Likewise.
6145         (vcltq_s16): Likewise.
6146         (vcltq_s32): Likewise.
6147         (vcltq_f32): Likewise.
6148         (vcltq_u8): Likewise.
6149         (vcltq_u16): Likewise.
6150         (vcltq_u32): Likewise.
6151         (vcage_f32): Likewise.
6152         (vcageq_f32): Likewise.
6153         (vcale_f32): Likewise.
6154         (vcaleq_f32): Likewise.
6155         (vcagt_f32): Likewise.
6156         (vcagtq_f32): Likewise.
6157         (vcalt_f32): Likewise.
6158         (vcaltq_f32): Likewise.
6159         (vtst_s8): Likewise.
6160         (vtst_s16): Likewise.
6161         (vtst_s32): Likewise.
6162         (vtst_u8): Likewise.
6163         (vtst_u16): Likewise.
6164         (vtst_u32): Likewise.
6165         (vtst_p8): Likewise.
6166         (vtstq_s8): Likewise.
6167         (vtstq_s16): Likewise.
6168         (vtstq_s32): Likewise.
6169         (vtstq_u8): Likewise.
6170         (vtstq_u16): Likewise.
6171         (vtstq_u32): Likewise.
6172         (vtstq_p8): Likewise.
6173         (vabd_s8): Likewise.
6174         (vabd_s16): Likewise.
6175         (vabd_s32): Likewise.
6176         (vabd_f32): Likewise.
6177         (vabd_u8): Likewise.
6178         (vabd_u16): Likewise.
6179         (vabd_u32): Likewise.
6180         (vabdq_s8): Likewise.
6181         (vabdq_s16): Likewise.
6182         (vabdq_s32): Likewise.
6183         (vabdq_f32): Likewise.
6184         (vabdq_u8): Likewise.
6185         (vabdq_u16): Likewise.
6186         (vabdq_u32): Likewise.
6187         (vabdl_s8): Likewise.
6188         (vabdl_s16): Likewise.
6189         (vabdl_s32): Likewise.
6190         (vabdl_u8): Likewise.
6191         (vabdl_u16): Likewise.
6192         (vabdl_u32): Likewise.
6193         (vaba_s8): Likewise.
6194         (vaba_s16): Likewise.
6195         (vaba_s32): Likewise.
6196         (vaba_u8): Likewise.
6197         (vaba_u16): Likewise.
6198         (vaba_u32): Likewise.
6199         (vabaq_s8): Likewise.
6200         (vabaq_s16): Likewise.
6201         (vabaq_s32): Likewise.
6202         (vabaq_u8): Likewise.
6203         (vabaq_u16): Likewise.
6204         (vabaq_u32): Likewise.
6205         (vabal_s8): Likewise.
6206         (vabal_s16): Likewise.
6207         (vabal_s32): Likewise.
6208         (vabal_u8): Likewise.
6209         (vabal_u16): Likewise.
6210         (vabal_u32): Likewise.
6211         (vmax_s8): Likewise.
6212         (vmax_s16): Likewise.
6213         (vmax_s32): Likewise.
6214         (vmax_f32): Likewise.
6215         (vmax_u8): Likewise.
6216         (vmax_u16): Likewise.
6217         (vmax_u32): Likewise.
6218         (vmaxq_s8): Likewise.
6219         (vmaxq_s16): Likewise.
6220         (vmaxq_s32): Likewise.
6221         (vmaxq_f32): Likewise.
6222         (vmaxq_u8): Likewise.
6223         (vmaxq_u16): Likewise.
6224         (vmaxq_u32): Likewise.
6225         (vmin_s8): Likewise.
6226         (vmin_s16): Likewise.
6227         (vmin_s32): Likewise.
6228         (vmin_f32): Likewise.
6229         (vmin_u8): Likewise.
6230         (vmin_u16): Likewise.
6231         (vmin_u32): Likewise.
6232         (vminq_s8): Likewise.
6233         (vminq_s16): Likewise.
6234         (vminq_s32): Likewise.
6235         (vminq_f32): Likewise.
6236         (vminq_u8): Likewise.
6237         (vminq_u16): Likewise.
6238         (vminq_u32): Likewise.
6239         (vpadd_s8): Likewise.
6240         (vpadd_s16): Likewise.
6241         (vpadd_s32): Likewise.
6242         (vpadd_f32): Likewise.
6243         (vpadd_u8): Likewise.
6244         (vpadd_u16): Likewise.
6245         (vpadd_u32): Likewise.
6246         (vpaddl_s8): Likewise.
6247         (vpaddl_s16): Likewise.
6248         (vpaddl_s32): Likewise.
6249         (vpaddl_u8): Likewise.
6250         (vpaddl_u16): Likewise.
6251         (vpaddl_u32): Likewise.
6252         (vpaddlq_s8): Likewise.
6253         (vpaddlq_s16): Likewise.
6254         (vpaddlq_s32): Likewise.
6255         (vpaddlq_u8): Likewise.
6256         (vpaddlq_u16): Likewise.
6257         (vpaddlq_u32): Likewise.
6258         (vpadal_s8): Likewise.
6259         (vpadal_s16): Likewise.
6260         (vpadal_s32): Likewise.
6261         (vpadal_u8): Likewise.
6262         (vpadal_u16): Likewise.
6263         (vpadal_u32): Likewise.
6264         (vpadalq_s8): Likewise.
6265         (vpadalq_s16): Likewise.
6266         (vpadalq_s32): Likewise.
6267         (vpadalq_u8): Likewise.
6268         (vpadalq_u16): Likewise.
6269         (vpadalq_u32): Likewise.
6270         (vpmax_s8): Likewise.
6271         (vpmax_s16): Likewise.
6272         (vpmax_s32): Likewise.
6273         (vpmax_f32): Likewise.
6274         (vpmax_u8): Likewise.
6275         (vpmax_u16): Likewise.
6276         (vpmax_u32): Likewise.
6277         (vpmin_s8): Likewise.
6278         (vpmin_s16): Likewise.
6279         (vpmin_s32): Likewise.
6280         (vpmin_f32): Likewise.
6281         (vpmin_u8): Likewise.
6282         (vpmin_u16): Likewise.
6283         (vpmin_u32): Likewise.
6284         (vrecps_f32): Likewise.
6285         (vrecpsq_f32): Likewise.
6286         (vrsqrts_f32): Likewise.
6287         (vrsqrtsq_f32): Likewise.
6288         (vshl_s8): Likewise.
6289         (vshl_s16): Likewise.
6290         (vshl_s32): Likewise.
6291         (vshl_s64): Likewise.
6292         (vshl_u8): Likewise.
6293         (vshl_u16): Likewise.
6294         (vshl_u32): Likewise.
6295         (vshl_u64): Likewise.
6296         (vshlq_s8): Likewise.
6297         (vshlq_s16): Likewise.
6298         (vshlq_s32): Likewise.
6299         (vshlq_s64): Likewise.
6300         (vshlq_u8): Likewise.
6301         (vshlq_u16): Likewise.
6302         (vshlq_u32): Likewise.
6303         (vshlq_u64): Likewise.
6304         (vrshl_s8): Likewise.
6305         (vrshl_s16): Likewise.
6306         (vrshl_s32): Likewise.
6307         (vrshl_s64): Likewise.
6308         (vrshl_u8): Likewise.
6309         (vrshl_u16): Likewise.
6310         (vrshl_u32): Likewise.
6311         (vrshl_u64): Likewise.
6312         (vrshlq_s8): Likewise.
6313         (vrshlq_s16): Likewise.
6314         (vrshlq_s32): Likewise.
6315         (vrshlq_s64): Likewise.
6316         (vrshlq_u8): Likewise.
6317         (vrshlq_u16): Likewise.
6318         (vrshlq_u32): Likewise.
6319         (vrshlq_u64): Likewise.
6320         (vqshl_s8): Likewise.
6321         (vqshl_s16): Likewise.
6322         (vqshl_s32): Likewise.
6323         (vqshl_s64): Likewise.
6324         (vqshl_u8): Likewise.
6325         (vqshl_u16): Likewise.
6326         (vqshl_u32): Likewise.
6327         (vqshl_u64): Likewise.
6328         (vqshlq_s8): Likewise.
6329         (vqshlq_s16): Likewise.
6330         (vqshlq_s32): Likewise.
6331         (vqshlq_s64): Likewise.
6332         (vqshlq_u8): Likewise.
6333         (vqshlq_u16): Likewise.
6334         (vqshlq_u32): Likewise.
6335         (vqshlq_u64): Likewise.
6336         (vqrshl_s8): Likewise.
6337         (vqrshl_s16): Likewise.
6338         (vqrshl_s32): Likewise.
6339         (vqrshl_s64): Likewise.
6340         (vqrshl_u8): Likewise.
6341         (vqrshl_u16): Likewise.
6342         (vqrshl_u32): Likewise.
6343         (vqrshl_u64): Likewise.
6344         (vqrshlq_s8): Likewise.
6345         (vqrshlq_s16): Likewise.
6346         (vqrshlq_s32): Likewise.
6347         (vqrshlq_s64): Likewise.
6348         (vqrshlq_u8): Likewise.
6349         (vqrshlq_u16): Likewise.
6350         (vqrshlq_u32): Likewise.
6351         (vqrshlq_u64): Likewise.
6352         (vshr_n_s8): Likewise.
6353         (vshr_n_s16): Likewise.
6354         (vshr_n_s32): Likewise.
6355         (vshr_n_s64): Likewise.
6356         (vshr_n_u8): Likewise.
6357         (vshr_n_u16): Likewise.
6358         (vshr_n_u32): Likewise.
6359         (vshr_n_u64): Likewise.
6360         (vshrq_n_s8): Likewise.
6361         (vshrq_n_s16): Likewise.
6362         (vshrq_n_s32): Likewise.
6363         (vshrq_n_s64): Likewise.
6364         (vshrq_n_u8): Likewise.
6365         (vshrq_n_u16): Likewise.
6366         (vshrq_n_u32): Likewise.
6367         (vshrq_n_u64): Likewise.
6368         (vrshr_n_s8): Likewise.
6369         (vrshr_n_s16): Likewise.
6370         (vrshr_n_s32): Likewise.
6371         (vrshr_n_s64): Likewise.
6372         (vrshr_n_u8): Likewise.
6373         (vrshr_n_u16): Likewise.
6374         (vrshr_n_u32): Likewise.
6375         (vrshr_n_u64): Likewise.
6376         (vrshrq_n_s8): Likewise.
6377         (vrshrq_n_s16): Likewise.
6378         (vrshrq_n_s32): Likewise.
6379         (vrshrq_n_s64): Likewise.
6380         (vrshrq_n_u8): Likewise.
6381         (vrshrq_n_u16): Likewise.
6382         (vrshrq_n_u32): Likewise.
6383         (vrshrq_n_u64): Likewise.
6384         (vshrn_n_s16): Likewise.
6385         (vshrn_n_s32): Likewise.
6386         (vshrn_n_s64): Likewise.
6387         (vshrn_n_u16): Likewise.
6388         (vshrn_n_u32): Likewise.
6389         (vshrn_n_u64): Likewise.
6390         (vrshrn_n_s16): Likewise.
6391         (vrshrn_n_s32): Likewise.
6392         (vrshrn_n_s64): Likewise.
6393         (vrshrn_n_u16): Likewise.
6394         (vrshrn_n_u32): Likewise.
6395         (vrshrn_n_u64): Likewise.
6396         (vqshrn_n_s16): Likewise.
6397         (vqshrn_n_s32): Likewise.
6398         (vqshrn_n_s64): Likewise.
6399         (vqshrn_n_u16): Likewise.
6400         (vqshrn_n_u32): Likewise.
6401         (vqshrn_n_u64): Likewise.
6402         (vqrshrn_n_s16): Likewise.
6403         (vqrshrn_n_s32): Likewise.
6404         (vqrshrn_n_s64): Likewise.
6405         (vqrshrn_n_u16): Likewise.
6406         (vqrshrn_n_u32): Likewise.
6407         (vqrshrn_n_u64): Likewise.
6408         (vqshrun_n_s16): Likewise.
6409         (vqshrun_n_s32): Likewise.
6410         (vqshrun_n_s64): Likewise.
6411         (vqrshrun_n_s16): Likewise.
6412         (vqrshrun_n_s32): Likewise.
6413         (vqrshrun_n_s64): Likewise.
6414         (vshl_n_s8): Likewise.
6415         (vshl_n_s16): Likewise.
6416         (vshl_n_s32): Likewise.
6417         (vshl_n_s64): Likewise.
6418         (vshl_n_u8): Likewise.
6419         (vshl_n_u16): Likewise.
6420         (vshl_n_u32): Likewise.
6421         (vshl_n_u64): Likewise.
6422         (vshlq_n_s8): Likewise.
6423         (vshlq_n_s16): Likewise.
6424         (vshlq_n_s32): Likewise.
6425         (vshlq_n_s64): Likewise.
6426         (vshlq_n_u8): Likewise.
6427         (vshlq_n_u16): Likewise.
6428         (vshlq_n_u32): Likewise.
6429         (vshlq_n_u64): Likewise.
6430         (vqshl_n_s8): Likewise.
6431         (vqshl_n_s16): Likewise.
6432         (vqshl_n_s32): Likewise.
6433         (vqshl_n_s64): Likewise.
6434         (vqshl_n_u8): Likewise.
6435         (vqshl_n_u16): Likewise.
6436         (vqshl_n_u32): Likewise.
6437         (vqshl_n_u64): Likewise.
6438         (vqshlq_n_s8): Likewise.
6439         (vqshlq_n_s16): Likewise.
6440         (vqshlq_n_s32): Likewise.
6441         (vqshlq_n_s64): Likewise.
6442         (vqshlq_n_u8): Likewise.
6443         (vqshlq_n_u16): Likewise.
6444         (vqshlq_n_u32): Likewise.
6445         (vqshlq_n_u64): Likewise.
6446         (vqshlu_n_s8): Likewise.
6447         (vqshlu_n_s16): Likewise.
6448         (vqshlu_n_s32): Likewise.
6449         (vqshlu_n_s64): Likewise.
6450         (vqshluq_n_s8): Likewise.
6451         (vqshluq_n_s16): Likewise.
6452         (vqshluq_n_s32): Likewise.
6453         (vqshluq_n_s64): Likewise.
6454         (vshll_n_s8): Likewise.
6455         (vshll_n_s16): Likewise.
6456         (vshll_n_s32): Likewise.
6457         (vshll_n_u8): Likewise.
6458         (vshll_n_u16): Likewise.
6459         (vshll_n_u32): Likewise.
6460         (vsra_n_s8): Likewise.
6461         (vsra_n_s16): Likewise.
6462         (vsra_n_s32): Likewise.
6463         (vsra_n_s64): Likewise.
6464         (vsra_n_u8): Likewise.
6465         (vsra_n_u16): Likewise.
6466         (vsra_n_u32): Likewise.
6467         (vsra_n_u64): Likewise.
6468         (vsraq_n_s8): Likewise.
6469         (vsraq_n_s16): Likewise.
6470         (vsraq_n_s32): Likewise.
6471         (vsraq_n_s64): Likewise.
6472         (vsraq_n_u8): Likewise.
6473         (vsraq_n_u16): Likewise.
6474         (vsraq_n_u32): Likewise.
6475         (vsraq_n_u64): Likewise.
6476         (vrsra_n_s8): Likewise.
6477         (vrsra_n_s16): Likewise.
6478         (vrsra_n_s32): Likewise.
6479         (vrsra_n_s64): Likewise.
6480         (vrsra_n_u8): Likewise.
6481         (vrsra_n_u16): Likewise.
6482         (vrsra_n_u32): Likewise.
6483         (vrsra_n_u64): Likewise.
6484         (vrsraq_n_s8): Likewise.
6485         (vrsraq_n_s16): Likewise.
6486         (vrsraq_n_s32): Likewise.
6487         (vrsraq_n_s64): Likewise.
6488         (vrsraq_n_u8): Likewise.
6489         (vrsraq_n_u16): Likewise.
6490         (vrsraq_n_u32): Likewise.
6491         (vrsraq_n_u64): Likewise.
6492         (vabs_s8): Likewise.
6493         (vabs_s16): Likewise.
6494         (vabs_s32): Likewise.
6495         (vabs_f32): Likewise.
6496         (vabsq_s8): Likewise.
6497         (vabsq_s16): Likewise.
6498         (vabsq_s32): Likewise.
6499         (vabsq_f32): Likewise.
6500         (vqabs_s8): Likewise.
6501         (vqabs_s16): Likewise.
6502         (vqabs_s32): Likewise.
6503         (vqabsq_s8): Likewise.
6504         (vqabsq_s16): Likewise.
6505         (vqabsq_s32): Likewise.
6506         (vneg_s8): Likewise.
6507         (vneg_s16): Likewise.
6508         (vneg_s32): Likewise.
6509         (vneg_f32): Likewise.
6510         (vnegq_s8): Likewise.
6511         (vnegq_s16): Likewise.
6512         (vnegq_s32): Likewise.
6513         (vnegq_f32): Likewise.
6514         (vqneg_s8): Likewise.
6515         (vqneg_s16): Likewise.
6516         (vqneg_s32): Likewise.
6517         (vqnegq_s8): Likewise.
6518         (vqnegq_s16): Likewise.
6519         (vqnegq_s32): Likewise.
6520         (vmvn_s8): Likewise.
6521         (vmvn_s16): Likewise.
6522         (vmvn_s32): Likewise.
6523         (vmvn_u8): Likewise.
6524         (vmvn_u16): Likewise.
6525         (vmvn_u32): Likewise.
6526         (vmvn_p8): Likewise.
6527         (vmvnq_s8): Likewise.
6528         (vmvnq_s16): Likewise.
6529         (vmvnq_s32): Likewise.
6530         (vmvnq_u8): Likewise.
6531         (vmvnq_u16): Likewise.
6532         (vmvnq_u32): Likewise.
6533         (vmvnq_p8): Likewise.
6534         (vcls_s8): Likewise.
6535         (vcls_s16): Likewise.
6536         (vcls_s32): Likewise.
6537         (vclsq_s8): Likewise.
6538         (vclsq_s16): Likewise.
6539         (vclsq_s32): Likewise.
6540         (vclz_s8): Likewise.
6541         (vclz_s16): Likewise.
6542         (vclz_s32): Likewise.
6543         (vclz_u8): Likewise.
6544         (vclz_u16): Likewise.
6545         (vclz_u32): Likewise.
6546         (vclzq_s8): Likewise.
6547         (vclzq_s16): Likewise.
6548         (vclzq_s32): Likewise.
6549         (vclzq_u8): Likewise.
6550         (vclzq_u16): Likewise.
6551         (vclzq_u32): Likewise.
6552         (vcnt_s8): Likewise.
6553         (vcnt_u8): Likewise.
6554         (vcnt_p8): Likewise.
6555         (vcntq_s8): Likewise.
6556         (vcntq_u8): Likewise.
6557         (vcntq_p8): Likewise.
6558         (vrecpe_f32): Likewise.
6559         (vrecpe_u32): Likewise.
6560         (vrecpeq_f32): Likewise.
6561         (vrecpeq_u32): Likewise.
6562         (vrsqrte_f32): Likewise.
6563         (vrsqrte_u32): Likewise.
6564         (vrsqrteq_f32): Likewise.
6565         (vrsqrteq_u32): Likewise.
6566         (vget_lane_s8): Likewise.
6567         (vget_lane_s16): Likewise.
6568         (vget_lane_s32): Likewise.
6569         (vget_lane_f32): Likewise.
6570         (vget_lane_u8): Likewise.
6571         (vget_lane_u16): Likewise.
6572         (vget_lane_u32): Likewise.
6573         (vget_lane_p8): Likewise.
6574         (vget_lane_p16): Likewise.
6575         (vget_lane_s64): Likewise.
6576         (vget_lane_u64): Likewise.
6577         (vgetq_lane_s8): Likewise.
6578         (vgetq_lane_s16): Likewise.
6579         (vgetq_lane_s32): Likewise.
6580         (vgetq_lane_f32): Likewise.
6581         (vgetq_lane_u8): Likewise.
6582         (vgetq_lane_u16): Likewise.
6583         (vgetq_lane_u32): Likewise.
6584         (vgetq_lane_p8): Likewise.
6585         (vgetq_lane_p16): Likewise.
6586         (vgetq_lane_s64): Likewise.
6587         (vgetq_lane_u64): Likewise.
6588         (vcvt_s32_f32): Likewise.
6589         (vcvt_f32_s32): Likewise.
6590         (vcvt_f32_u32): Likewise.
6591         (vcvt_u32_f32): Likewise.
6592         (vcvtq_s32_f32): Likewise.
6593         (vcvtq_f32_s32): Likewise.
6594         (vcvtq_f32_u32): Likewise.
6595         (vcvtq_u32_f32): Likewise.
6596         (vcvt_n_s32_f32): Likewise.
6597         (vcvt_n_f32_s32): Likewise.
6598         (vcvt_n_f32_u32): Likewise.
6599         (vcvt_n_u32_f32): Likewise.
6600         (vcvtq_n_s32_f32): Likewise.
6601         (vcvtq_n_f32_s32): Likewise.
6602         (vcvtq_n_f32_u32): Likewise.
6603         (vcvtq_n_u32_f32): Likewise.
6604         (vmovn_s16): Likewise.
6605         (vmovn_s32): Likewise.
6606         (vmovn_s64): Likewise.
6607         (vmovn_u16): Likewise.
6608         (vmovn_u32): Likewise.
6609         (vmovn_u64): Likewise.
6610         (vqmovn_s16): Likewise.
6611         (vqmovn_s32): Likewise.
6612         (vqmovn_s64): Likewise.
6613         (vqmovn_u16): Likewise.
6614         (vqmovn_u32): Likewise.
6615         (vqmovn_u64): Likewise.
6616         (vqmovun_s16): Likewise.
6617         (vqmovun_s32): Likewise.
6618         (vqmovun_s64): Likewise.
6619         (vmovl_s8): Likewise.
6620         (vmovl_s16): Likewise.
6621         (vmovl_s32): Likewise.
6622         (vmovl_u8): Likewise.
6623         (vmovl_u16): Likewise.
6624         (vmovl_u32): Likewise.
6625         (vmul_lane_s16): Likewise.
6626         (vmul_lane_s32): Likewise.
6627         (vmul_lane_f32): Likewise.
6628         (vmul_lane_u16): Likewise.
6629         (vmul_lane_u32): Likewise.
6630         (vmulq_lane_s16): Likewise.
6631         (vmulq_lane_s32): Likewise.
6632         (vmulq_lane_f32): Likewise.
6633         (vmulq_lane_u16): Likewise.
6634         (vmulq_lane_u32): Likewise.
6635         (vmla_lane_s16): Likewise.
6636         (vmla_lane_s32): Likewise.
6637         (vmla_lane_f32): Likewise.
6638         (vmla_lane_u16): Likewise.
6639         (vmla_lane_u32): Likewise.
6640         (vmlaq_lane_s16): Likewise.
6641         (vmlaq_lane_s32): Likewise.
6642         (vmlaq_lane_f32): Likewise.
6643         (vmlaq_lane_u16): Likewise.
6644         (vmlaq_lane_u32): Likewise.
6645         (vmlal_lane_s16): Likewise.
6646         (vmlal_lane_s32): Likewise.
6647         (vmlal_lane_u16): Likewise.
6648         (vmlal_lane_u32): Likewise.
6649         (vqdmlal_lane_s16): Likewise.
6650         (vqdmlal_lane_s32): Likewise.
6651         (vmls_lane_s16): Likewise.
6652         (vmls_lane_s32): Likewise.
6653         (vmls_lane_f32): Likewise.
6654         (vmls_lane_u16): Likewise.
6655         (vmls_lane_u32): Likewise.
6656         (vmlsq_lane_s16): Likewise.
6657         (vmlsq_lane_s32): Likewise.
6658         (vmlsq_lane_f32): Likewise.
6659         (vmlsq_lane_u16): Likewise.
6660         (vmlsq_lane_u32): Likewise.
6661         (vmlsl_lane_s16): Likewise.
6662         (vmlsl_lane_s32): Likewise.
6663         (vmlsl_lane_u16): Likewise.
6664         (vmlsl_lane_u32): Likewise.
6665         (vqdmlsl_lane_s16): Likewise.
6666         (vqdmlsl_lane_s32): Likewise.
6667         (vmull_lane_s16): Likewise.
6668         (vmull_lane_s32): Likewise.
6669         (vmull_lane_u16): Likewise.
6670         (vmull_lane_u32): Likewise.
6671         (vqdmull_lane_s16): Likewise.
6672         (vqdmull_lane_s32): Likewise.
6673         (vqdmulhq_lane_s16): Likewise.
6674         (vqdmulhq_lane_s32): Likewise.
6675         (vqdmulh_lane_s16): Likewise.
6676         (vqdmulh_lane_s32): Likewise.
6677         (vqrdmulhq_lane_s16): Likewise.
6678         (vqrdmulhq_lane_s32): Likewise.
6679         (vqrdmulh_lane_s16): Likewise.
6680         (vqrdmulh_lane_s32): Likewise.
6681         (vmul_n_s16): Likewise.
6682         (vmul_n_s32): Likewise.
6683         (vmul_n_f32): Likewise.
6684         (vmul_n_u16): Likewise.
6685         (vmul_n_u32): Likewise.
6686         (vmulq_n_s16): Likewise.
6687         (vmulq_n_s32): Likewise.
6688         (vmulq_n_f32): Likewise.
6689         (vmulq_n_u16): Likewise.
6690         (vmulq_n_u32): Likewise.
6691         (vmull_n_s16): Likewise.
6692         (vmull_n_s32): Likewise.
6693         (vmull_n_u16): Likewise.
6694         (vmull_n_u32): Likewise.
6695         (vqdmull_n_s16): Likewise.
6696         (vqdmull_n_s32): Likewise.
6697         (vqdmulhq_n_s16): Likewise.
6698         (vqdmulhq_n_s32): Likewise.
6699         (vqdmulh_n_s16): Likewise.
6700         (vqdmulh_n_s32): Likewise.
6701         (vqrdmulhq_n_s16): Likewise.
6702         (vqrdmulhq_n_s32): Likewise.
6703         (vqrdmulh_n_s16): Likewise.
6704         (vqrdmulh_n_s32): Likewise.
6705         (vmla_n_s16): Likewise.
6706         (vmla_n_s32): Likewise.
6707         (vmla_n_f32): Likewise.
6708         (vmla_n_u16): Likewise.
6709         (vmla_n_u32): Likewise.
6710         (vmlaq_n_s16): Likewise.
6711         (vmlaq_n_s32): Likewise.
6712         (vmlaq_n_f32): Likewise.
6713         (vmlaq_n_u16): Likewise.
6714         (vmlaq_n_u32): Likewise.
6715         (vmlal_n_s16): Likewise.
6716         (vmlal_n_s32): Likewise.
6717         (vmlal_n_u16): Likewise.
6718         (vmlal_n_u32): Likewise.
6719         (vqdmlal_n_s16): Likewise.
6720         (vqdmlal_n_s32): Likewise.
6721         (vmls_n_s16): Likewise.
6722         (vmls_n_s32): Likewise.
6723         (vmls_n_f32): Likewise.
6724         (vmls_n_u16): Likewise.
6725         (vmls_n_u32): Likewise.
6726         (vmlsq_n_s16): Likewise.
6727         (vmlsq_n_s32): Likewise.
6728         (vmlsq_n_f32): Likewise.
6729         (vmlsq_n_u16): Likewise.
6730         (vmlsq_n_u32): Likewise.
6731         (vmlsl_n_s16): Likewise.
6732         (vmlsl_n_s32): Likewise.
6733         (vmlsl_n_u16): Likewise.
6734         (vmlsl_n_u32): Likewise.
6735         (vqdmlsl_n_s16): Likewise.
6736         (vqdmlsl_n_s32): Likewise.
6737
6738 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6739
6740         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
6741         Add cost of alu.arith in simple SImode case.
6742
6743 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
6744
6745         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
6746         registers.
6747
6748 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
6749
6750         * opts.c (finish_options): Disable aggressive opts for sanitizer.
6751         (common_handle_option): Move code to finish_options.
6752
6753 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
6754
6755         PR sanitizer/63802
6756         * stor-layout.c (min_align_of_type): Respect user alignment
6757         more.
6758
6759 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6760
6761         * passes.c (remove_cgraph_node_from_order): New.
6762         (do_per_function_toporder): Register cgraph removal
6763         hook.
6764
6765 2014-11-17  Terry Guo  <terry.guo@arm.com>
6766
6767         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
6768         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
6769         (generic_vfp): Likewise.
6770         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
6771
6772 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
6773
6774         PR rtl-optimization/63906
6775         * lra-remat.c (operand_to_remat): Check SP and
6776         frame_pointer_required.
6777
6778 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
6779
6780         * doc/invoke.texi (floop-unroll-and-jam): Document
6781         (loop-unroll-jam-size): Likewise.
6782         (loop-unroll-jam-depth): Likewise.
6783         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
6784         (getScheduleForBandList): Replaced unsafe union_map reuse.
6785
6786 2014-11-17  Andrew Pinski  <apinski@cavium.com>
6787
6788         * config/aarch64/thunderx.md: Remove copyright which should not
6789         have been there.
6790
6791 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
6792             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6793
6794         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
6795         Altivec style vector loads that ignore the bottom 3 bits of the
6796         address.
6797         (rs6000_debug_addr_mask): New function to print the addr_mask
6798         values if debugging.
6799         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6800         out addr_mask.
6801         (rs6000_setup_reg_addr_masks): Add support for Altivec style
6802         vector loads that ignore the bottom 3 bits of the address.  Allow
6803         pre-increment and pre-decrement on floating point, even if the
6804         -mupper-regs-{sf,df} options were used.
6805         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6806         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
6807         placement for direct move support.
6808         (rs6000_option_override_internal): Add checks for -mupper-regs-df
6809         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6810         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6811         depending on the underlying cpu.
6812         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6813         (rs6000_secondary_reload_toc_costs): Helper function to identify
6814         costs of a TOC load for secondary reload support.
6815         (rs6000_secondary_reload_memory): Helper function for secondary
6816         reload, to determine if a particular memory operation is directly
6817         handled by the hardware, or if it needs support from secondary
6818         reload to create a valid address.
6819         (rs6000_secondary_reload): Rework code, to be clearer.  If the
6820         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6821         reload scalar values, since the FPR registers have D-form
6822         addressing. Move most of the code handling memory to the function
6823         rs6000_secondary_reload_memory, and use the reg_addr structure to
6824         determine what type of address modes are supported.  Print more
6825         debug information if -mdebug=addr.
6826         (rs6000_secondary_reload_inner): Rework entire function to be more
6827         general.  Use the reg_addr bits to determine what type of
6828         addressing is supported.
6829         (rs6000_preferred_reload_class): Rework.  Move constant handling
6830         into a single place.  Prefer using FLOAT_REGS for scalar floating
6831         point.
6832         (rs6000_secondary_reload_class): Use a FPR register to move a
6833         value from an Altivec register to a GPR, and vice versa.  Move VSX
6834         handling above traditional floating point.
6835
6836         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6837         Delete some spaces in the constraints.
6838         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6839         allow using FPR registers to load/store an Altivec register for
6840         scalar floating point types.
6841         (SF->SF move peephole2): Likewise.
6842         (DFmode splitter): Add a define_split to move floating point
6843         constants to the constant pool before register allocation.
6844         Normally constants are put into the pool immediately, but
6845         -ffast-math delays putting them into the constant pool for the
6846         reciprocal approximation support.
6847         (SFmode splitter): Likewise.
6848
6849         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6850         (-mupper-regs-sf): Likewise.
6851
6852         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6853         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
6854         -mupper-regs-sf.
6855         (-mupper-regs): New combination option that sets -mupper-regs-sf
6856         and -mupper-regs-df by default if the cpu supports the instructions.
6857
6858         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6859         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6860
6861         * config/rs6000/predicates.md (memory_fp_constant): New predicate
6862         to return true if the operand is a floating point constant that
6863         must be put into the constant pool, before register allocation
6864         occurs.
6865
6866         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6867         -mupper-regs-df by default.
6868         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6869         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6870         various -mcpu=... options.
6871         (power7 cpu): Enable -mupper-regs-df by default.
6872
6873         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6874         -mupper-regs.
6875
6876 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6877
6878         * ira-conflicts.c (build_conflict_bit_table): Add the current
6879         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6880
6881 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6882
6883         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6884         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6885         (devirtualization_time_bonus): Use it.
6886         (ipcp_discover_new_direct_edges): Likewise.
6887         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6888         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6889
6890 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6891
6892         * tree.c (free_lang_data_in_decl): Set
6893         DECL_FUNCTION_SPECIFIC_OPTIMIZATION to optimization_default_node.
6894
6895 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6896
6897         * cgraphunit.c (analyze_functions): Use opt_for_fn.
6898         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6899
6900 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6901
6902         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6903         (cgraph_node::cannot_return_p): Likewise.
6904         (cgraph_edge::cannot_lead_to_return_p): Likewise.
6905         (cgraph_edge::maybe_hot_p): Likewise.
6906
6907 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6908
6909         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6910         (optimize_function_for_size_p): Likewise.
6911         (probably_never_executed): Likewise; replace cfun by fun.
6912
6913 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6914
6915         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6916         variant reading from memory and assembling to ld1.
6917
6918         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6919         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6920         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6921         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6922         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6923         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6924         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6925
6926 2014-11-17  Jason Merrill  <jason@redhat.com>
6927
6928         * tree-inline.c (copy_fn): New.
6929         * tree-inline.h: Declare it.
6930
6931 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6932
6933         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6934         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6935         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6936         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6937         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6938         * config/aarch64/iterators.md (VD1): Remove.
6939
6940 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6941
6942         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6943         AARCH64_FL_CRYPTO from feature flags.
6944         (cortex-a57): Likewise.
6945         (cortex-a57.cortex-a53): Likewise.
6946
6947 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6948
6949         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6950         DECL_FUNCTION_SPECIFIC_TARGET.
6951         * i386.c (ix86_set_current_function): Handle explicit default options.
6952
6953 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6954
6955         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6956         instead of BNDmode.
6957         (expand_builtin_mempcpy_with_bounds): Likewise.
6958         (expand_builtin_memset_with_bounds): Likewise.
6959
6960 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6961
6962         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6963         ipa-ref.h, plugin-api.h.
6964         (get_string_length): Handle calls with bounds.
6965         (adjust_last_stmt): Likewise.
6966         (handle_builtin_strchr): Likewise.
6967         (handle_builtin_strcpy): Likewise.
6968         (handle_builtin_memcpy): Likewise.
6969         (handle_builtin_strcat): Likewise.
6970
6971 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6972
6973         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6974         (chkp_get_nochk_fndecl): New.
6975         (chkp_optimize_string_function_calls): New.
6976         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6977         * tree-cfg.h (insert_cond_bb): New.
6978         * tree-cfg.c (insert_cond_bb): New.
6979
6980 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6981
6982         * tree-core.h (built_in_class): Add builtin codes to be used
6983         by Pointer Bounds Checker for instrumented builtin functions.
6984         * tree-streamer-in.c: Include ipa-chkp.h.
6985         (streamer_get_builtin_tree): Created instrumented decl if
6986         required.
6987         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6988         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6989         function decls.
6990         (chkp_maybe_clone_builtin_fndecl): New.
6991         (chkp_maybe_create_clone): Support builtin function decls.
6992         (chkp_versioning): Clone builtin functions.
6993         * tree-chkp.c (chkp_instrument_normal_builtin): New.
6994         (chkp_add_bounds_to_call_stmt): Support builtin functions.
6995         (chkp_replace_function_pointer): Likewise.
6996         * builtins.c (expand_builtin_memcpy_args): New.
6997         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6998         (expand_builtin_memcpy_with_bounds): New.
6999         (expand_builtin_mempcpy_with_bounds): New.
7000         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
7001         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
7002         (expand_builtin_memset_with_bounds): New.
7003         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
7004         (expand_builtin_with_bounds): New.
7005         * builtins.h (expand_builtin_with_bounds): New.
7006         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
7007
7008 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
7009
7010         * gimple.h (gimple_set_visited, gimple_visited_p)
7011         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
7012         comments to these accessors.
7013
7014 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
7015
7016         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
7017         Set avr_log_details to "all".
7018
7019 2014-11-17  Richard Biener  <rguenther@suse.de>
7020
7021         PR middle-end/63898
7022         * match.pd: Guard X / CST -> X * CST' transform against
7023         zero CST.
7024
7025 2014-11-17  Terry Guo  <terry.guo@arm.com>
7026
7027         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
7028         format.
7029
7030 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7031
7032         * ifcvt.c (HAVE_cbranchcc4): Define.
7033         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
7034         Use HAVE_cbranchcc4.
7035
7036 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7037
7038         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
7039         aarch64_convert_mode, aarch64_gen_ccmp_first,
7040         aarch64_gen_ccmp_next): New functions.
7041         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
7042
7043 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7044
7045         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
7046         * aarch64.c (aarch64_nzcv_codes): New data.
7047         (aarch64_ccmp_mode_to_code): New.
7048         (aarch64_print_operand): Output nzcv.
7049         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
7050         New patterns.
7051         (cstore<mode>4): Handle ccmp_cc_register.
7052         * config/aarch64/predicates.md (const0_operand): New.
7053
7054 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7055
7056         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
7057         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
7058         extacted from aarch64_get_condition_code.
7059         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
7060         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
7061
7062 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7063
7064         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
7065         aarch64_ccmp_operand): New constraints.
7066
7067 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7068
7069         * Makefile.in: Add ccmp.o.
7070         * ccmp.c: New file.
7071         * ccmp.h: New file.
7072         * expr.c: include "ccmp.h"
7073         (expand_cond_expr_using_cmove): Handle VOIDmode.
7074         (expand_expr_real_1): Try to expand ccmp.
7075
7076 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7077
7078         * cfgexpand.c (expand_gimple_cond): Check ccmp.
7079         * expmed.c (emit_cstore): Make it global.
7080         * expmed.h: #include "insn-codes.h"
7081         (emit_cstore): New prototype.
7082         * expr.c (expand_operands): Make it global.
7083         * expr.h (expand_operands): New prototype.
7084         * optabs.c (get_rtx_code): Make it global.
7085         * optabs.h (get_rtx_code): New prototype.
7086
7087 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7088
7089         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
7090         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
7091         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
7092
7093 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
7094
7095         PR middle-end/63790
7096         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
7097         Always combine comparisons or conversions from booleans.
7098
7099 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
7100
7101         * ipa-polymorphic-call.c
7102         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
7103         (ipa_polymorphic_call_context::meet_speculation_with): New function.
7104         (ipa_polymorphic_call_context::combine_with): Handle types in
7105         construction better.
7106         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
7107         speculation.
7108         (ipa_polymorphic_call_context::meet_with): New function.
7109         * cgraph.h (class ipa_polymorphic_call_context): Add
7110         meet_width, meet_speculation_with; constify speculation_consistent_p.
7111         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine
7112         with incomming context.
7113         (propagate_context_accross_jump_function): Likewise; be more cureful.
7114         about set_contains_variable.
7115         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
7116         (find_more_scalar_values_for_callers_subset): Fix.
7117         (find_more_contexts_for_caller_subset): Perform meet operation.
7118
7119 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
7120
7121         * passes.c (execute_one_pass): Do not apply all transforms prior
7122         every simple IPA pass.
7123         * cgraphunit.c: Do not include fibheap.h
7124         (expand_thunk): Use get_untransformed_body.
7125         (cgraph_node::expand): Likewise.
7126         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
7127         * cgraph.c (release_function_body): Do not push cfun when CFG
7128         is not there.
7129         (cgraph_node::get_untransformed_body): Break out from ...
7130         (cgraph_node::get_body): ... here; add code to apply all transforms.
7131         * cgraph.h (cgraph_node): Add get_untransformed_body.
7132         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
7133         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
7134         * tree-inline.c (expand_call_inline): LIkewise.
7135         * i386.c (ix86_reset_to_default_globals): Break out from ...
7136         (ix86_set_current_function): ... here;
7137         (ix86_reset_previous_fndecl): Use it.
7138         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
7139
7140 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
7141
7142         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
7143         * doc/tm.texi: Regenerate.
7144
7145 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
7146
7147         * config/sh/sh.c: Do not include algorithm.
7148         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
7149         to swap values.
7150         (sh_emit_compare_and_branch): Ditto.
7151         (sh_emit_compare_and_set): Ditto.
7152         * config/sh/sh.md (replacement peephole2): Ditto.
7153         (cstore4_media): Ditto.
7154         (*fmasf4): Ditto.
7155
7156 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
7157
7158         * lra-remat.c (cand_transf_func): Process regno for
7159         rematerialization too.
7160         * lra.c (lra): Switch on rematerialization pass.
7161
7162 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
7163
7164         * lra.c (lra): Switch off rematerialization pass.
7165
7166 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
7167
7168         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
7169         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
7170         instead of builtins.
7171         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
7172         typedefs.
7173         (_mm_sqrt_sd): Fix comment.
7174         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
7175         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
7176         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
7177         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
7178         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
7179         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
7180         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
7181         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
7182         Use vector extensions instead of builtins.
7183         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
7184         _mm_mullo_epi32): Likewise.
7185         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
7186         New typedefs.
7187         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
7188         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
7189         Use vector extensions instead of builtins.
7190         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
7191         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
7192         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
7193         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
7194         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
7195         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
7196         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
7197         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
7198         New typedefs.
7199         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
7200         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
7201         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
7202         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
7203         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
7204         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
7205         _mm512_div_ps): Use vector extensions instead of builtins.
7206         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
7207         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
7208         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
7209         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
7210         Likewise.
7211
7212 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
7213
7214         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
7215         * lto-streamer.h (cl_optimization_stream_out,
7216         cl_optimization_stream_in): Declare.
7217         * optc-save-gen.awk: Generate cl_optimization LTO streaming
7218         and hashing routines.
7219         * opth-gen.awk: Add prototype of cl_optimization_hash.
7220         * tree-streamer-in.c (unpack_ts_optimization): Remove.
7221         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
7222         * tree-streamer-out.c (pack_ts_optimization): Remove.
7223         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
7224
7225 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
7226
7227         * common.opt (flag_loop_unroll_and_jam): New flag.
7228         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
7229         jam flag.
7230         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
7231         * graphite-poly.h (struct poly_bb:map_sepclass): New field
7232         * graphite-poly.c (new_poly_bb): Initialization for new field.
7233         (apply_poly_transforms): Support for unroll and jam flag.
7234         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
7235         separation class.
7236         (generate_luj_sepclass_opt): Build the separation class option.
7237         (generate_luj_options): Set unroll and jam options.
7238         (set_options): Support for unroll and jam options.
7239         (scop_to_isl_ast): Likewise
7240         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
7241         computing the separating class map.
7242         (optimize_isl): Support for the separating class map.
7243         (apply_schedule_map_to_scop): Likewise.
7244         (getScheduleMap): Likewise.
7245         (getScheduleForBand): Likewise.
7246         (getScheduleForBandList): Likewise.
7247         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
7248         * toplev.c (process_options) Likewise.
7249
7250 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
7251
7252         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
7253         from...
7254         (replace_loop_annotate): ...here.  Call it on the header and on the
7255         latch block, if any.  Restore proper behavior of final cleanup.
7256
7257 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
7258
7259         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
7260         for max-completely-peeled-insns limit.
7261
7262 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
7263
7264         * ipa-prop.h (ipa_known_type_data): Remove.
7265         (ipa_binfo_from_known_type_jfunc): Remove.
7266
7267 2014-11-14  Andrew Pinski  <apinski@cavium.com>
7268
7269         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
7270         over to thunderx.
7271         * config/aarch64/aarch64.md: Include thunderx.md.
7272         (generic_sched): Set to no for thunderx.
7273         * config/aarch64/thunderx.md: New file.
7274
7275 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7276
7277         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
7278         tests for 0.0.
7279
7280         * config/rs6000/vector.md (VEC_R): Move secondary reload support
7281         insns to rs6000.md from vector.md.
7282         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
7283         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
7284         (vec_reload_and_plus_<mptrsize>): Likewise.
7285
7286         * config/rs6000/rs6000.md (Fa): New mode attribute to give
7287         constraint for the Altivec registers for a type.
7288         (RELOAD): New mode iterator for all of the types that have
7289         secondary reload address support to load up a base register.
7290         (extendsfdf2_fpr): Use correct constraint.
7291         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
7292         instruction.
7293         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
7294         Generate the non-VSX instruction if all registers were FPRs.  Do
7295         not use the patterns in vsx.md for scalar operations.
7296         (floatsi<mode>2_lfiwax_mem): Likewise.
7297         (floatunssi<mode>2_lfiwzx): Likewise.
7298         (floatunssi<mode>2_lfiwzx_mem): Likewise.
7299         (fix_trunc<mode>di2_fctidz): Likewise.
7300         (fixuns_trunc<mode>di2_fctiduz): Likewise.
7301         (fctiwz_<mode>): Likewise.
7302         (fctiwuz_<mode>): Likewise.
7303         (friz): Likewise.
7304         (floatdidf2_fpr): Likewise.
7305         (floatdidf2_mem): Likewise.
7306         (floatunsdidf2): Likewise.
7307         (floatunsdidf2_fcfidu): Likewise.
7308         (floatunsdidf2_mem): Likewise.
7309         (floatdisf2_fcfids): Likewise.
7310         (floatdisf2_mem): Likewise.
7311         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
7312         it more obvious that the code is for pre-ISA 2.06 machines.
7313         (floatdisf2_internal2): Likewise.
7314         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
7315         Generate the non-VSX instruction if all registers were FPRs.  Do
7316         not use the patterns in vsx.md for scalar operations.
7317         (floatunsdisf2_mem): Likewise.
7318         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
7319         handlers here from vector.md, and expand the types we generate
7320         reload handlers for.
7321         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
7322         (vec_reload_and_plus_<mptrsize>): Likewise.
7323
7324         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
7325         vector forms of the instructions.  Move VSX scalar forms to
7326         rs6000.md, and add support for -mupper-regs-sf.
7327         (vsx_floatuns<VSi><mode>2): Likewise.
7328         (vsx_fix_trunc<mode><VSi>2): Likewise.
7329         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
7330         (vsx_float_fix_<mode>2): Delete DF version, rename to
7331         vsx_float_fix_v2df2.
7332         (vsx_float_fix_v2df2): Likewise.
7333
7334 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7335
7336         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
7337         (ipa_pass_through_data): Removed field type_preserved.
7338         (ipa_ancestor_jf_data): removed fields type and type_preserved.
7339         (ipa_jump_func): Removed field known_type.
7340         (ipa_get_jf_known_type_offset): Removed.
7341         (ipa_get_jf_known_type_base_type): Likewise.
7342         (ipa_get_jf_known_type_component_type): Likewise.
7343         (ipa_get_jf_ancestor_type): Likewise.
7344         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
7345         (ipa_get_jf_pass_through_result): Likewise.
7346         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
7347         (values_equal_for_ipcp_p): Removed BINFO handling.
7348         (ipa_get_indirect_edge_target_1): Updated comment.
7349         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
7350         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
7351         (ipa_set_jf_known_type): Removed.
7352         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
7353         all callers.
7354         (ipa_set_jf_arith_pass_through): Likewise.
7355         (ipa_set_ancestor_jf): Likewise.
7356         (ipa_binfo_from_known_type_jfunc): Removed.
7357         (prop_type_change_info): Removed fields known_current_type and
7358         multiple_types_encountered.
7359         (extr_type_from_vtbl_ptr_store): Removed.
7360         (check_stmt_for_type_change): Do not attempt to identify changed type.
7361         (detect_type_change_from_memory_writes): Do not set the removed fields,
7362         always set jfunc to unknown.
7363         (compute_complex_assign_jump_func): Do not detect dynamic type change.
7364         (compute_complex_ancestor_jump_func): Likewise.
7365         (compute_known_type_jump_func): Removed.
7366         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
7367         change.  Do not comute known type jump functions.
7368         (combine_known_type_and_ancestor_jfs): Removed.
7369         (update_jump_functions_after_inlining): Removed handling of
7370         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
7371         (ipa_write_jump_function): Do not stream removed fields or known type
7372         jump functions.
7373         (ipa_read_jump_function): Likewise.
7374
7375 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
7376
7377         * lra-int.h (lra_create_live_ranges): Add parameter.
7378         * lra-lives.c (temp_bitmap): Move higher.
7379         (initiate_live_solver): Move temp_bitmap initialization into
7380         lra_live_ranges_init.
7381         (finish_live_solver): Move temp_bitmap clearing into
7382         live_ranges_finish.
7383         (process_bb_lives): Add parameter.  Use it to control live info
7384         update and dead insn elimination.  Pass it to mark_regno_live and
7385         mark_regno_dead.
7386         (lra_create_live_ranges): Add parameter.  Pass it to
7387         process_bb_lives.
7388         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
7389         initiate_live_solver and finish_live_solver.
7390         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
7391         Use temp_bitmap to update avail_cands.
7392         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
7393         check with lra_need_for_spill_p after live range pass.  Switch on
7394         rematerialization pass.
7395
7396 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7397
7398         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
7399         agg_preserved flag instead.
7400         (ipa_get_jf_ancestor_type_preserved): Likewise.
7401         (ipa_node_params): Rename known_vals to known_csts, update all users.
7402         New field known_contexts.
7403         (ipa_get_indirect_edge_target): Update prototype.
7404         (ipcp_poly_ctx_values_pool): Declare.
7405         (ipa_context_from_jfunc): Likewise.
7406         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
7407         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
7408         parameter newline of method dump.
7409         * ipa-cp.c (ctxlat): New field.
7410         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
7411         (ipcp_poly_ctx_values_pool):New variable.
7412         (ipa_get_poly_ctx_lat): New function.
7413         (print_ipcp_constant_value): New overloaded function for contexts.
7414         (print_all_lattices): Also print contexts.
7415         (ipa_topo_info): New field contexts;
7416         (set_all_contains_variable): Also set the flag in the context lattice.
7417         (initialize_node_lattices): Likewise for flag bottom.
7418         (ipa_get_jf_ancestor_result): Removed BINFO handling.
7419         (ipa_value_from_jfunc): Likewise.
7420         (ipa_context_from_jfunc): New function.
7421         (values_equal_for_ipcp_p): New overloaded function for contexts.
7422         (allocate_and_init_ipcp_value): Construct the value.
7423         (allocate_and_init_ipcp_value): New overloaded function for contexts.
7424         (propagate_scalar_accross_jump_function): Removed handling of
7425         KNOWN_TYPE jump functions.
7426         (propagate_context_accross_jump_function): New function.
7427         (propagate_constants_accross_call): Also propagate contexts.
7428         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
7429         (ipa_get_indirect_edge_target): Likewise.
7430         (devirtualization_time_bonus): Likewise.
7431         (gather_context_independent_values): Create and populate known_contexts
7432         vector rather than known_binfos.
7433         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
7434         (estimate_local_effects): Likewise.
7435         (add_all_node_vals_to_toposort): Also add contexts to teir topological
7436         sort.
7437         (ipcp_propagate_stage): Also propagate effects of contexts.
7438         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
7439         ipa_get_indirect_edge_target_1.
7440         (cgraph_edge_brings_value_p): New overloaded function for contexts.
7441         (create_specialized_node): Work on contexts rather than BINFOs.
7442         (find_more_contexts_for_caller_subset): New function.
7443         (known_contexts_useful_p): New function.
7444         (copy_useful_known_contexts): Likewise.
7445         (modify_known_vectors_with_val): Likewise.
7446         (ipcp_val_in_agg_replacements_p): Renamed to
7447         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
7448         non-aggregate.
7449         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
7450         (decide_about_value): Work on contexts rather than BINFOs.
7451         (decide_whether_version_node): Likewise.
7452         (ipcp_driver): Initialize the new alloc pool.
7453         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
7454         printing of edge contexts.
7455         (ipa_set_ancestor_jf): Replace assert with conditional setting of
7456         type_preserved to false.
7457         (update_jump_functions_after_inlining): Use access function instead of
7458         reading agg_preserved directly.  Store combined context in the ancestor
7459         case.
7460         (try_make_edge_direct_virtual_call): Work on contexts rather than
7461         BINFOs.
7462         (update_indirect_edges_after_inlining): Get context from
7463         ipa_context_from_jfunc.
7464         (ipa_free_node_params_substructures): Free also known_contexts.
7465         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
7466         (ipa_free_all_structures_after_iinln): Likewise.
7467         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
7468         contexts rather than BINFOs.
7469         (estimate_edge_devirt_benefit): Likewise.
7470         (estimate_edge_size_and_time): Likewise.
7471         (estimate_calls_size_and_time): Likewise.
7472         (estimate_node_size_and_time): Likewise.
7473         (estimate_ipcp_clone_size_and_time): Likewise.
7474         (do_estimate_edge_time): Likewise.
7475         (do_estimate_edge_size): Likewise.
7476         (do_estimate_edge_hints): Likewise.
7477         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
7478         parameter newline, ouput newline only when it is set.
7479         (ipa_polymorphic_call_context::equal_to): New method.
7480
7481 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7482
7483         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
7484         users converted to the same specialization as the using class/function
7485         or specialization on tree.
7486         (ipcp_value): Likewise.
7487         (ipcp_lattice): Likewise.
7488         (ipcp_agg_lattice): Now derived from tree specialization of
7489         ipcp_lattice.
7490         (values_topo): Moved to new class value_topo_info.
7491         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
7492         Updated all callers.
7493         (print_lattice): Turned into ipcp_lattice::print.  Updated all
7494         callers.
7495         (value_topo_info): New class template.
7496         (ipa_topo_info): New field constants.  New constructor.
7497         (build_toporder_info): Do not clear stack_top, only checkign assert
7498         it.
7499         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
7500         Updated all callers.
7501         (set_lattice_contains_variable): Turned into
7502         ipcp_lattice::set_contains_variable.  Updated all callers.
7503         (add_value_source): Turned into ipcp_value::add_source.  Updated all
7504         callers.
7505         (allocate_and_init_ipcp_value): New function.
7506         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
7507         parameter got default a value.  Updated all callers.
7508         (add_scalar_value_to_lattice): Removed, users converted to using
7509         ipcp_lattice::add_value with default value of the last parameter.
7510         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
7511         all callers.
7512         (propagate_effects): Made method of value_topo_info.
7513         (cgraph_edge_brings_value_p): Now a template function.
7514         (get_info_about_necessary_edges): Likewise.
7515         (gather_edges_for_value): Likewise.
7516         (perhaps_add_new_callers): Likewise.
7517         (decide_about_value): Likewise.
7518         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
7519
7520 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7521
7522         * doc/install.texi (--with-diagnostics-color=): Document.
7523
7524         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
7525         IFN_GOMP_SIMD_LANE without lhs as useless.
7526
7527         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
7528         (varying_state): Add true for can_free.
7529         (check_call): For builtin or internal !nonfreeing_call_p set
7530         local->can_free.
7531         (check_stmt): For asm volatile and asm with "memory" set
7532         local->can_free.
7533         (analyze_function): Clear local->can_free initially, continue
7534         calling check_stmt until all flags are computed, dump can_free
7535         flag.
7536         (pure_const_write_summary): Write can_free flag.
7537         (pure_const_read_summary): Read it back.
7538         (propagate_pure_const): Propagate also can_free flag, set
7539         w->nonfreeing_fn if it is false after propagation.
7540         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
7541         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
7542         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
7543         Also return true for IFN_ABNORMAL_DISPATCHER.
7544         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
7545         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
7546         (input_overwrite_node): Read it back.
7547
7548 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7549             Marek Polacek  <polacek@redhat.com>
7550
7551         * sanopt.c: Include tree-ssa-operands.h.
7552         (struct sanopt_info): Add has_freeing_call_p,
7553         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
7554         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
7555         being_visited_p fields.
7556         (struct sanopt_ctx): Add asan_check_map field.
7557         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
7558         maybe_optimize_asan_check_ifn): New functions.
7559         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
7560         internal calls.
7561         (pass_sanopt::execute): Call sanopt_optimize even for
7562         -fsanitize=address.
7563         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
7564         internal calls.
7565
7566 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7567
7568         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
7569         'if (extract_scalar_result)' to the only place that it is true.
7570
7571 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
7572
7573         * config.gcc (default_gnu_indirect_function): Set to yes
7574         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
7575         Android nor uclibc.
7576
7577 2014-11-14  Felix Yang  <felix.yang@huawei.com>
7578             Jiji Jiang  <jiangjiji@huawei.com>
7579
7580         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
7581         VALL mode iterator instead of VALLDI.
7582
7583 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
7584
7585         * optc-save-gen.awk: Output cl_target_option_eq,
7586         cl_target_option_hash, cl_target_option_stream_out,
7587         cl_target_option_stream_in functions.
7588         * opth-gen.awk: Output prototypes for
7589         cl_target_option_eq and cl_target_option_hash.
7590         * lto-streamer.h (cl_target_option_stream_out,
7591         cl_target_option_stream_in): Declare.
7592         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
7593         (cl_option_hash_eq): Use cl_target_option_eq.
7594         * tree-streamer-in.c (unpack_value_fields): Stream in
7595         TREE_TARGET_OPTION.
7596         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
7597         DECL_FUNCTION_SPECIFIC_TARGET.
7598         (hash_tree): Hash TREE_TARGET_OPTION; visit
7599         DECL_FUNCTION_SPECIFIC_TARGET.
7600         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
7601         TS_TARGET_OPTION.
7602         (streamer_write_tree_body): Output TS_TARGET_OPTION.
7603
7604 2014-11-14  Richard Biener  <rguenther@suse.de>
7605
7606         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
7607         valueization hook defaulted to no_follow_ssa_edges.
7608         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
7609         2nd valueization hook to gimple_simplify.
7610         * tree-ssa-ccp.c (valueize_op_1): New function to be
7611         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7612         (ccp_fold): Adjust.
7613         * tree-vrp.c (vrp_valueize_1): New function to be
7614         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7615         (vrp_visit_assignment_or_call): Adjust.
7616
7617 2014-11-14  Marek Polacek  <polacek@redhat.com>
7618
7619         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
7620         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
7621         folding with TYPE_OVERFLOW_SANITIZED.
7622
7623 2014-11-14  Marek Polacek  <polacek@redhat.com>
7624
7625         PR sanitizer/63839
7626         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
7627         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
7628         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
7629         Define.
7630         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
7631         instrument BUILT_IN_UNREACHABLE here.
7632         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
7633         const.
7634         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
7635         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
7636         SANITIZE_UNREACHABLE.
7637         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
7638         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
7639
7640 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7641
7642         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
7643         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
7644
7645 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7646
7647         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
7648         BYTES_BIG_ENDIAN.
7649         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
7650         vect_create_epilog_for_reduction): Likewise.
7651         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
7652
7653 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7654
7655         PR target/63724
7656         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
7657         numerical immediate handling to...
7658         (aarch64_internal_mov_immediate): ...this. New.
7659         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
7660         (aarch64_mov_operand_p): Relax predicate.
7661         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
7662         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
7663         for 'n'.
7664         (*movdi_aarch64): Likewise.
7665
7666 2014-11-14  Richard Biener  <rguenther@suse.de>
7667
7668         * match.pd: Implement more binary patterns exercised by
7669         fold_stmt.
7670         * fold-const.c (sing_bit_p): Export.
7671         (exact_inverse): Likewise.
7672         (fold_binary_loc): Remove patterns here.
7673         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
7674         * fold-const.h (sing_bit_p): Declare.
7675         (exact_inverse): Likewise.
7676
7677 2014-11-14  Marek Polacek  <polacek@redhat.com>
7678
7679         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
7680
7681 2014-11-14  Richard Biener  <rguenther@suse.de>
7682
7683         * genmatch.c (add_operator): Allow CONSTRUCTOR.
7684         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
7685         (parser::parse_op): Allow to iterate over predicates.
7686
7687 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7688
7689         * configure.ac (--with-diagnostics-color): New configure
7690         option, default to --with-diagnostics-color=auto.
7691         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
7692         to determine -fdiagnostics-color= option default.
7693         * doc/invoke.texi (-fdiagnostics-color=): Document new
7694         default.
7695         * configure: Regenerated.
7696         * config.in: Regenerated.
7697
7698 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7699
7700         PR tree-optimization/63841
7701         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7702
7703 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
7704
7705         * timevar.def (TV_SCHED_FUSION): New time var.
7706         * passes.def (pass_sched_fusion): New pass.
7707         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
7708         (extract_base_offset_in_addr, fusion_load_store): New.
7709         (arm_sched_fusion_priority): New.
7710         (arm_option_override): Disable scheduling fusion by default
7711         on non-armv7 processors or ldrd/strd isn't preferred.
7712         * sched-int.h (struct _haifa_insn_data): New field.
7713         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
7714         * sched-rgn.c (rest_of_handle_sched_fusion): New.
7715         (pass_data_sched_fusion, pass_sched_fusion): New.
7716         (make_pass_sched_fusion): New.
7717         * haifa-sched.c (sched_fusion): New.
7718         (insn_cost): Handle sched_fusion.
7719         (priority): Handle sched_fusion by calling target hook.
7720         (enum rfs_decision): New enum value.
7721         (rfs_str): New element for RFS_FUSION.
7722         (rank_for_schedule): Support sched_fusion.
7723         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
7724         (schedule_block, fix_tick_ready): Handle sched_fusion.
7725         * common.opt (flag_schedule_fusion): New.
7726         * tree-pass.h (make_pass_sched_fusion): New.
7727         * target.def (fusion_priority): New.
7728         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
7729         * doc/tm.texi: Regenerated.
7730         * doc/invoke.texi (-fschedule-fusion): New.
7731
7732 2014-11-13  Rong Xu  <xur@google.com>
7733
7734         PR debug/63581
7735         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
7736         footer, instead of unconditionally overwritten.
7737
7738 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7739
7740         * cgraph.h (clear_outer_type): Make public.  Fix comment.
7741         * ipa-devirt.c (possible_polymorphic_call_targets): Use
7742         clear_outer_type when resetting the context.
7743
7744 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
7745
7746         PR bootstrap/63853
7747         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
7748         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
7749
7750 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7751
7752         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
7753         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7754         * tree-inline.c (estimate_operator_cost): Likewise.
7755         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
7756         Likewise.
7757
7758         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
7759         against VEC_RSHIFT_EXPR.
7760
7761         * optabs.h (expand_vec_shift_expr): Remove.
7762         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
7763         (expand_vec_shift_expr): Remove.
7764         * tree.def (VEC_RSHIFT_EXPR): Remove
7765
7766 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7767
7768         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
7769         (shift_amt_for_vec_perm_mask): New.
7770         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
7771         and mask appropriate.
7772
7773         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
7774         (have_whole_vector_shift): New.
7775         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
7776         looking for vec_shr_optab.
7777         (vect_create_epilog_for_reduction): Likewise; also rename local variable
7778         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
7779         instead of VEC_RSHIFT_EXPRs.
7780
7781         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
7782
7783 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7784
7785         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
7786         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
7787
7788         * tree_vec_data_refs.c (vect_permute_load_chain,
7789         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
7790         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
7791
7792         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
7793         Likewise.
7794         (vect_gen_perm_mask_checked): New.
7795         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
7796         (vect_gen_perm_mask_any): ...this.
7797         (perm_mask_for_reverse): Call can_vec_perm_p and
7798         vect_gen_perm_mask_checked.
7799
7800 2014-11-13  Felix Yang  <felix.yang@huawei.com>
7801
7802         * ipa-utils.h: Fix typo in comments.
7803         * ipa-profile.c: Likewise.
7804         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7805
7806 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7807
7808         PR tree-optimization/63841
7809         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7810
7811 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7812
7813         PR tree-optimization/63841
7814         * tree.c (initializer_zerop): A clobber does not zero initialize.
7815
7816 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7817
7818         * optabs.c (prepare_operand): Gracefully fail if the mode of X
7819         does not match the operand mode expected by the insn pattern.
7820
7821 2014-11-13  Richard Biener  <rguenther@suse.de>
7822
7823         * match.pd: Add tcc_comparison, inverted_tcc_comparison
7824         and inverted_tcc_comparison_with_nans operator lists.
7825         Use tcc_comparison in the truth_valued_p predicate definition.
7826         Restrict logical_inverted_value with bit_xor to integral types.
7827         Build a boolean true for simplifying x |^ !x because of
7828         vector types.  Implement patterns from forward_propagate_comparison
7829         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7830         (get_prop_dest_stmt): Likewise.
7831         (pass_forwprop::execute): Do not call it.
7832         * fold-const.c (fold_unary_loc): Remove the pattern here.
7833
7834 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7835             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7836
7837         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7838         tmake_file.
7839         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7840         accelerator compiler.
7841         * config/i386/intelmic-mkoffload.c: New file.
7842         * config/i386/t-intelmic: Ditto.
7843
7844 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7845             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7846             Ilya Verbin  <ilya.verbin@intel.com>
7847
7848         * common.opt (foffload, foffload-abi): New options.
7849         * config/i386/i386.c (ix86_offload_options): New static function.
7850         (TARGET_OFFLOAD_OPTIONS): Define.
7851         * coretypes.h (enum offload_abi): New enum.
7852         * doc/tm.texi: Regenerate.
7853         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7854         * gcc.c (offload_targets): New static variable.
7855         (handle_foffload_option): New static function.
7856         (driver_handle_option): Handle OPT_foffload_.
7857         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7858         according to offload_targets.
7859         * hooks.c (hook_charptr_void_null): New hook.
7860         * hooks.h (hook_charptr_void_null): Declare.
7861         * lto-opts.c: Include lto-section-names.h.
7862         (lto_write_options): Append options from target offload_options hook and
7863         store them to offload_lto section.  Do not store target-specific,
7864         driver and diagnostic options in offload_lto section.
7865         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7866         OPT_foffload_abi_.
7867         (append_compiler_options, append_linker_options)
7868         (append_offload_options): New static functions.
7869         (compile_offload_image): Add new arguments with options.
7870         Call append_compiler_options and append_offload_options.
7871         (compile_images_for_offload_targets): Add new arguments with options.
7872         (find_and_merge_options): New static function.
7873         (run_gcc): Outline options handling into the new functions:
7874         find_and_merge_options, append_compiler_options, append_linker_options.
7875         * opts.c (common_handle_option): Don't handle OPT_foffload_.
7876         Forbid OPT_foffload_abi_ for non-offload compiler.
7877         * target.def (offload_options): New target hook.
7878
7879 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7880             Bernd Schmidt  <bernds@codesourcery.com>
7881             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7882             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7883
7884         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7885         (process_command): Tweak path construction for the possibility
7886         of being configured as an offload compiler.
7887         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7888         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7889         (driver::set_up_specs): Tweak path construction for the possibility of
7890         being configured as an offload compiler.
7891         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7892         (offload_names, offloadbegin, offloadend): New static variables.
7893         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7894         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7895         New static functions.
7896         (run_gcc): Determine whether offload sections are present.  If so, run
7897         compile_images_for_offload_targets and return the names of new generated
7898         objects to linker.  If there are offload sections, but no LTO sections,
7899         then return the copies of input objects without link-time recompilation.
7900
7901 2014-11-13  Richard Biener  <rguenther@suse.de>
7902
7903         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7904
7905 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7906             Bernd Schmidt  <bernds@codesourcery.com>
7907             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7908             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7909
7910         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7911         * cgraphunit.c: Include omp-low.h.
7912         * doc/tm.texi: Regenerate.
7913         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7914         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7915         * lto-cgraph.c (output_offload_tables): New function.
7916         (input_offload_tables): Likewise.
7917         * lto-section-in.c (lto_section_name): Add "offload_table".
7918         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7919         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7920         * lto-streamer-out.c (lto_output): Call output_offload_tables.
7921         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7922         (output_offload_tables, input_offload_tables): Declare.
7923         * omp-low.c: Include common/common-target.h and lto-section-names.h.
7924         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7925         (expand_omp_target): Add child_fn into offload_funcs vector.
7926         (add_decls_addresses_to_decl_constructor): New function.
7927         (omp_finish_file): Likewise.
7928         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7929         * target.def (record_offload_symbol): New DEFHOOK.
7930         * toplev.c: Include omp-low.h.
7931         (compile_file): Call omp_finish_file.
7932         * varpool.c: Include omp-low.h.
7933         (varpool_node::get_create): Add decl into offload_vars vector.
7934
7935 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7936             Ilya Tocar  <ilya.tocar@intel.com>
7937             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7938             Bernd Schmidt  <bernds@codesourcery.com>
7939
7940         * cgraph.c: Include context.h.
7941         (cgraph_node::create): Set node->offloadable and g->have_offload if
7942         decl have "omp declare target" attribute.
7943         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7944         * cgraphunit.c: Include lto-section-names.h.
7945         (ipa_passes): Call ipa_write_summaries if there is something to write to
7946         OFFLOAD_SECTION_NAME_PREFIX sections.
7947         (symbol_table::compile): Set flag_generate_lto if there is something to
7948         offload.
7949         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7950         * context.c (gcc::context::context): Initialize have_offload with false.
7951         * context.h (class context): Add have_offload flag.
7952         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7953         flag_generate_lto.
7954         (inline_free_summary): Always remove hooks.
7955         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7956         from non-offloadable nodes while streaming a node into offload section.
7957         (reachable_from_other_partition_p): Likewise.
7958         (select_what_to_stream): New function.
7959         (compute_ltrans_boundary): Do not call
7960         lto_set_symtab_encoder_in_partition if the node should not be streamed.
7961         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7962         (section_name_prefix): Declare.
7963         * lto-streamer.c (section_name_prefix): New variable.
7964         (lto_get_section_name): Use section_name_prefix instead of
7965         LTO_SECTION_NAME_PREFIX.
7966         * lto-streamer.h (select_what_to_stream): Declare.
7967         * omp-low.c: Include context.h.
7968         (is_targetreg_ctx): New function.
7969         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7970         (create_omp_child_function, check_omp_nesting_restrictions): Use new
7971         is_targetreg_ctx function.  Replace usage of "omp declare target"
7972         attribute with a cgraph_node flag offloadable.
7973         (expand_omp_target): Set mark_force_output for offloadable functions.
7974         (lower_omp_critical): Set offloadable flag for omp critical symbol.
7975         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
7976         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
7977         if the node should not be streamed out.
7978         * tree-pass.h (ipa_write_summaries): New bool argument.
7979         * varpool.c: Include context.h.
7980         (varpool_node::get_create): Set node->offloadable and g->have_offload if
7981         decl have "omp declare target" attribute.
7982
7983 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7984             Thomas Schwinge  <thomas@codesourcery.com>
7985             Ilya Verbin  <ilya.verbin@intel.com>
7986             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7987
7988         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7989         (enable_as_accelerator): New variables substituted by configure.
7990         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7991         being configured as an offload compiler.
7992         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7993         ACCEL_DIR_SUFFIX.
7994         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7995         install for the offload compiler.
7996         * config.in: Regenerate.
7997         * configure: Regenerate.
7998         * configure.ac (real_target_noncanonical, accel_dir_suffix)
7999         (enable_as_accelerator): Compute new variables.
8000         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
8001         (OFFLOAD_TARGETS): List of target names suitable for offloading.
8002         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
8003         * doc/install.texi (Options specification): Document
8004         --enable-as-accelerator-for and --enable-offload-targets.
8005
8006 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
8007
8008         PR tree-optimization/63828
8009         * ipa-polymorphic-call.c (possible_placement_new): Check
8010         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
8011
8012 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
8013
8014         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
8015         (REVERSIBLE_CC_MODE): Fix example.
8016         (REVERSE_CONDITION): Fix typo.
8017         * doc/tm.texi: Regenerate.
8018
8019 2014-11-13  Tom de Vries  <tom@codesourcery.com>
8020
8021         * omp-low.c (pass_data_expand_omp): Set properties_provided to
8022         PROP_gimple_eomp.
8023         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
8024         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
8025         exit if gate is false.
8026         (pass_data pass_data_expand_omp_ssa): New pass_data.
8027         (class pass_expand_omp_ssa): New pass.
8028         (make_pass_expand_omp_ssa): New function.
8029         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
8030         instead of NEXT_PASS.
8031         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
8032         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
8033         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
8034         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
8035         cfun->omp_expand_needed.
8036         * tree-pass.h: Add define PROP_gimple_eomp.
8037         (make_pass_expand_omp_ssa): Declare.
8038
8039 2014-11-13  Marek Polacek  <polacek@redhat.com>
8040
8041         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
8042         * fold-const.c (fold_binary_loc): Use it.
8043         * match.pd: Likewise.
8044
8045 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
8046
8047         * lra-lives.c (struct bb_data): Rename to ...
8048         (struct bb_data_pseudos): ... this.
8049         (initiate_live_solver): Update struct name.
8050
8051 2014-11-13  Richard Biener  <rguenther@suse.de>
8052
8053         * match.pd: Implement conditional expression patterns.
8054         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
8055         them here.
8056         (combine_cond_exprs): Remove.
8057         (pass_forwprop::execute): Do not call combine_cond_exprs.
8058         * fold-const.c (fold_ternary_loc): Remove patterns here.
8059         (pedantic_omit_one_operand_loc): Remove.
8060
8061 2014-12-13  Richard Biener  <rguenther@suse.de>
8062
8063         PR middle-end/61559
8064         * match.pd: Implement bswap patterns for transforms checked by
8065         gcc.dg/builtin-bswap-8.c.
8066
8067 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
8068
8069         * lra.c (lra): Switch off rematerialization pass.
8070
8071 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
8072
8073         * common.opt (flra-remat): New.
8074         * opts.c (default_options_table): Add entry for flra_remat.
8075         * timevar_def (TV_LRA_REMAT): New.
8076         * doc/invoke.texi (-flra-remat): Add description of the new
8077         option.
8078         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
8079         lra-saves.c.  Add lra-remat.c.
8080         * Makefile.in (OBJS): Add lra-remat.o.
8081         * lra-remat.c: New file.
8082         * lra.c: Add info about the rematerialization pass in the top
8083         comment.
8084         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
8085         Process unallocatable regs too.
8086         (lra_constraint_new_insn_uid_start): Remove.
8087         (lra): Add code for calling rematerialization sub-pass.
8088         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
8089         (lra_constrain_insn, lra_remat): New prototypes.
8090         (lra_eliminate_regs_1): Add parameter.
8091         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
8092         Process unallocatable hard regs too.
8093         (process_bb_lives): Ditto.
8094         * lra-spills.c (remove_pseudos): Add argument to
8095         lra_eliminate_regs_1 call.
8096         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
8097         for sp offset calculation.
8098         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
8099         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
8100         calculation.
8101         (process_insn_for_elimination): Add argument for
8102         eliminate_regs_in_insn call.
8103         * lra-constraints.c (get_equiv_with_elimination):  Add argument
8104         for lra_eliminate_regs_1 call.
8105         (process_addr_reg): Add parameter.  Use it.
8106         (process_address_1): Ditto.  Add argument for process_addr_reg
8107         call.
8108         (process_address): Ditto.
8109         (curr_insn_transform): Add parameter.  Use it.  Add argument for
8110         process_address calls.
8111         (lra_constrain_insn): New function.
8112         (lra_constraints): Add argument for curr_insn_transform call.
8113
8114 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8115
8116         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
8117         (print_ignored_options): Fix quoting.
8118         * opts.c (common_handle_option): Likewise.
8119         (set_debug_level): Likewise.
8120         * toplev.c (process_options): Likewise.
8121
8122 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
8123
8124         PR ipa/63838
8125         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
8126         chain instead of node->indirect_calls.  Put !can_throw into
8127         conditions of all the loops.
8128
8129 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
8130
8131         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
8132         set pic_offset_table_rtx.
8133
8134 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
8135
8136         * common/config/mips/mips-common.c (mips_handle_option): Ensure
8137         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
8138         * config.gcc (--with-fp-32): New option.
8139         (--with-odd-spreg-32): Likewise.
8140         * config.in (HAVE_AS_DOT_MODULE): New config define.
8141         * config/mips/mips-protos.h
8142         (mips_secondary_memory_needed): New prototype.
8143         (mips_hard_regno_caller_save_mode): Likewise.
8144         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
8145         (mips_get_arg_info): Assert that V2SFmode is only handled specially
8146         with TARGET_PAIRED_SINGLE_FLOAT.
8147         (mips_return_mode_in_fpr_p): Likewise.
8148         (mips16_call_stub_mode_suffix): Likewise.
8149         (mips_get_reg_raw_mode): New static function.
8150         (mips_return_fpr_pair): O32 return values span two registers.
8151         (mips16_build_call_stub): Likewise.
8152         (mips_function_value_regno_p): Support both FP return registers.
8153         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
8154         specific cases for TARGET_FPXX to move via memory.
8155         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
8156         than UNITS_PER_FPREG 'span' one register.
8157         (mips_dwarf_frame_reg_mode): New static function.
8158         (mips_file_start): Switch to using .module instead of .gnu_attribute.
8159         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
8160         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
8161         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
8162         slots with two CFI directives even for O32 FP64.
8163         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
8164         saving/restoring callee-saved registers.
8165         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
8166         (mips_secondary_memory_needed): New function.
8167         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
8168         odd-numbered single-precision registers when using TARGET_FLOATXX.
8169         Implement -modd-spreg and defaults.
8170         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
8171         callee-saved behaviour.
8172         (mips_hard_regno_caller_save_mode): Implement.
8173         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
8174         (TARGET_GET_RAW_ARG_MODE): Define target hook.
8175         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
8176         * config/mips/mips.h (TARGET_FLOAT32): New macro.
8177         (TARGET_O32_FP64A_ABI): Likewise.
8178         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
8179         _MIPS_SPFPSET builtin define.
8180         (MIPS_FPXX_OPTION_SPEC): New macro.
8181         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
8182         --with-odd-spreg-32=* to -m[no-]odd-spreg.
8183         (ISA_HAS_ODD_SPREG): New macro.
8184         (ISA_HAS_MXHC1): True for anything other than -mfp32.
8185         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
8186         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
8187         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
8188         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
8189         (SECONDARY_MEMORY_NEEDED): Likewise.
8190         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
8191         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
8192         FP64A ABI extensions.
8193         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
8194         TARGET_FLOAT64.
8195         * config/mips/mips.opt (mfpxx): New target option.
8196         (modd-spreg): Likewise.
8197         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
8198         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
8199         fp64 sysroot.
8200         * config/mips/t-mti-elf: Remove fp64 multilib.
8201         * config/mips/t-mti-linux: Likewise.
8202         * configure.ac: Detect .module support.
8203         * configure: Regenerate.
8204         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
8205         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
8206         options.
8207
8208 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
8209
8210         PR target/63815
8211         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
8212         from ...
8213         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
8214         (x86_output_mi_thunk): Set PIC register to %r11.  Call
8215         ix86_init_large_pic_reg to initialize PIC register.
8216
8217 2014-11-12  Kai Tietz  <ktietz@redhat.com>
8218
8219         * sdbout.c (sdbout_symbol): Eliminate register only
8220         if decl isn't a global variable.
8221
8222 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
8223
8224         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
8225
8226         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
8227         qualifier_lane_index.
8228         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
8229         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
8230         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
8231
8232         (aarch64_types_getlane_qualifiers): Rename to...
8233         (aarch64_types_binop_imm_qualifiers): ...this.
8234         (TYPES_SHIFTIMM): Follow renaming.
8235         (TYPES_GETLANE): Rename to...
8236         (TYPE_GETREG): ...this.
8237
8238         (aarch64_types_setlane_qualifiers): Rename to...
8239         (aarch64_type_ternop_imm_qualifiers): ...this.
8240         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
8241         (TYPES_SETLANE): Follow renaming above, and rename self to...
8242         (TYPE_SETREG): ...this.
8243
8244         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
8245         (aarch64_simd_expand_args): Add range check and endianness-flip.
8246
8247         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
8248
8249         * config/aarch64/aarch64-simd.md
8250         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
8251         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
8252         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
8253
8254         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
8255         (aarch64_sq<r>dmulh_lane<mode>): ...this.
8256
8257         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
8258         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
8259
8260         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
8261         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
8262
8263         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
8264         (aarch64_sqdmull_lane<mode>): ...this.
8265
8266         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
8267         (aarch64_sqdmull_laneq<mode>): ...this.
8268
8269         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
8270         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
8271         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
8272         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
8273
8274         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
8275         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
8276         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
8277         bounds check and lane flip.
8278
8279         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
8280         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
8281         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
8282
8283         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
8284         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
8285         renaming of TERNOP_LANE to QUADOP_LANE.
8286
8287         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
8288         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
8289         qualifiers to TERNOP_LANE.
8290
8291 2014-11-12  Tobias Burnus  <burnus@net-b.de>
8292
8293         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
8294         * configure.ac: Ditto.
8295         * graphite-interchange.c: Remove HAVE_CLOOG block.
8296         * config.in: Regenerate.
8297         * configure: Regenerate.
8298
8299 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
8300
8301         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
8302         caller-save.
8303         (EPILOGUE_USES): Guard the check by epilogue_completed.
8304         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
8305         LR.
8306         (aarch64_can_eliminate): Check LR_REGNUM liveness.
8307
8308 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8309
8310         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
8311
8312 2014-11-12  Marek Polacek  <polacek@redhat.com>
8313
8314         * fold-const.c (fold_binary_loc): Don't fold if the result
8315         is undefined.
8316         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
8317         -(-A) -> A): Likewise.
8318
8319 2014-11-12  Richard Biener  <rguenther@suse.de>
8320
8321         Merge from match-and-simplify branch
8322         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8323
8324         * genmatch.c (user_id): Add new member is_oper_list.
8325         (user_id::user_id): Add new default argument.
8326         (parser::parse_operator_list): New function.
8327         (parser::parse_for): Allow operator-list.
8328         (parser::parse_pattern): Call parser::parse_operator_list.
8329         (parser::parse_operation): Reject operator-list.
8330         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
8331
8332         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8333
8334         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
8335
8336         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8337
8338         * genmatch.c (parser::parse_op): Check if predicate is used in
8339         result operand.
8340
8341         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8342
8343         * genmatch.c (parser::parse_for): Make sure to have a valid
8344         token to report errors at.
8345
8346         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8347
8348         * genmatch.c (parser): Add new member parsing_match_operand.
8349         (parser::parse_operation): Check for conditional convert in result
8350         operand.
8351         (parser::parse_expr): Check for commutative operator in result operand.
8352         Check for :type in match operand.
8353         (parser::parse_simplify): Set/unset parsing_match_operand.
8354         (parser::parser): Initialize parsing_match_operand.
8355
8356         2014-10-28  Richard Biener  <rguenther@suse.de>
8357
8358         * genmatch.c (parser::parse_for): Properly check for already
8359         defined operators.
8360
8361         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
8362
8363         * genmatch.c (error_cb): Adjust for printing warnings.
8364         (warning_at): New function.
8365         (user_id): Add new member used.
8366         (get_operator): Mark user_id as used.
8367         (parse_for): Warn for unused operators.
8368
8369 2014-11-12  Richard Biener  <rguenther@suse.de>
8370
8371         * match.pd: Implement simple complex operations cancelling.
8372         * fold-const.c (fold_unary_loc): Remove them here.
8373
8374 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
8375
8376         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
8377         Define __NO_MATH_ERRNO__ if -fno-math-errno.
8378         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
8379
8380 2014-11-12  Richard Biener  <rguenther@suse.de>
8381
8382         * genmatch.c (::gen_transform): Add capture_info and
8383         expand_compares arguments.
8384         (struct expr): Add is_generic flag.
8385         (lower_cond): New functions lowering [VEC_]COND_EXPR
8386         conditions to a GENERIC and a GIMPLE variant.
8387         (lower): Call lower_cond.
8388         (cmp_operand): Also compare the is_generic flag.
8389         (capture_info::cinfo): Add cond_expr_cond_p flag.
8390         (capture_info::capture_info): Pass down whether the
8391         expression argument is a COND_EXPR condition.
8392         (capture_info::walk_match): Likewise, mark captures
8393         capturing COND_EXPR conditions with cond_expr_cond_p.
8394         (expr::gen_transform): Pass down whether we need to
8395         expand compares from COND_EXPR conditions.
8396         (capture::gen_transform): Expand compares substituted
8397         from COND_EXPR conditions into non-COND_EXPR conditions.
8398         (dt_operand::gen_gimple_expr): Handle explicitely marked
8399         GENERIC expressions as generic.
8400         (dt_simplify::gen): Pass whether we need to expand
8401         conditions to gen_transform.  Handle capture results
8402         which are from COND_EXPR conditions.
8403         (main): Pass gimple flag down to lower.
8404
8405 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
8406
8407         PR c/59708
8408         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
8409         * builtins.c (fold_builtin_arith_overflow): New function.
8410         (fold_builtin_3): Use it.
8411         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
8412         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
8413         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
8414         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
8415         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
8416         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
8417         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
8418         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
8419         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
8420         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
8421         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
8422         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
8423         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
8424         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
8425         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
8426         * expr.c (write_complex_part): Remove prototype, no longer static.
8427         * expr.h (write_complex_part): New prototype.
8428         * function.c (aggregate_value_p): For internal functions return 0.
8429         * gimple-fold.c (arith_overflowed_p): New functions.
8430         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
8431         * gimple-fold.h (arith_overflowed_p): New prototype.
8432         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
8433         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
8434         functions.
8435         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
8436         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
8437         never used.
8438         * gimplify.c (gimplify_call_expr): Handle gimplification of
8439         internal calls with lhs.
8440         * internal-fn.c (get_range_pos_neg, get_min_precision,
8441         expand_arith_overflow_result_store): New functions.
8442         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
8443         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
8444         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
8445         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
8446         (ubsan_expand_si_overflow_neg_check): Renamed to ...
8447         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
8448         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
8449         0 as first argument expansion.
8450         (ubsan_expand_si_overflow_mul_check): Renamed to ...
8451         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
8452         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
8453         Handle MUL_OVERFLOW expansion.
8454         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
8455         arguments for it.
8456         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
8457         expand_neg_overflow, prepare arguments for it.
8458         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
8459         for it.
8460         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
8461         expand_MUL_OVERFLOW): New functions.
8462         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
8463         internal functions.
8464         * tree-vrp.c (check_for_binary_op_overflow): New function.
8465         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
8466         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
8467         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
8468         internal functions.
8469         * optabs.def (umulv4_optab): New optab.
8470         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
8471         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
8472         * doc/extend.texi (Integer Overflow Builtins): Document
8473         __builtin_*_overflow.
8474
8475 2014-11-12  Richard Biener  <rguenther@suse.de>
8476
8477         * genmatch.c (capture_info::capture_info): Add missing
8478         COND_EXPR handling.
8479         (capture_info::walk_match): Fix COND_EXPR handling.
8480         (capture_info::walk_result): Likewise.
8481
8482 2014-11-12  Richard Biener  <rguenther@suse.de>
8483
8484         PR middle-end/63821
8485         * match.pd: Add missing conversion to the -(T)-X pattern.
8486
8487 2014-11-12  Richard Biener  <rguenther@suse.de>
8488
8489         PR bootstrap/63819
8490         * hash-table.h: Include ggc.h also for generator programs.
8491         * genmatch.c (ggc_internal_cleared_alloc): Properly define
8492         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
8493
8494 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8495
8496         PR tree-optimization/63761
8497         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
8498         rather than taking it as a parameter. Add some comments to explain the
8499         gsi_move_before in case of load and why canonicalization of bswap into
8500         a rotation is only done for 16bit values.
8501         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
8502         refer to the statement just before cur_stmt. Ignore 16bit bswap that
8503         are already in canonical form. Adapt bswap_replace to removal of its
8504         gsi parameter.
8505
8506 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
8507
8508         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
8509         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
8510         (for_each_rtx_in_insn): Delete.
8511         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
8512         * df-core.c: Remove reference to for_each_rtx in comment.
8513
8514 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
8515
8516         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
8517         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
8518         * doc/aarch64-acle-intrinsics.texi: Remove.
8519         * doc/arm-acle-intrinsics.texi: Remove.
8520         * doc/arm-neon-intrinsics.texi: Remove.
8521         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
8522         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
8523         Extension section. Add references to public ACLE specification.
8524
8525 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
8526
8527         * tree-vrp.c (register_edge_assert_for_2): Change return type to
8528         void and adjust accordingly.
8529         (register_edge_assert_for_1): Likewise.
8530         (register_edge_assert_for): Likewise.
8531         (find_conditional_asserts): Likewise.
8532         (find_switch_asserts): Likewise.
8533         (find_assert_locations_1): Likewise.
8534         (find_assert_locations): Likewise.
8535         (insert_range_insertions): Inspect the need_assert_for bitmap.
8536
8537 2014-11-11  Andrew Pinski  <apinski@cavium.com>
8538
8539         Bug target/61997
8540         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
8541         aarch64-builtins.c.
8542         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
8543         at the end of the file.
8544
8545 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
8546             Manuel López-Ibáñez  <manu@gcc.gnu.org>
8547
8548         PR driver/36312
8549         * diagnostic-core.h: Add prototype for fatal_error.
8550         * diagnostic.c (fatal_error): New function fatal_error.
8551         * gcc.c (store_arg): Remove have_o_argbuf_index.
8552         (process_command): Check if input and output files are the same.
8553         * toplev.c (init_asm_output): Check if input and output files are
8554         the same.
8555
8556 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
8557
8558         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
8559
8560 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
8561
8562         PR target/61535
8563         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
8564         smaller than 8 bytes.
8565         (sparc_function_arg_1): Tweak.
8566         (sparc_function_value_1): Tweak.
8567
8568 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
8569
8570         * ChangeLog.jit: New.
8571         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
8572         sphinx is installed, falling back to "texinfo" otherwise.
8573         (FULL_DRIVER_NAME): New variable, adapted from the
8574         install-driver target.  New target, a symlink within the builddir,
8575         linked to "xgcc", for use when running the JIT library from the
8576         builddir.
8577         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
8578         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
8579         out.
8580         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
8581         sphinx is installed, falling back to "texinfo" otherwise.
8582         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
8583         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
8584         * configure: Regenerate.
8585         * doc/install.texi (--enable-host-shared): Specify that this is
8586         required when building libgccjit.
8587         (Tools/packages necessary for modifying GCC): Add Sphinx.
8588         * timevar.def (TV_JIT_REPLAY): New.
8589         (TV_ASSEMBLE): New.
8590         (TV_LINK): New.
8591         (TV_LOAD): New.
8592
8593 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8594
8595         PR target/63610
8596         * configure: Regenerate.
8597
8598 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
8599
8600         * config/aarch64/aarch64-simd.md
8601         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
8602         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
8603         are punning between float vectors and integer vectors.
8604
8605 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8606
8607         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
8608         open-coded swap with std::swap to swap values.
8609         (alpha_emit_setcc): Ditto.
8610         (alpha_emit_conditional_move): Ditto.
8611         (alpha_split_tmode_pair): Ditto.
8612
8613 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
8614
8615         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
8616         permutations on power of 2 cases.
8617
8618 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8619
8620         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
8621         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
8622
8623 2014-11-11  Richard Biener  <rguenther@suse.de>
8624
8625         * tree-core.h (pedantic_lvalues): Remove.
8626         * fold-const.c (pedantic_lvalues): Likewise.
8627         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
8628
8629 2014-11-11  Martin Liska  <mliska@suse.cz>
8630
8631         PR ipa/63622
8632         PR ipa/63795
8633         * ipa-icf.c (sem_function::merge): Add new target symbol alias
8634         support guard.
8635         (sem_variable::merge): Likewise.
8636         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
8637
8638 2014-11-11  Richard Biener  <rguenther@suse.de>
8639
8640         * match.pd: Implement patterns from associate_plusminus
8641         and factor in differences from the fold-const.c implementation.
8642         * fold-const.c (fold_binary_loc): Remove patterns here.
8643         * tree-ssa-forwprop.c (associate_plusminus): Remove.
8644         (pass_forwprop::execute): Don't call it.
8645         * tree.c (tree_nop_conversion_p): New function, factored
8646         from tree_nop_conversion.
8647         * tree.h (tree_nop_conversion_p): Declare.
8648
8649 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8650
8651         * system.h: Include algorithm and utility.
8652         * rtl.h: Do not include utility here.
8653         * wide-int.h: Ditto.
8654         * tree-vect-data-refs.c (swap): Remove template.
8655         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
8656
8657 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8658
8659         PR bootstrap/63699
8660         PR bootstrap/63750
8661         * system.h: Include <string> before "safe-ctype.h"
8662         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
8663         calls to min/max with wi namespace.
8664         * ipa-chkp.c: Don't include <string>.
8665
8666 2014-11-11  Terry Guo  <terry.guo@arm.com>
8667
8668         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
8669         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
8670         registers.
8671         (*thumb1_movhf): Likewise.
8672
8673 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8674
8675         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
8676         instead of INT64_MAX.
8677
8678 2014-11-11  Tobias Burnus  <burnus@net-b.de>
8679
8680         * doc/install.texi (Prerequisites): Remove CLooG.
8681
8682 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
8683
8684         * ipa-inline.c (edge_badness): Adjust.
8685         (inline_small_functions): Likewise.
8686         * predict.c (propagate_freq): Likewise.
8687         (estimate_bb_frequencies): Likewise.
8688         * sreal.c (sreal::dump): Rename from dump_sreal.
8689         (debug): Adjust.
8690         (copy): Remove function.
8691         (sreal::shift_right): Rename from sreal_sift_right.
8692         (sreal::normalize): Rename from normalize.
8693         (sreal_init): Remove function.
8694         (sreal::to_int): Rename from sreal_to_int.
8695         (sreal_compare): Remove function.
8696         (sreal::operator+): Rename from sreal_add.
8697         (sreal::operator-): Rename from sreal_sub.
8698         (sreal::operator*): Rename from sreal_mul.
8699         (sreal::operator/): Rename from sreal_div.
8700         * sreal.h (class sreal): Adjust.
8701         (inline sreal &operator+=): New operator.
8702         (inline sreal &operator-=): Likewise.
8703         (inline sreal &operator/=): Likewise.
8704         (inline sreal &operator*=): Likewise.
8705         (inline bool operator!=): Likewise.
8706         (inline bool operator>): Likewise.
8707         (inline bool operator<=): Likewise.
8708         (inline bool operator>=): Likewise.
8709
8710 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
8711
8712         * sched-deps.c (sched_analyze_1): Check pending list if it is not
8713         less than MAX_PENDING_LIST_LENGTH.
8714         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
8715
8716 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8717
8718         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
8719         swap with std::swap to swap values.
8720         (ix86_fixup_binary_operands): Ditto.
8721         (ix86_binary_operator_ok): Ditto.
8722         (ix86_prepare_fp_compare_args): Ditto.
8723         (ix86_expand_branch): Ditto.
8724         (ix86_expand_carry_flag_compare): Ditto.
8725         (ix86_expand_int_movcc): Ditto.
8726         (ix86_prepare_sse_fp_compare_args): Ditto.
8727         (ix86_expand_sse_fp_minmax): Ditto.
8728         (ix86_expand_int_vcond): Ditto.
8729         (ix86_split_long_move): Ditto.
8730         (ix86_expand_sse_comi): Ditto.
8731         (ix86_expand_sse_compare_and_jump): Ditto.
8732         (ix86_expand_sse_compare_mask): Ditto.
8733         * config/i386/i386.md (*add<mode>_1): Ditto.
8734         (addsi_1_zext): Ditto.
8735         (*addhi_1): Ditto.
8736         (*addqi_1): Ditto.
8737         (*add<mode>_2): Ditto.
8738         (*addsi_2_zext): Ditto.
8739         (*add<mode>_3): Ditto.
8740         (*addsi_3_zext): Ditto.
8741         (*add<mode>_5): Ditto.
8742         (absneg splitter): Ditto.
8743
8744 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8745
8746         Revert:
8747         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8748
8749         PR target/63620
8750         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
8751         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
8752         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
8753         be reloaded through memory.
8754         (*pushxf): Ditto.
8755         (*pushdf): Ditto.
8756
8757 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
8758             Martin Liska  <mliska@suse.cz>
8759
8760         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
8761         (func_checker::compare_gimple_call): Compare gimple_call_fn,
8762         gimple_call_chain, gimple_call_fntype and call flags.
8763
8764 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
8765
8766         PR rtl-optimization/63620
8767         PR rtl-optimization/63799
8768         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
8769         and setting PIC pseudo insns.
8770         (lra_create_live_ranges): Fix the typo.
8771
8772 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
8773
8774         PR middle-end/63748
8775         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
8776         SSA copies whose source and destination names both occur in
8777         abnormal PHIs.
8778
8779 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
8780
8781         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
8782         * common.opt: Remove using of fgraphite-code-generator flag.
8783         * flag-types.h: Likewise.
8784         * graphite.c: Remove using of CLooG.
8785         * graphite-blocking.c: Likewise.
8786         * graphite-dependences.c: Likewise.
8787         * graphite-poly.c: Likewise.
8788         * graphite-poly.h: Likewise.
8789         * graphite-scop-detection.c: Likewise.
8790         * graphite-sese-to-poly.c: Likewise.
8791         * graphite-clast-to-gimple.c: Removed.
8792         * graphite-clast-to-gimple.h: Likewise.
8793         * graphite-htab.h: Likewise.
8794
8795 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
8796
8797         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
8798         Add.
8799
8800 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8801
8802         * config/frv/frv.c (frv_io_handle_use_1): Delete.
8803         (frv_io_handle_use): Use find_all_hard_regs.
8804
8805 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8806
8807         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8808         than an rtx *.  Take the regstate_t directly rather than via a void *.
8809         Return a bool rather than an int.  Iterate over all subrtxes here.
8810         (frv_registers_conflict_p): Update accordingly.
8811
8812 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8813
8814         * config/frv/frv.c: Include rtl-iter.h.
8815         (frv_acc_group_1): Delete.
8816         (frv_acc_group): Use FOR_EACH_SUBRTX.
8817
8818 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8819
8820         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8821         (frv_clear_registers_used): Delete.
8822         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8823
8824 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
8825
8826         PR bootstrap/63573
8827         * calls.c (initialize_argument_information): When emitting thunk call
8828         use original memory placement of the argument.
8829
8830 2014-11-10  Renlin Li  <renlin.li@arm.com>
8831
8832         PR middle-end/61529
8833         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8834
8835 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8836
8837         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8838         bswaphi if available.
8839
8840 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
8841
8842         * config/nvptx/nvptx.c: New file.
8843         * config/nvptx/nvptx.h: New file.
8844         * config/nvptx/nvptx-protos.h: New file.
8845         * config/nvptx/nvptx.md: New file.
8846         * config/nvptx/t-nvptx: New file.
8847         * config/nvptx/nvptx.opt: New file.
8848         * common/config/nvptx/nvptx-common.c: New file.
8849         * config.gcc: Handle nvptx-*-*.
8850
8851 2014-11-10  Richard Biener  <rguenther@suse.de>
8852
8853         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8854         released operands on the free list.
8855
8856 2014-11-10  Richard Biener  <rguenther@suse.de>
8857
8858         * match.pd: Implement pattern from simplify_mult.
8859         * tree-ssa-forwprop.c (simplify_mult): Remove.
8860         (pass_forwprop::execute): Do not call simplify_mult.
8861
8862 2014-11-10  Richard Biener  <rguenther@suse.de>
8863
8864         PR tree-optimization/63800
8865         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8866         we can restore the previous availability in after_dom_children.
8867         (eliminate_dom_walker::after_dom_children): Restore
8868         previous availability.
8869
8870 2014-11-10  Richard Biener  <rguenther@suse.de>
8871
8872         PR middle-end/63798
8873         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8874         properly treat the embedded multiplication as commutative
8875         when looking for feeding negates.
8876
8877 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
8878
8879         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8880
8881 2014-11-10  Martin Liska  <mliska@suse.cz>
8882
8883         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8884         for the test because of default char signedness
8885         on powerpc64 target.
8886
8887 2014-11-10  Richard Biener  <rguenther@suse.de>
8888
8889         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8890         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8891         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8892
8893 2014-11-10  Richard Biener  <rguenther@suse.de>
8894
8895         * match.pd: Move rest of the conversion combining patterns
8896         from tree-ssa-forwprop.c.
8897         * tree-ssa-forwprop.c (combine_conversions): Remove.
8898         (pass_forwprop::execute): Do not call it.
8899
8900 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8901
8902         * gimple-low.c (lower_function_body): Clear the location of the first
8903         inserted representative return if it also fills in for the fallthru.
8904
8905 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8906
8907         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8908         that bb is always executed to early exit. Use predicate of
8909         cd-equivalent block for join blocks if it exists.
8910         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8911         (tree_if_conversion): Free post-dominance information.
8912
8913 2014-11-09  Jason Merrill  <jason@redhat.com>
8914
8915         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8916         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8917         (_mm_mask_cvtusepi32_storeu_epi16)
8918         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8919
8920 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8921
8922         * config/avr/predicates.md (low_io_address_operand): Fix typo.
8923
8924 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
8925
8926         PR rtl-optimization/63620
8927         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8928         name.  Move to lra.c.  Make it external.
8929         (substitute_pseudo_within_insn): Ditto.
8930         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8931         the new names.
8932         (undo_optional_reloads): Ditto.
8933         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8934         New prototypes.
8935         (lra_substitute_pseudo_within_insn): Ditto.
8936         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8937         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
8938         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
8939         bb_killed_pseudos.
8940         (struct bb_data, bb_data_t, bb_data): New.
8941         (get_bb_data, get_bb_data_by_index): Ditto.
8942         (all_hard_regs_bitmap): New.
8943         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8944         (initiate_live_solver, finish_live_solver): New.
8945         (process_bb_lives): Change return type.  Add code updating local
8946         live data and removing dead insns.  Pass new argument to
8947         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
8948         life info.  Return the result.
8949         (lra_create_live_ranges): Add code to do global pseudo live
8950         analysis.
8951         (lra_live_ranges_init): Call initiate_live_solver.
8952         (lra_live_ranges_finish): Call finish_live_solver.
8953         * lra.c (lra_dump_bitmap_with_title): New.
8954         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8955         from lra-constraints.c.
8956
8957 2014-11-09  Richard Biener  <rguenther@suse.de>
8958
8959         * match.pd: Add patterns convering two conversions in a row
8960         from fold-const.c.
8961         * fold-const.c (fold_unary_loc): Remove them here.
8962         * tree-ssa-forwprop.c (combine_conversions): Likewise.
8963         * genmatch.c (dt_node::gen_kids): Check whether we may
8964         follow SSA use-def chains.
8965
8966 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8967
8968         * config/aarch64/aarch64.c: Include rtl-iter.h.
8969         (aarch64_tls_operand_p_1): Delete.
8970         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8971
8972 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8973
8974         * config/arm/arm.c (arm_note_pic_base): Delete.
8975         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8976
8977 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8978
8979         * config/arm/arm.c: Include rtl-iter.h.
8980         (arm_tls_referenced_p_1): Delete.
8981         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8982
8983 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8984
8985         * config/arm/aarch-common.c: Include rtl-iter.h.
8986         (search_term, arm_find_sub_rtx_with_search_term): Delete.
8987         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8988         (arm_get_set_operands): Pass the insn pattern rather than the
8989         insn itself.
8990         (arm_no_early_store_addr_dep): Likewise.
8991
8992 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8993
8994         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8995         related, if any.
8996         (thumb_set_return_address): Likewise.
8997
8998 2014-11-07  Jeff Law  <law@redhat.com>
8999
9000         PR tree-optimization/61515
9001         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
9002         stack rather than looking at every SSA_NAME's value.
9003
9004 2014-11-07  Richard Biener  <rguenther@suse.de>
9005
9006         PR tree-optimization/63605
9007         * fold-const.c (fold_binary_loc): Properly use element_precision
9008         for types that may not be scalar.
9009
9010 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
9011
9012         PR target/63534
9013         * config/i386/i386.md (builtin_setjmp_receiver): Use
9014         pic_offset_table_rtx for PIC register.
9015         (nonlocal_goto_receiver): Delete.
9016
9017 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
9018
9019         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
9020         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
9021
9022 2014-11-07  Martin Liska  <mliska@suse.cz>
9023
9024         PR ipa/63580
9025         * cgraphunit.c (cgraph_node::create_wrapper):
9026         TREE_ADDRESSABLE is set to false for a newly created thunk.
9027
9028 2014-11-07  Martin Liska  <mliska@suse.cz>
9029
9030         PR ipa/63747
9031         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
9032         Missing checking for CASE_LOW and CASE_HIGH added.
9033
9034 2014-11-07  Martin Liska  <mliska@suse.cz>
9035
9036         PR ipa/63595
9037         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
9038         is correctly handled for thunks created by IPA ICF.
9039
9040 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
9041 2014-11-07  Richard Biener  <rguenther@suse.de>
9042
9043         PR tree-optimization/63676
9044         * gimple-fold.c (fold_gimple_assign): Do not fold node when
9045         TREE_CLOBBER_P be true.
9046
9047 2014-11-07  Richard Biener  <rguenther@suse.de>
9048
9049         PR middle-end/63770
9050         * match.pd: Guard conflicting GENERIC pattern properly.
9051
9052 2014-11-07  Richard Biener  <rguenther@suse.de>
9053
9054         * match.pd: Add patterns for POINTER_PLUS_EXPR association
9055         and special patterns from tree-ssa-forwprop.c
9056         * fold-const.c (fold_binary_loc): Remove them here.
9057         * tree-ssa-forwprop.c (to_purge): New global bitmap.
9058         (fwprop_set_lattice_val): New function.
9059         (fwprop_invalidate_lattice): Likewise.
9060         (remove_prop_source_from_use): Instead of purging dead EH
9061         edges record blocks to do that in to_purge.
9062         (tidy_after_forward_propagate_addr): Likewise.
9063         (forward_propagate_addr_expr): Invalidate the lattice for
9064         SSA names we release.
9065         (simplify_conversion_from_bitmask): Likewise.
9066         (simplify_builtin_call): Likewise.
9067         (associate_pointerplus_align): Remove.
9068         (associate_pointerplus_diff): Likewise.
9069         (associate_pointerplus): Likewise.
9070         (fold_all_stmts): Merge with ...
9071         (pass_forwprop::execute): ... the original loop over all
9072         basic-blocks.  Delay purging dead EH edges and invalidate
9073         the lattice for SSA names we release.
9074
9075 2014-11-07  Terry Guo  <terry.guo@arm.com>
9076
9077         * config/arm/arm.opt (masm-syntax-unified): New option.
9078         * doc/invoke.texi (-masm-syntax-unified): Document new option.
9079         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
9080         (ASM_APP_ON): Redefined.
9081         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
9082         code always use UAL syntax.
9083         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
9084         * config/arm/thumb1.md: Likewise.
9085
9086 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
9087
9088         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
9089         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
9090         or in_call_delay.
9091
9092 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
9093
9094         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
9095         Set default_mips_arch and default_mips_abi instead of tm_defines.
9096         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
9097         of tm_defines.
9098         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
9099         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
9100         based on MIPS_ABI_DEFAULT.
9101         (STANDARD_STARTFILE_PREFIX_2): Ditto.
9102
9103 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
9104
9105         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
9106         cases of extended identifiers.
9107
9108 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
9109
9110         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
9111
9112 2014-11-06  DJ Delorie  <dj@redhat.com>
9113
9114         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
9115         conditional.
9116         (movhicc_<code>_<mode>): Likewise.
9117         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
9118         subregs.
9119         (m32c_eh_return_data_regno): Change to using memregs to avoid
9120         tying up all the compute regs.
9121         (m32c_legitimate_address_p) Subregs are not valid addresses.
9122
9123 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
9124
9125         * function.c (thread_prologue_and_epilogue_insns): No longer static.
9126         * function.h (thread_prologue_and_epilogue_insns): Declare.
9127
9128         * target.def (assemble_undefined_decl): New hooks.
9129         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
9130         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
9131         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
9132         * doc/tm.texi: Regenerate.
9133         * output.h (assemble_undefined_decl): Declare.
9134         (get_fnname_from_decl): Declare.
9135         * varasm.c (assemble_undefined_decl): New function.
9136         (get_fnname_from_decl): New function.
9137         * final.c (rest_of_handle_final): Use it.
9138         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
9139         for nodes without a definition.
9140
9141         * target.def (call_args, end_call_args): New hooks.
9142         * hooks.c (hook_void_rtx_tree): New empty function.
9143         * hooks.h (hook_void_rtx_tree): Declare.
9144         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
9145         * doc/tm.texi: Regenerate.
9146         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
9147         hooks.
9148         (expand_library_call_value_1): Use the two new hooks.
9149
9150         * expr.c (use_reg_mode): Just return for pseudo registers.
9151
9152         * combine.c (try_combine): Don't allow a call as one of the source
9153         insns.
9154
9155         * target.def (decl_end): New hook.
9156         * varasm.c (assemble_variable_contents, assemble_constant_contents):
9157         Use it.
9158         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
9159         * doc/tm.texi: Regenerate.
9160
9161 2014-11-06  Renlin Li  <renlin.li@arm.com>
9162
9163         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
9164         (processor): New architecture_version field.
9165         (aarch64_override_options): Initialize aarch64_architecture_version.
9166         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
9167         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
9168
9169 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
9170
9171         * params.def (sra-max-scalarization-size-Ospeed): New.
9172         (sra-max-scalarization-size-Osize): Likewise.
9173         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
9174         (sra-max-scalarization-size-Osize): Likewise.
9175         * toplev.c (process_options): Set default values for new
9176         parameters.
9177         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
9178         * targhooks.c (get_move_ratio): Remove static designator.
9179         * target.h (get_move_ratio): Declare.
9180
9181 2014-11-06  Marek Polacek  <polacek@redhat.com>
9182
9183         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
9184         Remove vector limit.
9185
9186 2014-11-06  Richard Biener  <rguenther@suse.de>
9187
9188         * match.pd: Implement bitwise binary and unary simplifications
9189         from tree-ssa-forwprop.c.
9190         * fold-const.c (fold_unary_loc): Remove them here.
9191         (fold_binary_loc): Likewise.
9192         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
9193         (truth_valued_ssa_name): Likewise.
9194         (lookup_logical_inverted_value): Likewise.
9195         (simplify_bitwise_binary_1): Likewise.
9196         (hoist_conversion_for_bitop_p): Likewise.
9197         (simplify_bitwise_binary_boolean): Likewise.
9198         (simplify_bitwise_binary): Likewise.
9199         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
9200         and simplify_bitwise_binary.
9201         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
9202         (decision_tree::insert): Also insert non-expressions.
9203
9204 2014-11-06  Hale Wang  <hale.wang@arm.com>
9205
9206         * config/arm/arm-cores.def: Add support for
9207         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
9208         cortex-m1.small-multiply.
9209         * config/arm/arm-tables.opt: Regenerate.
9210         * config/arm/arm-tune.md: Regenerate.
9211         * config/arm/arm.c: Update the rtx-costs for MUL.
9212         * config/arm/bpabi.h: Handle
9213         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
9214         cortex-m1.small-multiply.
9215         * doc/invoke.texi: Document
9216         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
9217         cortex-m1.small-multiply.
9218
9219 2014-11-06  Hale Wang  <hale.wang@arm.com>
9220
9221         * config/arm/arm.c: Add cortex-m7 tune.
9222         * config/arm/arm-cores.def: Use cortex-m7 tune.
9223
9224 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
9225
9226         PR target/63538
9227         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
9228         (ix86_encode_section_info): Do not check for non-automatic varibles
9229         when setting SYMBOL_FLAG_FAR_ADDR flag.
9230         (x86_64_elf_select_section): Do not check ix86_cmodel here.
9231         (x86_64_elf_unique_section): Ditto.
9232         (x86_elf_aligned_common): Emit tab before .largecomm.
9233
9234 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
9235
9236         PR preprocessor/9449
9237         * doc/cpp.texi (Character sets, Tokenization)
9238         (Implementation-defined behavior): Don't refer to UCNs in
9239         identifiers requiring -fextended-identifiers.
9240         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
9241         by default for C99 and later and C++.
9242         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
9243         identifiers needing -fextended-identifiers.
9244
9245 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
9246
9247         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
9248         for 512-bit wide modes.
9249         (expand_vec_perm_1): Use correct versions of patterns.
9250         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
9251         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
9252
9253 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
9254
9255         * ipa-chkp.c: New.
9256         * ipa-chkp.h: New.
9257         * tree-chkp.c: New.
9258         * tree-chkp.h: New.
9259         * tree-chkp-opt.c: New.
9260         * rtl-chkp.c: New.
9261         * rtl-chkp.h: New.
9262         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
9263         tree-chkp-opt.o.
9264         (GTFILES): Add tree-chkp.c.
9265         * mode-classes.def (MODE_POINTER_BOUNDS): New.
9266         * tree.def (POINTER_BOUNDS_TYPE): New.
9267         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
9268         (POINTER_BOUNDS_MODE): New.
9269         (make_pointer_bounds_mode): New.
9270         * machmode.h (POINTER_BOUNDS_MODE_P): New.
9271         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
9272         (layout_type): Support POINTER_BOUNDS_TYPE.
9273         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
9274         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
9275         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
9276         (type_contains_placeholder_1): Likewise.
9277         (build_common_tree_nodes): Initialize
9278         pointer_bounds_type_node.
9279         * tree.h (POINTER_BOUNDS_TYPE_P): New.
9280         (pointer_bounds_type_node): New.
9281         (POINTER_BOUNDS_P): New.
9282         (BOUNDED_TYPE_P): New.
9283         (BOUNDED_P): New.
9284         (CALL_WITH_BOUNDS_P): New.
9285         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
9286         (gimple_call_with_bounds_p): New.
9287         (gimple_call_set_with_bounds): New.
9288         (gimple_return_retbnd): New.
9289         (gimple_return_set_retbnd): New
9290         * gimple.c (gimple_build_return): Increase number of ops
9291         for return statement.
9292         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
9293         flag.
9294         * gimple-pretty-print.c (dump_gimple_return): Print second op.
9295         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
9296         * gimplify.c (gimplify_init_constructor): Avoid infinite
9297         loop during gimplification of bounds initializer.
9298         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
9299         (special_function_p): Use original decl name when analyzing
9300         instrumentation clone.
9301         (arg_data): Add fields special_slot, pointer_arg and
9302         pointer_offset.
9303         (store_bounds): New.
9304         (emit_call_1): Propagate instrumentation flag for CALL.
9305         (initialize_argument_information): Compute pointer_arg,
9306         pointer_offset and special_slot for pointer bounds arguments.
9307         (finalize_must_preallocate): Preallocate when storing bounds
9308         in bounds table.
9309         (compute_argument_addresses): Skip pointer bounds.
9310         (expand_call): Store bounds into tables separately.  Return
9311         result joined with resulting bounds.
9312         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
9313         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
9314         (expand_return): Add returned bounds arg.  Handle returned bounds.
9315         (expand_gimple_stmt_1): Adjust to new expand_return signature.
9316         (gimple_expand_cfg): Reset rtx bounds map.
9317         * expr.c: Include tree-chkp.h, rtl-chkp.h.
9318         (expand_assignment): Handle returned bounds.
9319         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
9320         target argument.  Handle bounds returned by calls.
9321         (store_expr): Now wraps store_expr_with_bounds.
9322         * expr.h (store_expr_with_bounds): New.
9323         * function.c: Include tree-chkp.h, rtl-chkp.h.
9324         (bounds_parm_data): New.
9325         (use_register_for_decl): Do not registerize decls used for bounds
9326         stores and loads.
9327         (assign_parms_augmented_arg_list): Add bounds of the result
9328         structure pointer as the second argument.
9329         (assign_parm_find_entry_rtl): Mark bounds are never passed on
9330         the stack.
9331         (assign_parm_is_stack_parm): Likewise.
9332         (assign_parm_load_bounds): New.
9333         (assign_bounds): New.
9334         (assign_parms): Load bounds and determine a location for
9335         returned bounds.
9336         (diddle_return_value_1): New.
9337         (diddle_return_value): Handle returned bounds.
9338         * function.h (rtl_data): Add field for returned bounds.
9339         * varasm.c: Include tree-chkp.h.
9340         (output_constant): Support POINTER_BOUNDS_TYPE.
9341         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
9342         (ultimate_transparent_alias_target): Move up.
9343         (make_decl_rtl): For instrumented function use
9344         name of the original decl.
9345         (assemble_start_function): Mark function as global
9346         in case it is instrumentation clone of the global
9347         function.
9348         (do_assemble_alias): Follow transparent alias chain
9349         for identifier.  Check if original alias is public.
9350         (maybe_assemble_visibility): Use visibility of the
9351         original function for instrumented version.
9352         (default_unique_section): Likewise.
9353         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
9354         (init_emit_once): Build pointer bounds zero constants.
9355         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
9356         * target.def (builtin_chkp_function): New.
9357         (chkp_bound_type): New.
9358         (chkp_bound_mode): New.
9359         (chkp_make_bounds_constant): New.
9360         (chkp_initialize_bounds): New.
9361         (load_bounds_for_arg): New.
9362         (store_bounds_for_arg): New.
9363         (load_returned_bounds): New.
9364         (store_returned_bounds): New.
9365         (chkp_function_value_bounds): New.
9366         (setup_incoming_vararg_bounds): New.
9367         (function_arg): Update hook description with new possible return
9368         value CONST_INT.
9369         * targhooks.h (default_load_bounds_for_arg): New.
9370         (default_store_bounds_for_arg): New.
9371         (default_load_returned_bounds): New.
9372         (default_store_returned_bounds): New.
9373         (default_chkp_bound_type): New.
9374         (default_chkp_bound_mode): New.
9375         (default_builtin_chkp_function): New.
9376         (default_chkp_function_value_bounds): New.
9377         (default_chkp_make_bounds_constant): New.
9378         (default_chkp_initialize_bounds): New.
9379         (default_setup_incoming_vararg_bounds): New.
9380         * targhooks.c (default_load_bounds_for_arg): New.
9381         (default_store_bounds_for_arg): New.
9382         (default_load_returned_bounds): New.
9383         (default_store_returned_bounds): New.
9384         (default_chkp_bound_type): New.
9385         (default_chkp_bound_mode); New.
9386         (default_builtin_chkp_function): New.
9387         (default_chkp_function_value_bounds): New.
9388         (default_chkp_make_bounds_constant): New.
9389         (default_chkp_initialize_bounds): New.
9390         (default_setup_incoming_vararg_bounds): New.
9391         * builtin-types.def (BT_BND): New.
9392         (BT_FN_PTR_CONST_PTR): New.
9393         (BT_FN_CONST_PTR_CONST_PTR): New.
9394         (BT_FN_BND_CONST_PTR): New.
9395         (BT_FN_CONST_PTR_BND): New.
9396         (BT_FN_PTR_CONST_PTR_SIZE): New.
9397         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
9398         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
9399         (BT_FN_VOID_CONST_PTR_SIZE): New.
9400         (BT_FN_VOID_PTR_BND): New.
9401         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
9402         (BT_FN_BND_CONST_PTR_SIZE): New.
9403         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
9404         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
9405         * chkp-builtins.def: New.
9406         * builtins.def: include chkp-builtins.def.
9407         (DEF_CHKP_BUILTIN): New.
9408         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
9409         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
9410         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
9411         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
9412         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
9413         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
9414         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
9415         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
9416         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
9417         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
9418         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
9419         (std_expand_builtin_va_start): Init bounds for va_list.
9420         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
9421         __CHKP__ macro when Pointer Bounds Checker is on.
9422         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
9423         * passes.def (pass_ipa_chkp_versioning): New.
9424         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
9425         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
9426         (pass_chkp_instrumentation_passes): New.
9427         (pass_ipa_chkp_produce_thunks): New.
9428         (pass_local_optimization_passes): New.
9429         (pass_chkp_opt): New.
9430         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
9431         (make_pass_ipa_chkp_produce_thunks): New.
9432         (make_pass_chkp): New.
9433         (make_pass_chkp_opt): New.
9434         (make_pass_early_local_passes): Renamed to ...
9435         (make_pass_build_ssa_passes): This.
9436         (make_pass_chkp_instrumentation_passes): New.
9437         (make_pass_local_optimization_passes): New.
9438         * passes.c (pass_manager::execute_early_local_passes): Execute
9439         early passes in three steps.
9440         (execute_all_early_local_passes): Renamed to ...
9441         (execute_build_ssa_passes): This.
9442         (pass_data_early_local_passes): Renamed to ...
9443         (pass_data_build_ssa_passes): This.
9444         (pass_early_local_passes): Renamed to ...
9445         (pass_build_ssa_passes): This.
9446         (pass_data_chkp_instrumentation_passes): New.
9447         (pass_chkp_instrumentation_passes): New.
9448         (pass_data_local_optimization_passes): New.
9449         (pass_local_optimization_passes): New.
9450         (make_pass_early_local_passes): Renamed to ...
9451         (make_pass_build_ssa_passes): This.
9452         (make_pass_chkp_instrumentation_passes): New.
9453         (make_pass_local_optimization_passes): New.
9454         * c-family/c.opt (fcheck-pointer-bounds): New.
9455         (fchkp-check-incomplete-type): New.
9456         (fchkp-zero-input-bounds-for-main): New.
9457         (fchkp-first-field-has-own-bounds): New.
9458         (fchkp-narrow-bounds): New.
9459         (fchkp-narrow-to-innermost-array): New.
9460         (fchkp-optimize): New.
9461         (fchkp-use-fast-string-functions): New.
9462         (fchkp-use-nochk-string-functions): New.
9463         (fchkp-use-static-bounds): New.
9464         (fchkp-use-static-const-bounds): New.
9465         (fchkp-treat-zero-dynamic-size-as-infinite): New.
9466         (fchkp-check-read): New.
9467         (fchkp-check-write): New.
9468         (fchkp-store-bounds): New.
9469         (fchkp-instrument-calls): New.
9470         (fchkp-instrument-marked-only): New.
9471         (Wchkp): New.
9472         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
9473         (handle_bnd_legacy): New.
9474         (handle_bnd_instrument): New.
9475         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
9476         and bnd_instrument.  Fix documentation.
9477         (c_common_format_attribute_table): Likewsie.
9478         * toplev.c: include tree-chkp.h.
9479         (process_options): Check Pointer Bounds Checker is supported.
9480         (compile_file): Add chkp_finish_file call.
9481         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
9482         to handle instrumentation clones properly.
9483         (propagate_constants_accross_call): Do not propagate
9484         through instrumentation thunks.
9485         * ipa-pure-const.c (propagate_pure_const): Support
9486         IPA_REF_CHKP.
9487         * ipa-inline.c (early_inliner): Check edge has summary allocated.
9488         * ipa-split.c: Include tree-chkp.h.
9489         (find_retbnd): New.
9490         (split_part_set_ssa_name_p): New.
9491         (consider_split): Do not split retbnd and retval
9492         producers.
9493         (insert_bndret_call_after): new.
9494         (split_function): Propagate Pointer Bounds Checker
9495         instrumentation marks and handle returned bounds.
9496         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
9497         into bit field and add with_bounds field.
9498         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
9499         with_bounds field for instrumented calls.
9500         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
9501         CALL_WITH_BOUNDS_P flag for calls.
9502         * tree-ssa-ccp.c: Include tree-chkp.h.
9503         (insert_clobber_before_stack_restore): Handle
9504         BUILT_IN_CHKP_BNDRET calls.
9505         * tree-ssa-dce.c: Include tree-chkp.h.
9506         (propagate_necessity): For free call fed by alloc check
9507         bounds are also provided by the same alloc.
9508         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
9509         used by free calls.
9510         * tree-inline.c: Include tree-chkp.h.
9511         (declare_return_variable): Add arg holding
9512         returned bounds slot.  Create and initialize returned bounds var.
9513         (remap_gimple_stmt): Handle returned bounds.
9514         Return sequence of statements instead of a single statement.
9515         (insert_init_stmt): Add declaration.
9516         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
9517         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
9518         Properly handle bounds in va_arg_pack and va_arg_pack_len.
9519         (expand_call_inline): Handle returned bounds.  Add bounds copy
9520         for generated mem to mem assignments.
9521         * tree-inline.h (copy_body_data): Add fields retbnd and
9522         assign_stmts.
9523         * value-prof.c: Include tree-chkp.h.
9524         (gimple_ic): Support returned bounds.
9525         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
9526         with "chkp ctor" and "bnd_legacy" attributes.
9527         (symtab_remove_unreachable_nodes): Keep initial values for
9528         pointer bounds to be used for checks eliminations.
9529         (process_references): Handle IPA_REF_CHKP.
9530         (walk_polymorphic_call_targets): Likewise.
9531         * ipa-visibility.c (cgraph_externally_visible_p): Mark
9532         instrumented 'main' as externally visible.
9533         (function_and_variable_visibility): Filter instrumentation
9534         thunks.
9535         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
9536         field.
9537         (cgraph_node): Add instrumented_version, orig_decl and
9538         instrumentation_clone fields.
9539         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
9540         (varpool_node): Add need_bounds_init field.
9541         (cgraph_local_p): New.
9542         * cgraph.c: Include tree-chkp.h.
9543         (cgraph_node::remove): Fix instrumented_version
9544         of the referenced node if any.
9545         (cgraph_node::dump): Dump instrumentation_clone and
9546         instrumented_version fields.
9547         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
9548         references and instrumentation thunks.
9549         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
9550         all not instrumented instrumentation clones alive.
9551         (cgraph_redirect_edge_call_stmt_to_callee): Support
9552         returned bounds.
9553         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
9554         reference.
9555         (cgraph_rebuild_references): Likewise.
9556         * cgraphunit.c: Include tree-chkp.h.
9557         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
9558         function version.
9559         (varpool_finalize_decl): Register statically initialized decls
9560         in Pointer Bounds Checker.
9561         (walk_polymorphic_call_targets): Do not mark generated call to
9562         __builtin_unreachable as with_bounds.
9563         (output_weakrefs): If there are both instrumented and original
9564         versions, output only one of them.
9565         (cgraph_node::expand_thunk): Set with_bounds flag
9566         for created call statement.
9567         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
9568         (ipa_ref): increase size of use field.
9569         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
9570         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
9571         (ctor_for_folding): Do not fold constant bounds vars.
9572         * lto-streamer.h (LTO_minor_version): Change minor version from
9573         0 to 1.
9574         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
9575         pointer bounds.
9576         (lto_output_node): Output instrumentation_clone,
9577         thunk.add_pointer_bounds_args and orig_decl field.
9578         (lto_output_ref): Adjust to new ipa_ref::use field size.
9579         (input_overwrite_node): Read instrumentation_clone field.
9580         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
9581         fields.
9582         (input_ref): Adjust to new ipa_ref::use field size.
9583         (input_cgraph_1): Compute instrumented_version fields and restore
9584         IDENTIFIER_TRANSPARENT_ALIAS chains.
9585         (lto_output_varpool_node): Output
9586         need_bounds_init value.
9587         (input_varpool_node): Read need_bounds_init value.
9588         * lto-partition.c (add_symbol_to_partition_1): Keep original
9589         and instrumented versions together.
9590         (privatize_symbol_name): Restore transparent alias chain if required.
9591         (add_references_to_partition): Add references to pointer bounds vars.
9592         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
9593         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
9594         (gen_type_die_with_usage): Skip pointer bounds.
9595         (dwarf2out_global_decl): Likewise.
9596         (is_base_type): Support POINTER_BOUNDS_TYPE.
9597         (gen_formal_types_die): Skip pointer bounds.
9598         (gen_decl_die): Likewise.
9599         * var-tracking.c (vt_add_function_parameters): Skip
9600         bounds parameters.
9601         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
9602         thunk still exists.
9603         (sem_variable::merge): Reset need_bounds_init flag.
9604         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
9605         and attributes.
9606         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9607         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9608         (TARGET_LOAD_RETURNED_BOUNDS): New.
9609         (TARGET_STORE_RETURNED_BOUNDS): New.
9610         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9611         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9612         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9613         (TARGET_CHKP_BOUND_TYPE): New.
9614         (TARGET_CHKP_BOUND_MODE): New.
9615         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9616         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9617         * doc/tm.texi: Regenerated.
9618         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
9619         (BND32mode): New.
9620         (BND64mode): New.
9621         * doc/invoke.texi (-mmpx): New.
9622         (-mno-mpx): New.
9623         (chkp-max-ctor-size): New.
9624         * config/i386/constraints.md (w): New.
9625         (Ti): New.
9626         (Tb): New.
9627         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
9628         * config/i386/i386-modes.def (BND32): New.
9629         (BND64): New.
9630         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
9631         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
9632         (regclass_map): Add bound registers.
9633         (dbx_register_map): Likewise.
9634         (dbx64_register_map): Likewise.
9635         (svr4_dbx_register_map): Likewise.
9636         (isa_opts): Add -mmpx.
9637         (PTA_MPX): New.
9638         (ix86_option_override_internal): Support MPX ISA.
9639         (ix86_conditional_register_usage): Support bound registers.
9640         (ix86_code_end): Add MPX bnd prefix.
9641         (output_set_got): Likewise.
9642         (print_reg): Avoid prefixes for bound registers.
9643         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
9644         (ix86_print_operand_punct_valid_p): Likewise.
9645         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
9646         UNSPEC_BNDLDX_ADDR.
9647         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
9648         (ix86_class_likely_spilled_p): Add bound regs support.
9649         (ix86_hard_regno_mode_ok): Likewise.
9650         (x86_order_regs_for_local_alloc): Likewise.
9651         (ix86_bnd_prefixed_insn_p): New.
9652         (ix86_builtins): Add
9653         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
9654         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
9655         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
9656         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
9657         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
9658         IX86_BUILTIN_BNDUPPER.
9659         (builtin_isa): Add leaf_p and nothrow_p fields.
9660         (def_builtin): Initialize leaf_p and nothrow_p.
9661         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
9662         flags.
9663         (bdesc_mpx): New.
9664         (bdesc_mpx_const): New.
9665         (ix86_init_mpx_builtins): New.
9666         (ix86_init_builtins): Call ix86_init_mpx_builtins.
9667         (ix86_emit_cmove): New.
9668         (ix86_emit_move_max): New.
9669         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
9670         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
9671         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
9672         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
9673         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
9674         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
9675         (ix86_function_value_bounds): New.
9676         (ix86_builtin_mpx_function): New.
9677         (ix86_get_arg_address_for_bt): New.
9678         (ix86_load_bounds): New.
9679         (ix86_store_bounds): New.
9680         (ix86_load_returned_bounds): New.
9681         (ix86_store_returned_bounds): New.
9682         (ix86_mpx_bound_mode): New.
9683         (ix86_make_bounds_constant): New.
9684         (ix86_initialize_bounds):
9685         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9686         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9687         (TARGET_LOAD_RETURNED_BOUNDS): New.
9688         (TARGET_STORE_RETURNED_BOUNDS): New.
9689         (TARGET_CHKP_BOUND_MODE): New.
9690         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9691         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9692         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9693         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9694         (ix86_option_override_internal): Do not
9695         support x32 with MPX.
9696         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
9697         and force_bnd_pass.
9698         (function_arg_advance_32): Return number of used integer
9699         registers.
9700         (function_arg_advance_64): Likewise.
9701         (function_arg_advance_ms_64): Likewise.
9702         (ix86_function_arg_advance): Handle pointer bounds.
9703         (ix86_function_arg): Likewise.
9704         (ix86_function_value_regno_p): Mark fisrt bounds registers as
9705         possible function value.
9706         (ix86_function_value_1): Handle pointer bounds type/mode
9707         (ix86_return_in_memory): Likewise.
9708         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
9709         (ix86_expand_call): Generate returned bounds.
9710         (ix86_setup_incoming_vararg_bounds): New.
9711         (ix86_va_start): Initialize bounds for pointers in va_list.
9712         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9713         * config/i386/i386.h (TARGET_MPX): New.
9714         (TARGET_MPX_P): New.
9715         (FIRST_PSEUDO_REGISTER): Fix to new value.
9716         (FIXED_REGISTERS): Add bound registers.
9717         (CALL_USED_REGISTERS): Likewise.
9718         (REG_ALLOC_ORDER): Likewise.
9719         (HARD_REGNO_NREGS): Likewise.
9720         (VALID_BND_REG_MODE): New.
9721         (FIRST_BND_REG): New.
9722         (LAST_BND_REG): New.
9723         (reg_class): Add BND_REGS.
9724         (REG_CLASS_NAMES): Likewise.
9725         (REG_CLASS_CONTENTS): Likewise.
9726         (BND_REGNO_P): New.
9727         (ANY_BND_REG_P): New.
9728         (BNDmode): New.
9729         (HI_REGISTER_NAMES): Add bound registers.
9730         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
9731         stdarg fields.
9732         * config/i386/i386.md (UNSPEC_BNDMK): New.
9733         (UNSPEC_BNDMK_ADDR): New.
9734         (UNSPEC_BNDSTX): New.
9735         (UNSPEC_BNDLDX): New.
9736         (UNSPEC_BNDLDX_ADDR): New.
9737         (UNSPEC_BNDCL): New.
9738         (UNSPEC_BNDCU): New.
9739         (UNSPEC_BNDCN): New.
9740         (UNSPEC_MPX_FENCE): New.
9741         (UNSPEC_SIZEOF): New.
9742         (BND0_REG): New.
9743         (BND1_REG): New.
9744         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9745         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9746         (prefix_rep): Check for bnd prefix.
9747         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9748         (length_nobnd): New.
9749         (length): Use length_nobnd when specified.
9750         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9751         (BND): New.
9752         (bnd_ptr): New.
9753         (BNDCHECK): New.
9754         (bndcheck): New.
9755         (*jcc_1): Add MPX bnd prefix.
9756         (*jcc_2): Likewise.
9757         (jump): Likewise.
9758         (*indirect_jump): Likewise.
9759         (*tablejump_1): Likewise.
9760         (simple_return_internal): Likewise.
9761         (simple_return_internal_long): Likewise.
9762         (simple_return_pop_internal): Likewise.
9763         (simple_return_indirect_internal): Likewise.
9764         (<mode>_mk): New.
9765         (*<mode>_mk): New.
9766         (mov<mode>): New.
9767         (*mov<mode>_internal_mpx): New.
9768         (<mode>_<bndcheck>): New.
9769         (*<mode>_<bndcheck>): New.
9770         (<mode>_ldx): New.
9771         (*<mode>_ldx): New.
9772         (<mode>_stx): New.
9773         (*<mode>_stx): New.
9774         move_size_reloc_<mode>): New.
9775         * config/i386/predicates.md (address_mpx_no_base_operand): New.
9776         (address_mpx_no_index_operand): New.
9777         (bnd_mem_operator): New.
9778         (symbol_operand): New.
9779         (x86_64_immediate_size_operand): New.
9780         * config/i386/i386.opt (mmpx): New.
9781         * config/i386/i386-builtin-types.def (BND): New.
9782         (ULONG): New.
9783         (BND_FTYPE_PCVOID_ULONG): New.
9784         (VOID_FTYPE_BND_PCVOID): New.
9785         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
9786         (BND_FTYPE_PCVOID_PCVOID): New.
9787         (BND_FTYPE_PCVOID): New.
9788         (BND_FTYPE_BND_BND): New.
9789         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
9790         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
9791         (ULONG_FTYPE_VOID): New.
9792         (PVOID_FTYPE_BND): New.
9793
9794 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
9795
9796         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
9797         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
9798         pass_cleanup_barriers, pass_delay_slots,
9799         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9800         pass_shorten_branches, pass_est_nothrow_function_flags,
9801         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9802         into pass_late_compilation.
9803         (pass_late_compilation): Add.
9804         * passes.c (pass_data_late_compilation, pass_late_compilation,
9805         make_pass_late_compilation): New.
9806         * timevar.def (TV_LATE_COMPILATION): New.
9807
9808         * target.def (omit_struct_return_reg): New data hook.
9809         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9810         * doc/tm.texi: Regenerate.
9811         * function.c (expand_function_end): Use it.
9812
9813         * target.def (no_register_allocation): New data hook.
9814         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9815         * doc/tm.texi: Regenerate.
9816         * ira.c (gate_ira): New function.
9817         (pass_data_ira): Set has_gate.
9818         (pass_ira): Add a gate function.
9819         (pass_data_reload): Likewise.
9820         (pass_reload): Add a gate function.
9821         (pass_ira): Use it.
9822         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9823         no register allocation happens on the target and return.
9824         * final.c (alter_subreg): Ensure register is not a pseudo before
9825         calling simplify_subreg.
9826         (output_operand): Assert that x isn't a pseudo only if doing
9827         register allocation.
9828
9829         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9830         global vars.
9831
9832         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9833         sorry if necessary.
9834
9835 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
9836
9837         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9838         * rtl.h (SUBREG_P): New macro added.
9839
9840 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
9841
9842         * config/aarch64/aarch64-builtins.c
9843         (aarch64_build_scalar_type): Remove.
9844         (aarch64_scalar_builtin_types, aarch64_simd_type,
9845         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9846         aarch64_mangle_builtin_vector_type,
9847         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9848         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9849         aarch64_init_simd_builtin_types,
9850         aarch64_init_simd_builtin_scalar_types): New.
9851         (aarch64_init_simd_builtins): Refactor.
9852         (aarch64_init_crc32_builtins): Fixup with qualifier.
9853         * config/aarch64/aarch64-protos.h
9854         (aarch64_mangle_builtin_type): Export.
9855         * config/aarch64/aarch64-simd-builtin-types.def: New.
9856         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9857         (aarch64_mangle_type): Refactor.
9858         * config/aarch64/arm_neon.h: Declare vector types based on
9859         internal types.
9860         * config/aarch64/t-aarch64: Update dependency.
9861
9862 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
9863
9864         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9865         atomic_update_decl): Guard declaration with #ifdef.
9866
9867 2014-11-04  Marek Polacek  <polacek@redhat.com>
9868
9869         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9870
9871 2014-11-04  Marek Polacek  <polacek@redhat.com>
9872
9873         * Makefile.in (OBJS): Add sanopt.o.
9874         (GTFILES): Add sanopt.c.
9875         * asan.h (asan_expand_check_ifn): Declare.
9876         * asan.c (asan_expand_check_ifn): No longer static.
9877         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9878         * sanopt.c: ...here.  New file.
9879
9880 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
9881             Wilco Dijkstra  <wilco.dijkstra@arm.com>
9882
9883         PR target/63293
9884         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9885         stack adjustment.
9886
9887 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
9888
9889         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9890         also verify that mode is equal to the mode of op0.
9891
9892         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9893         emit into a sequence instead.
9894
9895 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9896
9897         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9898
9899 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9900
9901         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9902         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9903         (reduc_smax_<mode> *2): Rename to...
9904         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9905         (reduc_umin_<mode> *2): Rename to...
9906         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9907         (reduc_umax_<mode> *2): Rename to...
9908         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9909
9910 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9911
9912         config/arm/neon.md (reduc_plus_*): Rename to...
9913         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9914
9915 2014-11-04  Michael Collison <michael.collison@linaro.org>
9916
9917         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9918         to support constraints for CONST_INT in atomic operations.
9919         * config/aarch64/atomics.md
9920         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9921         (atomic_nand<mode>): Likewise.
9922         (atomic_fetch_<atomic_optab><mode>): Likewise.
9923         (atomic_fetch_nand<mode>): Likewise.
9924         (atomic_<atomic_optab>_fetch<mode>): Likewise.
9925         (atomic_nand_fetch<mode>): Likewise.
9926
9927 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9928
9929         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9930         of __ARM_FEATURE_IDIV.
9931
9932 2014-11-04  Marek Polacek  <polacek@redhat.com>
9933
9934         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9935
9936 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9937
9938         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9939
9940 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9941
9942         Revert:
9943         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9944         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9945         Allow CC mode if HAVE_cbranchcc4.
9946
9947 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9948
9949         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9950         with -fdump-go-spec.  Anonymous substructures are now flattened and
9951         replaced by their fields (record) or the first named, non-bitfield
9952         field (union).
9953
9954 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9955
9956         * input.c (expand_location_to_spelling_point): Fix typo.
9957         (expansion_point_location_if_in_system_header): Fix comment.
9958
9959 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9960
9961         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9962
9963 2014-11-03  Richard Biener  <rguenther@suse.de>
9964
9965         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9966         like ordinary operations.
9967         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9968         as NOP_EXPR.
9969
9970 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
9971
9972         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9973         macros.
9974         * configure, config.h.in: Regenerate.
9975         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9976         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9977         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9978         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9979         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9980         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9981         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9982         (atomic_update_decl): New static variables.
9983         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9984         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9985         and __atomic_feupdateenv for soft-float and no-FPRs.
9986
9987 2014-11-03  Richard Biener  <rguenther@suse.de>
9988
9989         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
9990         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9991         * fold-const.c (fold_unary_loc): Remove them here.
9992         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9993         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9994         GIMPLE_UNARY_RHS case.
9995         (gimple_fold_stmt_to_constant_1): Likewise.
9996         (replace_stmt_with_simplification): Fix inverted comparison.
9997
9998 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9999
10000         PR tree-optimization/60770
10001         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
10002         statement should be removed.
10003         (maybe_register_def): Likewise. Replace clobbers with default
10004         definitions.
10005         (rewrite_dom_walker::before_dom_children): Remove statement if
10006         rewrite_update_stmt says so.
10007         * tree-ssa-live.c: Include tree-ssa.h.
10008         (set_var_live_on_entry): Do not mark undefined variables as live.
10009         (verify_live_on_entry): Do not check undefined variables.
10010         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
10011         of partially undefined variables.
10012         * tree-ssa.c (ssa_undefined_value_p): Likewise.
10013         (execute_update_addresses_taken): Do not drop clobbers.
10014
10015 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
10016
10017         PR tree-optimization/63666
10018         * fold-const.c: Include "optabs.h".
10019         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
10020         can_vec_perm_p permutation to one that is not.
10021
10022 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
10023
10024         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
10025
10026 2014-11-03  Andrew Pinski  <apinski@cavium.com>
10027
10028         * config/mips/mips-cpus.def (octeon3): New cpu.
10029         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
10030         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
10031         of the comparison no longer matches mode of the operands.
10032         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
10033         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
10034         (TARGET_OCTEON2): Likewise.
10035         (TUNE_OCTEON): Add Octeon3.
10036         * config/mips/mips.md (processor): Add octeon3.
10037         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
10038         (octeon_arith): Add octeon3.
10039         (octeon_condmove): Remove.
10040         (octeon_condmove_o1): New reservation.
10041         (octeon_condmove_o2): New reservation.
10042         (octeon_condmove_o3_int_on_cc): New reservation.
10043         (octeon_load_o2): Add octeon3.
10044         (octeon_cop_o2): Likewise.
10045         (octeon_store): Likewise.
10046         (octeon_brj_o2): Likewise.
10047         (octeon_imul3_o2): Likewise.
10048         (octeon_imul_o2): Likewise.
10049         (octeon_mfhilo_o2): Likewise.
10050         (octeon_imadd_o2): Likewise.
10051         (octeon_idiv_o2_si): Likewise.
10052         (octeon_idiv_o2_di): Likewise.
10053         (octeon_fpu): Add to the automaton.
10054         (octeon_fpu): New cpu unit.
10055         (octeon_condmove_o2): Check for non floating point modes.
10056         (octeon_load_o2): Add prefetchx.
10057         (octeon_cop_o2): Don't check for octeon3.
10058         (octeon3_faddsubcvt): New reservation.
10059         (octeon3_fmul): Likewise.
10060         (octeon3_fmadd): Likewise.
10061         (octeon3_div_sf): Likewise.
10062         (octeon3_div_df): Likewise.
10063         (octeon3_sqrt_sf): Likewise.
10064         (octeon3_sqrt_df): Likewise.
10065         (octeon3_rsqrt_sf): Likewise.
10066         (octeon3_rsqrt_df): Likewise.
10067         (octeon3_fabsnegmov): Likewise.
10068         (octeon_fcond): Likewise.
10069         (octeon_fcondmov): Likewise.
10070         (octeon_fpmtc1): Likewise.
10071         (octeon_fpmfc1): Likewise.
10072         (octeon_fpload): Likewise.
10073         (octeon_fpstore): Likewise.
10074         * config/mips/mips-tables.opt: Regenerate.
10075         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
10076
10077 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
10078
10079         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
10080         Allow CC mode if HAVE_cbranchcc4.
10081
10082 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
10083
10084         * config/arc/arc.c (write_ext_corereg_1): Delete.
10085         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
10086
10087 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
10088
10089         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
10090         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
10091
10092 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
10093
10094         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
10095         (small_data_pattern_1): Delete.
10096         (small_data_pattern): Use FOR_EACH_SUBRTX.
10097
10098 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
10099
10100         * config/arc/arc.c: Include rtl-iter.h.
10101         (arc_rewrite_small_data_1): Delete.
10102         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
10103
10104 2014-11-02  Michael Collison  <michael.collison@linaro.org>
10105
10106         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
10107         to support vector modes.
10108         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
10109
10110 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
10111
10112         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
10113         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
10114         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
10115         * optabs.c: (gen_move_insn): Move to expr.c.
10116         * expr.h: Move protypes and enums to optabs.h.
10117         * expr.c: (gen_move_insn): Relocate from optabs.c.
10118         * genemit.c (main): Include insn-codes.h.
10119         * gengtype.c (open_base_files): Include insn-codes.h.
10120         * asan.c: Include insn-codes.h.
10121         * bb-reorder.c: Ditto.
10122         * builtins.c: Ditto.
10123         * calls.c: Ditto.
10124         * cfgexpand.c: Ditto.
10125         * cilk-common.c: Ditto.
10126         * combine.c: Ditto.
10127         * dojump.c: Ditto.
10128         * dse.c: Ditto.
10129         * except.c: Ditto.
10130         * explow.c: Ditto.
10131         * expmed.c: Ditto.
10132         * function.c: Ditto.
10133         * ifcvt.c: Ditto.
10134         * internal-fn.c: Ditto.
10135         * loop-unroll.c: Ditto.
10136         * lra.c: Ditto.
10137         * modulo-sched.c: Ditto.
10138         * omp-low.c: Ditto.
10139         * postreload.c: Ditto.
10140         * ree.c: Ditto.
10141         * reload.c: Ditto.
10142         * reload1.c: Ditto.
10143         * shrink-wrap.c: Ditto.
10144         * simplify-rtx.c: Ditto.
10145         * stmt.c: Ditto.
10146         * target-globals.c: Ditto.
10147         * targhooks.c: Ditto.
10148         * toplev.c: Ditto.
10149         * tree-if-conv.c: Ditto.
10150         * tree-ssa-forwprop.c: Ditto.
10151         * tree-ssa-loop-prefetch.c: Ditto.
10152         * tree-ssa-math-opts.c: Ditto.
10153         * tree-ssa-phiopt.c: Ditto.
10154         * tree-ssa-reassoc.c: Ditto.
10155         * tree-switch-conversion.c: Ditto.
10156         * tree-vect-data-refs.c: Ditto.
10157         * tree-vect-generic.c: Ditto.
10158         * tree-vect-loop.c: Ditto.
10159         * tree-vect-patterns.c: Ditto.
10160         * tree-vect-slp.c: Ditto.
10161         * tree-vect-stmts.c: Ditto.
10162         * tree-vrp.c: Ditto.
10163         * value-prof.c: Ditto.
10164         * config/aarch64/aarch64-builtins.c: Ditto.
10165         * config/alpha/alpha.c: Ditto.
10166         * config/arm/arm.c: Ditto.
10167         * config/cris/cris.c: Ditto.
10168         * config/epiphany/epiphany.c: Ditto.
10169         * config/frv/frv.c: Ditto.
10170         * config/h8300/h8300.c: Ditto.
10171         * config/ia64/ia64.c: Ditto.
10172         * config/iq2000/iq2000.c: Ditto.
10173         * config/m32c/m32c.c: Ditto.
10174         * config/mep/mep.c: Ditto.
10175         * config/microblaze/microblaze.c: Ditto.
10176         * config/mips/mips.c: Ditto.
10177         * config/mn10300/mn10300.c: Ditto.
10178         * config/moxie/moxie.c: Ditto.
10179         * config/msp430/msp430.c: Ditto.
10180         * config/nios2/nios2.c: Ditto.
10181         * config/pa/pa.c: Ditto.
10182         * config/rl78/rl78.c: Ditto.
10183         * config/rs6000/rs6000.c: Ditto.
10184         * config/rx/rx.c: Ditto.
10185         * config/s390/s390.c: Ditto.
10186         * config/sh/sh.c: Ditto.
10187         * config/sh/sh_treg_combine.cc: Ditto.
10188         * config/spu/spu.c: Ditto.
10189         * config/stormy16/stormy16.c: Ditto.
10190         * config/tilegx/mul-tables.c: Ditto.
10191         * config/tilegx/tilegx.c: Ditto.
10192         * config/tilepro/mul-tables.c: Ditto.
10193         * config/tilepro/tilepro.c: Ditto.
10194         * config/vax/vax.c: Ditto.
10195
10196 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10197
10198         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
10199         (CLEAR_BY_PIECES_P): Likewise.
10200         (SET_BY_PIECES_P): Likewise.
10201         (STORE_BY_PIECES_P): Likewise.
10202         * doc/tm.texi: Regenerate.
10203         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
10204         SET_BY_PIECES_P, STORE_BY_PIECES_P.
10205         * expr.c (MOVE_BY_PIECES_P): Remove.
10206         (CLEAR_BY_PIECES_P): Likewise.
10207         (SET_BY_PIECES_P): Likewise.
10208         (STORE_BY_PIECES_P): Likewise.
10209         (can_move_by_pieces): Rewrite in terms of
10210         targetm.use_by_pieces_infrastructure_p.
10211         (emit_block_move_hints): Likewise.
10212         (can_store_by_pieces): Likewise.
10213         (store_by_pieces): Likewise.
10214         (clear_storage_hints): Likewise.
10215         (emit_push_insn): Likewise.
10216         (expand_constructor): Likewise.
10217
10218 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10219
10220         * config/aarch64/aarch64.c
10221         (aarch64_use_by_pieces_infrastructre_p): New.
10222         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
10223         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
10224
10225 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10226
10227         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
10228         (STORE_BY_PIECES_P): Likewise.
10229         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
10230         (mips_move_by_pieces_p): Rename to...
10231         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
10232         parameters, use the default hook implementation as a
10233         fall-back.
10234
10235 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10236
10237         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
10238         (sh_use_by_pieces_infrastructure_p): Likewise.
10239         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
10240         (STORE_BY_PIECES_P): Likewise.
10241         (SET_BY_PIECES_P): Likewise.
10242
10243 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10244
10245         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
10246         (arc_use_by_pieces_infrastructure_p): Likewise.
10247         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
10248         (CAN_MOVE_BY_PIECES): Likewise.
10249
10250 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10251
10252         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
10253         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
10254         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
10255         (CLEAR_BY_PIECES): Likewise.
10256         (SET_BY_PIECES): Likewise.
10257         (STORE_BY_PIECES): Likewise.
10258
10259 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
10260
10261         * target.def (use_by_pieces_infrastructure_p): New.
10262         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
10263         is deprecated.
10264         (STORE_BY_PIECES_P): Likewise.
10265         (CLEAR_BY_PIECES_P): Likewise.
10266         (SET_BY_PIECES_P): Likewise.
10267         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
10268         * doc/tm.texi: Regenerate.
10269         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
10270         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
10271         (STORE_BY_PIECES_P): Likewise.
10272         (CLEAR_BY_PIECES_P): Likewise.
10273         (SET_BY_PIECES_P): Likewise.
10274         (STORE_MAX_PIECES): Move to...
10275         * defaults.h (STORE_MAX_PIECES): ...here.
10276         * targhooks.c (get_move_ratio): New.
10277         (default_use_by_pieces_infrastructure_p): Likewise.
10278         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
10279         * target.h (by_pieces_operation): New.
10280
10281 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
10282
10283         PR target/63702
10284         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
10285         assignment to 'nargs' variable.
10286
10287 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
10288
10289         PR target/63620
10290         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
10291         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
10292         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
10293         be reloaded through memory.
10294         (*pushxf): Ditto.
10295         (*pushdf): Ditto.
10296
10297 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
10298
10299         PR rtl-optimization/63659
10300         * ree.c (update_reg_equal_equiv_notes): New function.
10301         (combine_set_extension, transform_ifelse): Use it.
10302
10303 2014-10-31  Jeff Law  <law@redhat.com>
10304
10305         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
10306         and Jonny Grant (collect2).
10307
10308 2014-10-31  Richard Biener  <rguenther@suse.de>
10309
10310         * builtins.c (fold_builtin_atomic_always_lock_free): Use
10311         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
10312         approprate.
10313         (fold_builtin_expect): Likewise.
10314         (integer_valued_real_p): Likewise.
10315         * cfgexpand.c (expand_debug_expr): Likewise.
10316         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
10317         (find_foldable_builtin_expect): Likewise.
10318         * trans-mem.c (thread_private_new_memory): Likewise.
10319         * tree-affine.c (aff_combination_expand): Likewise.
10320         * tree-data-ref.c (initialize_matrix_A): Likewise.
10321         * tree-inline.c (copy_bb): Likewise.
10322         * tree-pretty-print.c (dump_function_name): Likewise.
10323         (print_call_name): Likewise.
10324         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
10325         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
10326         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
10327         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
10328         (vect_recog_widen_mult_pattern): Likewise.
10329         (vect_operation_fits_smaller_type): Likewise.
10330         * tree-vrp.c (find_assert_locations_1): Likewise.
10331         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
10332         converts to NOP_EXPR.
10333
10334 2014-10-31  Richard Biener  <rguenther@suse.de>
10335
10336         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
10337         CONVERT_EXPRs in generated code.
10338         (dt_simplify::gen): Likewise.
10339
10340 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
10341
10342         PR target/63534
10343         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
10344         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
10345         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
10346         using mcount in 32bit PIC mode.
10347         (ix86_elim_entry_set_got): New.
10348         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
10349         in PROLOGUE, delete initial if possible.
10350
10351 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
10352
10353         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
10354         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
10355
10356 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10357
10358         PR tree-optimization/63259
10359         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
10360         rotation left if it is a 16 bit byte swap.
10361         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
10362         and RROTATE_EXPR statements if it is a byte rotation.
10363
10364 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
10365
10366         PR sanitizer/63697
10367         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
10368         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
10369         instead of vr0.min - vr1.min and vr0.max - vr1.max.
10370
10371 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10372
10373         PR ipa/63696
10374         * ipa-icf.c (sem_function::~sem_function): Change free to delete
10375         to avoid alloc-dealloc mismatch with new, called in
10376         ipa_icf::sem_function::init.
10377
10378 2014-10-30  Felix Yang  <felix.yang@huawei.com>
10379
10380         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
10381         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
10382         (xtensa_reorg, xtensa_reorg_loops): New.
10383         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
10384         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
10385         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
10386         (xtensa_doloop_hooks): Define.
10387         * config/xtensa/xtensa.md (doloop_end, loop_end): New
10388         (zero_cost_loop_start): Rewritten.
10389         (zero_cost_loop_end): Likewise.
10390
10391 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
10392
10393         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
10394
10395 2014-10-30  Richard Biener  <rguenther@suse.de>
10396
10397         * genmatch.c: Remove <map>, <utility> and <string> includes.
10398         Include ggc.h and hash-map.h.
10399         (ggc_internal_cleared_alloc): Provide stub definition.
10400         (ggc_free): Likewise.
10401         (struct capture_id_map_hasher): New traits for hash_map.
10402         (cid_map_t): New typedef.
10403         (everywhere else): Replace std::map use with cid_map_t.
10404         * hash-map.h (hash_map::elements): New member function.
10405         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
10406         hash-map.h and $(GGC_H) as dependency.
10407
10408 2014-10-30  Richard Biener  <rguenther@suse.de>
10409
10410         * genmatch.c (capture_info::walk_c_expr): Ignore capture
10411         uses inside TREE_TYPE ().
10412         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
10413         (find_candidates_dom_walker::before_dom_children): Likewise.
10414         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
10415         (replace_profitable_candidates): Likewise.
10416         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
10417         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
10418         * convert.c (convert_to_integer): Use CASE_CONVERT.
10419
10420 2014-10-30  Richard Biener  <rguenther@suse.de>
10421
10422         * match.pd: Implement more patterns that simplify to a single value.
10423         * fold-const.c (fold_binary_loc): Remove them here.
10424         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
10425         (fwprop_ssa_val): Remove restriction on single uses.
10426
10427 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10428
10429         * config/avr/driver-avr.c (avr_set_current_device): Remove.
10430
10431 2014-10-30  Martin Liska  <mliska@suse.cz>
10432
10433         PR ipa/63574
10434         PR ipa/63664
10435         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
10436         (func_checker::compare_gimple_label): Simlified comparison introduced.
10437         * ipa-icf-gimple.h: Missing comment added.
10438
10439 2014-10-30  Jeff Law  <law@redhat.com>
10440
10441         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
10442         argument from rtx to rtx_insn *.
10443         (compute_movmem_length, compute_clrmem_length): Likewise.
10444         (copy_fp_args, length_fp_args): Likewise.
10445         * config/pa/pa.c (legitimize_pic_address): Promote local variable
10446         "insn" from rtx to rtx_insn *.
10447         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
10448         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
10449         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
10450         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
10451         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
10452         (compute_movmem_length, compute_clrmem_length): Likewise.
10453         (copy_fp-args, length_fp_args): Likewise.
10454
10455 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10456
10457         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
10458         scalar typedef.
10459         (CUMULATIVE_ARGS): Guard against target includes.
10460         (machine_function): Likewise.
10461
10462 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10463
10464         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
10465         recog state after aarch64_prev_real_insn call.
10466
10467 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10468
10469         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
10470
10471 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10472
10473         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
10474         (struct machine_function): Gate definition on
10475         !defined(USED_FOR_TARGET).
10476
10477 2014-10-29  DJ Delorie  <dj@redhat.com>
10478
10479         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
10480
10481 2014-10-29  Martin Liska  <mliska@suse.cz>
10482
10483         PR ipa/63587
10484         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
10485         to local declarations.
10486         * function.c (add_local_decl): Implementation moved from header
10487         file, assert introduced for tree type.
10488         * function.h: Likewise.
10489
10490 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10491
10492         * godump.c (go_format_type): Represent "float _Complex" and
10493         "double _Complex" as complex64 or complex128 in Go, as appropriate.
10494
10495 2014-10-29  Richard Biener  <rguenther@suse.de>
10496
10497         * match.pd: Implement a first set of conversion patterns.
10498         * fold-const.c (fold_unary_loc): Remove them here.
10499         * tree-ssa-forwprop.c (simplify_vce): Remove.
10500         (pass_forwprop::execute): Do not call simplify_vce.
10501
10502 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10503
10504         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
10505         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
10506         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
10507         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
10508         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
10509         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
10510         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
10511         config/arc/arc.h, config/arc/predicates.md,
10512         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
10513         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
10514         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
10515         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
10516         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
10517         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
10518         config/cr16/cr16-protos.h, config/cr16/cr16.c,
10519         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
10520         config/darwin-protos.h, config/darwin.c,
10521         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
10522         config/epiphany/epiphany.md, config/fr30/fr30.c,
10523         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
10524         config/h8300/h8300-protos.h, config/h8300/h8300.c,
10525         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
10526         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
10527         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
10528         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
10529         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
10530         config/lm32/lm32-protos.h, config/lm32/lm32.c,
10531         config/m32c/m32c-protos.h, config/m32c/m32c.c,
10532         config/m32r/m32r-protos.h, config/m32r/m32r.c,
10533         config/m68k/m68k-protos.h, config/m68k/m68k.c,
10534         config/mcore/mcore-protos.h, config/mcore/mcore.c,
10535         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
10536         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
10537         config/mips/mips-protos.h, config/mips/mips.c,
10538         config/mmix/mmix-protos.h, config/mmix/mmix.c,
10539         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
10540         config/moxie/moxie.c, config/msp430/msp430-protos.h,
10541         config/msp430/msp430.c, config/nds32/nds32-cost.c,
10542         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
10543         config/nds32/nds32-protos.h, config/nds32/nds32.c,
10544         config/nios2/nios2-protos.h, config/nios2/nios2.c,
10545         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
10546         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
10547         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
10548         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
10549         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
10550         config/s390/predicates.md, config/s390/s390-protos.h,
10551         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
10552         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
10553         config/sh/sh.md, config/sparc/predicates.md,
10554         config/sparc/sparc-protos.h, config/sparc/sparc.c,
10555         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
10556         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
10557         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
10558         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
10559         config/tilepro/tilepro.c, config/v850/v850-protos.h,
10560         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
10561         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
10562         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
10563         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
10564         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
10565         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
10566         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
10567         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
10568         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
10569         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
10570         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
10571         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
10572         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
10573         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
10574         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
10575         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
10576         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
10577         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
10578         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
10579         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
10580         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
10581         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
10582         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
10583         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
10584         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
10585         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
10586         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
10587         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
10588         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
10589         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
10590         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
10591         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
10592         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
10593         var-tracking.c, varasm.c: Remove redundant enum from
10594         machine_mode.
10595         * gengtype.c (main): Treat machine_mode as a scalar typedef.
10596         * genmodes.c (emit_insn_modes_h): Hide inline functions if
10597         USED_FOR_TARGET.
10598
10599 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10600
10601         PR rtl-optimization/63340 (part 2)
10602         * rtl.h (invalid_mode_change_p): Delete.
10603         (valid_mode_changes_for_regno): New function.
10604         * reginfo.c (invalid_mode_change_p): Delete.
10605         (valid_mode_changes_for_regno): New function.
10606         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
10607         classes to registers that are allowed by valid_mode_changes_for_regno.
10608         (setup_regno_cost_classes_by_mode): Likewise.
10609         (print_allocno_costs): Remove invalid_mode_change_p test.
10610         (print_pseudo_costs, find_costs_and_classes): Likewise.
10611
10612 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10613
10614         PR rtl-optimization/63340 (part 1)
10615         * ira-costs.c (all_cost_classes): New variable.
10616         (complete_cost_classes): New function, split out from...
10617         (setup_cost_classes): ...here.
10618         (initiate_regno_cost_classes): Set up all_cost_classes.
10619         (restrict_cost_classes): New function.
10620         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
10621         registers that are valid for the register's mode.
10622         (setup_regno_cost_classes_by_mode): Model the mode cache as a
10623         restriction of all_cost_classes to a particular mode.
10624         (print_allocno_costs): Remove contains_reg_of_mode check.
10625         (print_pseudo_costs, find_costs_and_classes): Likewise.
10626
10627 2014-10-29  Richard Biener  <rguenther@suse.de>
10628
10629         PR tree-optimization/63666
10630         * tree-vect-slp.c (vect_get_mask_element): Properly handle
10631         accessing out-of-bound elements.
10632
10633 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10634             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10635             Anna Tikhonova  <anna.tikhonova@intel.com>
10636             Ilya Tocar  <ilya.tocar@intel.com>
10637             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10638             Ilya Verbin  <ilya.verbin@intel.com>
10639             Kirill Yukhin  <kirill.yukhin@intel.com>
10640             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10641
10642         * config/i386/i386.md
10643         (movhi_internal): Always detect maskmov.
10644         (movqi_internal): Fix target check.
10645
10646 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10647             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10648             Anna Tikhonova  <anna.tikhonova@intel.com>
10649             Ilya Tocar  <ilya.tocar@intel.com>
10650             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10651             Ilya Verbin  <ilya.verbin@intel.com>
10652             Kirill Yukhin  <kirill.yukhin@intel.com>
10653             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10654
10655         * config/i386/avx512bwintrin.h: Add new intrinsics.
10656         * config/i386/avx512vlbwintrin.h: Ditto.
10657         * config/i386/avx512vlintrin.h: Ditto.
10658
10659 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10660
10661         * godump.c (precision_to_units): New helper function.
10662         (go_append_artificial_name): Ditto.
10663         (go_append_decl_name): Ditto.
10664         (go_append_bitfield): Ditto.
10665         (go_get_uinttype_for_precision): Ditto.
10666         (go_append_padding): Ditto.
10667         (go_force_record_alignment): Ditto.
10668         (go_format_type): Represent unions with an array of uints of the size
10669         of the alignment in go.  This fixes the 'random' size of the union's
10670         representation using just the first field.
10671         (go_format_type): Add argument that indicates whether a record is
10672         nested (used for generation of artificial go names).
10673         (go_output_fndecl): Adapt to new go_format_type signature.
10674         (go_output_typedef): Ditto.
10675         (go_output_var): Ditto.
10676         (go_output_var): Prefer to output type as alias (typedef).
10677         (go_format_type): Bitfields in records are simulated as arrays of bytes
10678         in go.
10679
10680         * godump.c (go_format_type): Fix handling of arrays with zero elements.
10681
10682 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10683
10684         * cgraph.h: Flatten.  Remove all include files.
10685         (symbol_table::initialize): Move to cgraph.c.
10686         * cgraph.c: Adjust include files.
10687         (symbol_table::initialize): Relocate from cgraph.h.
10688         * gengtype.c (open_base_files): Adjust include files.
10689         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
10690         included files.
10691         * ipa-inline.h: Remove all include files.
10692         * ipa-prop.h: Ditto.
10693         * ipa-reference.h: Ditto.
10694         * ipa-utils.h: Ditto:
10695         * lto-streamer.h: Remove cgraph.h from include list.
10696         * asan.c: Adjust include files.
10697         * auto-profile.c: Ditto.
10698         * bb-reorder.c: Ditto.
10699         * calls.c: Ditto.
10700         * cfgexpand.c: Ditto.
10701         * cgraphbuild.c: Ditto.
10702         * cgraphclones.c: Ditto.
10703         * cgraphunit.c: Ditto.
10704         * combine.c: Ditto.
10705         * coverage.c: Ditto.
10706         * data-streamer.c: Ditto.
10707         * data-streamer-in.c: Ditto.
10708         * data-streamer-out.c: Ditto.
10709         * dbxout.c: Ditto.
10710         * dwarf2out.c: Ditto.
10711         * except.c: Ditto.
10712         * expr.c: Ditto.
10713         * final.c: Ditto.
10714         * fold-const.c: Ditto.
10715         * ggc-page.c: Ditto.
10716         * gimple-fold.c: Ditto.
10717         * gimple-iterator.c: Ditto.
10718         * gimple-pretty-print.c: Ditto.
10719         * gimple-streamer-in.c: Ditto.
10720         * gimple-streamer-out.c: Ditto.
10721         * gimplify.c: Ditto.
10722         * ipa.c: Ditto.
10723         * ipa-comdats.c: Ditto.
10724         * ipa-cp.c: Ditto.
10725         * ipa-devirt.c: Ditto.
10726         * ipa-icf.c: Ditto.
10727         * ipa-icf-gimple.c: Ditto.
10728         * ipa-inline-analysis.c: Ditto.
10729         * ipa-inline.c: Ditto.
10730         * ipa-inline-transform.c: Ditto.
10731         * ipa-polymorphic-call.c: Ditto.
10732         * ipa-profile.c: Ditto.
10733         * ipa-prop.c: Ditto.
10734         * ipa-pure-const.c: Ditto.
10735         * ipa-ref.c: Ditto.
10736         * ipa-reference.c: Ditto.
10737         * ipa-split.c: Ditto.
10738         * ipa-utils.c: Ditto.
10739         * ipa-visibility.c: Ditto.
10740         * langhooks.c: Ditto.
10741         * lto-cgraph.c: Ditto.
10742         * lto-compress.c: Ditto.
10743         * lto-opts.c: Ditto.
10744         * lto-section-in.c: Ditto.
10745         * lto-section-out.c: Ditto.
10746         * lto-streamer.c: Ditto.
10747         * lto-streamer-in.c: Ditto.
10748         * lto-streamer-out.c: Ditto.
10749         * omp-low.c: Ditto.
10750         * opts-global.c: Ditto.
10751         * passes.c: Ditto.
10752         * predict.c: Ditto.
10753         * print-tree.c: Ditto.
10754         * profile.c: Ditto.
10755         * ree.c: Ditto.
10756         * stor-layout.c: Ditto.
10757         * symtab.c: Ditto.
10758         * toplev.c: Ditto.
10759         * trans-mem.c: Ditto.
10760         * tree.c: Ditto.
10761         * tree-cfg.c: Ditto.
10762         * tree-eh.c: Ditto.
10763         * tree-emutls.c: Ditto.
10764         * tree-inline.c: Ditto.
10765         * tree-nested.c: Ditto.
10766         * tree-pretty-print.c: Ditto.
10767         * tree-profile.c: Ditto.
10768         * tree-sra.c: Ditto.
10769         * tree-ssa-alias.c: Ditto.
10770         * tree-ssa-loop-ivcanon.c: Ditto.
10771         * tree-ssa-loop-ivopts.c: Ditto.
10772         * tree-ssa-pre.c: Ditto.
10773         * tree-ssa-structalias.c: Ditto.
10774         * tree-streamer.c: Ditto.
10775         * tree-streamer-in.c: Ditto.
10776         * tree-streamer-out.c: Ditto.
10777         * tree-switch-conversion.c: Ditto.
10778         * tree-tailcall.c: Ditto.
10779         * tree-vect-data-refs.c: Ditto.
10780         * tree-vectorizer.c: Ditto.
10781         * tree-vect-stmts.c: Ditto.
10782         * tsan.c: Ditto.
10783         * ubsan.c: Ditto.
10784         * value-prof.c: Ditto.
10785         * varasm.c: Ditto.
10786         * varpool.c: Ditto.
10787         * config/arm/arm.c: Ditto.
10788         * config/bfin/bfin.c: Ditto.
10789         * config/c6x/c6x.c: Ditto.
10790         * config/cris/cris.c: Ditto.
10791         * config/darwin.c: Ditto.
10792         * config/darwin-c.c: Ditto.
10793         * config/i386/i386.c: Ditto.
10794         * config/i386/winnt.c: Ditto.
10795         * config/microblaze/microblaze.c: Ditto.
10796         * config/mips/mips.c: Ditto.
10797         * config/rs6000/rs6000.c: Ditto.
10798         * config/rx/rx.c: Ditto.
10799
10800 2014-10-28  Richard Biener  <rguenther@suse.de>
10801
10802         * gimple-fold.h (follow_single_use_edges): Declare.
10803         * gimple-fold.c (follow_single_use_edges): New function.
10804         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10805         * tree-ssa-propagate.c
10806         (substitute_and_fold_dom_walker::before_dom_children): Allow
10807         following single-use edges when folding stmts we propagated into.
10808
10809 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10810             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10811             Anna Tikhonova  <anna.tikhonova@intel.com>
10812             Ilya Tocar  <ilya.tocar@intel.com>
10813             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10814             Ilya Verbin  <ilya.verbin@intel.com>
10815             Kirill Yukhin  <kirill.yukhin@intel.com>
10816             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10817
10818         * config/i386/avx512bwintrin.h: New.
10819         * config/i386/avx512dqintrin.h: Ditto.
10820         * config/i386/avx512vlbwintrin.h: Ditto.
10821         * config/i386/avx512vldqintrin.h: Ditto.
10822         * config/i386/avx512vlintrin.h: Ditto.
10823         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10824         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10825
10826 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10827             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10828             Anna Tikhonova  <anna.tikhonova@intel.com>
10829             Ilya Tocar  <ilya.tocar@intel.com>
10830             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10831             Ilya Verbin  <ilya.verbin@intel.com>
10832             Kirill Yukhin  <kirill.yukhin@intel.com>
10833             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10834
10835         * config/i386/i386.c
10836         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10837         avx_shufpd256_mask, avx_vpermilv2df_mask.
10838
10839 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10840             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10841             Anna Tikhonova  <anna.tikhonova@intel.com>
10842             Ilya Tocar  <ilya.tocar@intel.com>
10843             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10844             Ilya Verbin  <ilya.verbin@intel.com>
10845             Kirill Yukhin  <kirill.yukhin@intel.com>
10846             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10847
10848         * config/i386/i386.c
10849         (ix86_init_mmx_sse_builtins):
10850         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10851         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10852         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10853         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10854         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10855         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10856         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10857         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10858         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10859         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10860         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10861         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10862         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10863         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10864         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10865         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10866         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10867         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10868
10869 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10870             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10871             Anna Tikhonova  <anna.tikhonova@intel.com>
10872             Ilya Tocar  <ilya.tocar@intel.com>
10873             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10874             Ilya Verbin  <ilya.verbin@intel.com>
10875             Kirill Yukhin  <kirill.yukhin@intel.com>
10876             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10877
10878         * config/i386/i386.c
10879         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10880         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10881         IX86_BUILTIN_GATHER3ALTDIV8SI.
10882         (ix86_expand_builtin):
10883         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10884         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10885         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10886         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10887         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10888         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10889         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10890         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10891         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10892         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10893         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10894         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10895         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10896         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10897         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10898         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10899         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10900         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10901         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10902         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10903
10904 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10905             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10906             Anna Tikhonova  <anna.tikhonova@intel.com>
10907             Ilya Tocar  <ilya.tocar@intel.com>
10908             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10909             Ilya Verbin  <ilya.verbin@intel.com>
10910             Kirill Yukhin  <kirill.yukhin@intel.com>
10911             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10912
10913         * config/i386/i386-builtin-types.def
10914         (SHORT): New.
10915         (V32HI): Ditto.
10916         (V12QI): Ditto.
10917         (V14QI): Ditto.
10918         (V32SI): Ditto.
10919         (V8UDI): Ditto.
10920         (V16USI): Ditto.
10921         (V32UHI): Ditto.
10922         (PSHORT): Ditto.
10923         (PV32QI): Ditto.
10924         (PV32HI): Ditto.
10925         (PV64QI): Ditto.
10926         (PCV8HI): Ditto.
10927         (PCV16QI): Ditto.
10928         (PCV16HI): Ditto.
10929         (PCV32QI): Ditto.
10930         (PCV32HI): Ditto.
10931         (PCV64QI): Ditto.
10932         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10933         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10934         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10935         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10936         (V16SF_FTYPE_V16HI): Ditto.
10937         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10938         (V16SF_FTYPE_V16SI): Ditto.
10939         (V4DI_FTYPE_V4DI): Ditto.
10940         (V16SI_FTYPE_V16SF): Ditto.
10941         (V8DI_FTYPE_PV2DI): Ditto.
10942         (V8DF_FTYPE_PV2DF): Ditto.
10943         (V4DI_FTYPE_PV2DI): Ditto.
10944         (V4DF_FTYPE_PV2DF): Ditto.
10945         (V16SI_FTYPE_PV2SI): Ditto.
10946         (V16SF_FTYPE_PV2SF): Ditto.
10947         (V8SF_FTYPE_FLOAT): Ditto.
10948         (V4SF_FTYPE_FLOAT): Ditto.
10949         (V4DF_FTYPE_DOUBLE): Ditto.
10950         (V8SF_FTYPE_PV4SF): Ditto.
10951         (V8SI_FTYPE_PV4SI): Ditto.
10952         (V4SI_FTYPE_PV2SI): Ditto.
10953         (V8SF_FTYPE_PV2SF): Ditto.
10954         (V8SI_FTYPE_PV2SI): Ditto.
10955         (V16SF_FTYPE_PV8SF): Ditto.
10956         (V16SI_FTYPE_PV8SI): Ditto.
10957         (V8DI_FTYPE_V8SF): Ditto.
10958         (V4DI_FTYPE_V4SF): Ditto.
10959         (V2DI_FTYPE_V4SF): Ditto.
10960         (V64QI_FTYPE_QI): Ditto.
10961         (V32HI_FTYPE_HI): Ditto.
10962         (V16UHI_FTYPE_V16UHI): Ditto.
10963         (V32UHI_FTYPE_V32UHI): Ditto.
10964         (V2UDI_FTYPE_V2UDI): Ditto.
10965         (V4UDI_FTYPE_V4UDI): Ditto.
10966         (V8UDI_FTYPE_V8UDI): Ditto.
10967         (V4USI_FTYPE_V4USI): Ditto.
10968         (V16USI_FTYPE_V16USI): Ditto.
10969         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10970         (V2DF_FTYPE_V8DF_INT): Ditto.
10971         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10972         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10973         (V8DF_FTYPE_V8DF_INT): Ditto.
10974         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10975         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10976         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10977         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10978         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10979         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10980         (V8DI_FTYPE_V8DI_INT): Ditto.
10981         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10982         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10983         (V8SF_FTYPE_V16SF_INT): Ditto.
10984         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10985         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10986         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10987         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10988         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10989         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10990         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10991         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10992         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10993         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10994         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10995         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10996         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10997         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10998         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10999         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
11000         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
11001         (V32HI_FTYPE_V32HI_V32HI): Ditto.
11002         (V32HI_FTYPE_V32HI_INT): Ditto.
11003         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
11004         (V16SI_FTYPE_V32HI_V32HI): Ditto.
11005         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
11006         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
11007         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
11008         (V8SI_FTYPE_V16SI_INT): Ditto.
11009         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
11010         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
11011         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
11012         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
11013         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
11014         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
11015         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
11016         (V8DI_FTYPE_V16SI_V16SI): Ditto.
11017         (V8DI_FTYPE_V64QI_V64QI): Ditto.
11018         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
11019         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
11020         (V2DI_FTYPE_V8DI_INT): Ditto.
11021         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
11022         (QI_FTYPE_QI): Ditto.
11023         (SI_FTYPE_SI): Ditto.
11024         (DI_FTYPE_DI): Ditto.
11025         (HI_FTYPE_V16QI): Ditto.
11026         (SI_FTYPE_V32QI): Ditto.
11027         (DI_FTYPE_V64QI): Ditto.
11028         (QI_FTYPE_V8HI): Ditto.
11029         (HI_FTYPE_V16HI): Ditto.
11030         (SI_FTYPE_V32HI): Ditto.
11031         (QI_FTYPE_V4SI): Ditto.
11032         (QI_FTYPE_V8SI): Ditto.
11033         (HI_FTYPE_V16SI): Ditto.
11034         (QI_FTYPE_V2DI): Ditto.
11035         (QI_FTYPE_V4DI): Ditto.
11036         (QI_FTYPE_V8DI): Ditto.
11037         (V16QI_FTYPE_HI): Ditto.
11038         (V32QI_FTYPE_SI): Ditto.
11039         (V64QI_FTYPE_DI): Ditto.
11040         (V8HI_FTYPE_QI): Ditto.
11041         (V16HI_FTYPE_HI): Ditto.
11042         (V32HI_FTYPE_SI): Ditto.
11043         (V4SI_FTYPE_QI): Ditto.
11044         (V4SI_FTYPE_HI): Ditto.
11045         (V8SI_FTYPE_QI): Ditto.
11046         (V8SI_FTYPE_HI): Ditto.
11047         (V2DI_FTYPE_QI): Ditto.
11048         (V4DI_FTYPE_QI): Ditto.
11049         (QI_FTYPE_QI_QI): Ditto.
11050         (SI_FTYPE_SI_SI): Ditto.
11051         (DI_FTYPE_DI_DI): Ditto.
11052         (QI_FTYPE_QI_INT): Ditto.
11053         (SI_FTYPE_SI_INT): Ditto.
11054         (DI_FTYPE_DI_INT): Ditto.
11055         (HI_FTYPE_V16QI_V16QI): Ditto.
11056         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
11057         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
11058         (SI_FTYPE_V32QI_V32QI): Ditto.
11059         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
11060         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
11061         (DI_FTYPE_V64QI_V64QI): Ditto.
11062         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
11063         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
11064         (QI_FTYPE_V8HI_V8HI): Ditto.
11065         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
11066         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
11067         (HI_FTYPE_V16HI_V16HI): Ditto.
11068         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
11069         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
11070         (SI_FTYPE_V32HI_V32HI): Ditto.
11071         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
11072         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
11073         (QI_FTYPE_V4SI_V4SI): Ditto.
11074         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
11075         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
11076         (QI_FTYPE_V8SI_V8SI): Ditto.
11077         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
11078         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
11079         (QI_FTYPE_V2DI_V2DI): Ditto.
11080         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
11081         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
11082         (QI_FTYPE_V4DI_V4DI): Ditto.
11083         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
11084         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
11085         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
11086         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
11087         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
11088         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
11089         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
11090         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
11091         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
11092         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
11093         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
11094         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
11095         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
11096         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
11097         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
11098         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
11099         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
11100         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
11101         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
11102         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
11103         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
11104         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
11105         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
11106         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
11107         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
11108         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
11109         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
11110         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
11111         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
11112         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
11113         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
11114         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
11115         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
11116         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
11117         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
11118         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
11119         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
11120         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
11121         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
11122         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
11123         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
11124         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
11125         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
11126         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
11127         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
11128         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
11129         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
11130         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
11131         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
11132         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
11133         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
11134         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
11135         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
11136         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
11137         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
11138         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
11139         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
11140         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
11141         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
11142         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
11143         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
11144         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
11145         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
11146         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
11147         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
11148         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
11149         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
11150         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
11151         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
11152         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
11153         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
11154         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
11155         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
11156         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
11157         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
11158         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
11159         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
11160         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
11161         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
11162         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
11163         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
11164         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
11165         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
11166         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
11167         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
11168         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
11169         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
11170         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
11171         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
11172         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
11173         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
11174         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
11175         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
11176         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
11177         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
11178         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
11179         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
11180         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
11181         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
11182         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
11183         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
11184         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
11185         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
11186         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
11187         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
11188         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
11189         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
11190         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
11191         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
11192         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
11193         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
11194         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
11195         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
11196         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
11197         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
11198         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
11199         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
11200         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
11201         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
11202         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
11203         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
11204         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
11205         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
11206         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
11207         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
11208         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
11209         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
11210         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
11211         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
11212         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
11213         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
11214         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
11215         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
11216         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
11217         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
11218         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
11219         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
11220         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
11221         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
11222         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
11223         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
11224         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
11225         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
11226         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
11227         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
11228         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
11229         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
11230         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
11231         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
11232         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
11233         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
11234         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
11235         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
11236         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
11237         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
11238         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
11239         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
11240         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
11241         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
11242         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
11243         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
11244         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
11245         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
11246         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
11247         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
11248         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
11249         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
11250         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
11251         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
11252         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
11253         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
11254         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
11255         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
11256         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
11257         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
11258         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
11259         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
11260         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
11261         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
11262         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
11263         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
11264         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
11265         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
11266         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
11267         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
11268         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
11269         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
11270         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
11271         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
11272         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
11273         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
11274         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
11275         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
11276         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
11277         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
11278         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
11279         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
11280         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
11281         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
11282         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
11283         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
11284         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
11285         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
11286         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
11287         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
11288         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
11289         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
11290         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
11291         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
11292         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
11293         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
11294         (QI_FTYPE_V8DF_INT): Ditto.
11295         (QI_FTYPE_V4DF_INT): Ditto.
11296         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
11297         (QI_FTYPE_V2DF_INT): Ditto.
11298         (HI_FTYPE_V16SF_INT): Ditto.
11299         (QI_FTYPE_V8SF_INT): Ditto.
11300         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
11301         (QI_FTYPE_V4SF_INT): Ditto.
11302         (QI_FTYPE_V8DF_INT_QI): Ditto.
11303         (QI_FTYPE_V4DF_INT_QI): Ditto.
11304         (QI_FTYPE_V2DF_INT_QI): Ditto.
11305         (HI_FTYPE_V16SF_INT_HI): Ditto.
11306         (QI_FTYPE_V8SF_INT_QI): Ditto.
11307         (QI_FTYPE_V4SF_INT_QI): Ditto.
11308         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
11309         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
11310         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
11311         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
11312         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
11313         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
11314         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
11315         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
11316         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
11317         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
11318         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
11319         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
11320         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
11321         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
11322         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
11323         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
11324         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
11325         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
11326         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
11327         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
11328         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
11329         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
11330         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
11331         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
11332         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
11333         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
11334         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
11335         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
11336         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
11337         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
11338         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
11339         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
11340         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
11341         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
11342         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
11343         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
11344         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
11345         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
11346         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
11347         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
11348         (V8DI_FTYPE_V8DI_INT): Ditto.
11349         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
11350         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
11351         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
11352         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
11353         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
11354         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
11355         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
11356         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
11357         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
11358         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
11359         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
11360         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
11361         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
11362         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
11363         * config/i386/i386.c (ix86_builtins):
11364         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
11365         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
11366         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
11367         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
11368         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
11369         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
11370         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
11371         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
11372         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
11373         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
11374         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
11375         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
11376         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
11377         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
11378         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
11379         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
11380         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
11381         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
11382         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
11383         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
11384         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
11385         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
11386         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
11387         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
11388         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
11389         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
11390         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
11391         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
11392         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
11393         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
11394         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
11395         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
11396         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
11397         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
11398         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
11399         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
11400         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
11401         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
11402         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
11403         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
11404         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
11405         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
11406         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
11407         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
11408         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
11409         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
11410         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
11411         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
11412         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
11413         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
11414         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
11415         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
11416         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
11417         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
11418         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
11419         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
11420         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
11421         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
11422         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
11423         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
11424         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
11425         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
11426         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
11427         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
11428         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
11429         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
11430         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
11431         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
11432         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
11433         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
11434         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
11435         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
11436         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
11437         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
11438         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
11439         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
11440         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
11441         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
11442         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
11443         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
11444         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
11445         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
11446         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
11447         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
11448         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
11449         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
11450         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
11451         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
11452         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
11453         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
11454         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
11455         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
11456         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
11457         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
11458         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
11459         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
11460         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
11461         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
11462         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
11463         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
11464         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
11465         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
11466         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
11467         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
11468         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
11469         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
11470         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
11471         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
11472         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
11473         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
11474         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
11475         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
11476         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
11477         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
11478         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
11479         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
11480         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
11481         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
11482         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
11483         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
11484         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
11485         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
11486         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
11487         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
11488         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
11489         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
11490         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
11491         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
11492         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
11493         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
11494         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
11495         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
11496         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
11497         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
11498         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
11499         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
11500         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
11501         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
11502         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
11503         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
11504         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
11505         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
11506         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
11507         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
11508         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
11509         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
11510         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
11511         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
11512         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
11513         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
11514         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
11515         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
11516         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
11517         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
11518         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
11519         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
11520         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
11521         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
11522         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
11523         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
11524         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
11525         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
11526         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
11527         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
11528         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
11529         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
11530         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
11531         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
11532         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
11533         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
11534         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
11535         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
11536         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
11537         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
11538         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
11539         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
11540         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
11541         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
11542         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
11543         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
11544         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
11545         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
11546         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
11547         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
11548         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
11549         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
11550         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
11551         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
11552         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
11553         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
11554         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
11555         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
11556         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
11557         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
11558         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
11559         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
11560         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
11561         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
11562         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
11563         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
11564         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
11565         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
11566         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
11567         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
11568         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
11569         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
11570         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
11571         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
11572         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
11573         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
11574         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
11575         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
11576         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
11577         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
11578         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
11579         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
11580         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
11581         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
11582         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
11583         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
11584         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
11585         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
11586         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
11587         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
11588         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
11589         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
11590         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
11591         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
11592         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
11593         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
11594         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
11595         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
11596         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
11597         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
11598         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
11599         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
11600         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
11601         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
11602         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
11603         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
11604         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
11605         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
11606         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
11607         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
11608         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
11609         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
11610         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
11611         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
11612         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
11613         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
11614         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
11615         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
11616         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
11617         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
11618         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
11619         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
11620         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
11621         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
11622         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
11623         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
11624         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
11625         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
11626         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
11627         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
11628         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
11629         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
11630         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
11631         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
11632         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
11633         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
11634         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
11635         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
11636         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
11637         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
11638         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
11639         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
11640         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
11641         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
11642         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
11643         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
11644         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
11645         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
11646         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
11647         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
11648         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
11649         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
11650         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
11651         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
11652         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
11653         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
11654         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
11655         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
11656         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
11657         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
11658         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
11659         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
11660         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
11661         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
11662         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
11663         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
11664         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
11665         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
11666         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
11667         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
11668         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
11669         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
11670         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
11671         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
11672         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
11673         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
11674         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
11675         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
11676         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
11677         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
11678         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
11679         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
11680         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
11681         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
11682         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
11683         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
11684         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
11685         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
11686         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
11687         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
11688         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
11689         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
11690         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
11691         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
11692         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
11693         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
11694         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
11695         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
11696         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
11697         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
11698         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
11699         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
11700         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
11701         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
11702         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
11703         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
11704         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
11705         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
11706         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
11707         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
11708         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
11709         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
11710         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
11711         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
11712         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
11713         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
11714         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
11715         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
11716         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
11717         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
11718         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
11719         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
11720         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
11721         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
11722         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
11723         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
11724         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
11725         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
11726         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
11727         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
11728         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
11729         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
11730         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
11731         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
11732         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
11733         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
11734         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
11735         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
11736         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
11737         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
11738         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
11739         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
11740         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
11741         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
11742         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
11743         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
11744         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
11745         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
11746         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
11747         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
11748         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
11749         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
11750         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
11751         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
11752         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
11753         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
11754         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
11755         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
11756         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
11757         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
11758         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
11759         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
11760         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
11761         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
11762         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
11763         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
11764         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
11765         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
11766         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
11767         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
11768         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
11769         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
11770         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
11771         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
11772         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
11773         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
11774         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
11775         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
11776         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
11777         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
11778         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
11779         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
11780         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
11781         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
11782         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
11783         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
11784         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
11785         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
11786         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
11787         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
11788         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
11789         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
11790         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
11791         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
11792         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
11793         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
11794         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
11795         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
11796         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
11797         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
11798         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
11799         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11800         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11801         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11802         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11803         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11804         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11805         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11806         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11807         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11808         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11809         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11810         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11811         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11812         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11813         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11814         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11815         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11816         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11817         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11818         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11819         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11820         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11821         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11822         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11823         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11824         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11825         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11826         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11827         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11828         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11829         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11830         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11831         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11832         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11833         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11834         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11835         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11836         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11837         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11838         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11839         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11840         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11841         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11842         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11843         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11844         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11845         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11846         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11847         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11848         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11849         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11850         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11851         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11852         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11853         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11854         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11855         (bdesc_special_args):
11856         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11857         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11858         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11859         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11860         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11861         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11862         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11863         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11864         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11865         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11866         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11867         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11868         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11869         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11870         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11871         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11872         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11873         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11874         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11875         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11876         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11877         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11878         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11879         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11880         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11881         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11882         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11883         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11884         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11885         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11886         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11887         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11888         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11889         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11890         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11891         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11892         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11893         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11894         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11895         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11896         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11897         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11898         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11899         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11900         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11901         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11902         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11903         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11904         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11905         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11906         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11907         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11908         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11909         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11910         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11911         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11912         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11913         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11914         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11915         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11916         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11917         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11918         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11919         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11920         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11921         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11922         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11923         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11924         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11925         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11926         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11927         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11928         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11929         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11930         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11931         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11932         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11933         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11934         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11935         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11936         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11937         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11938         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11939         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11940         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11941         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11942         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11943         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11944         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11945         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11946         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11947         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11948         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11949         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11950         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11951         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11952         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11953         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11954         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11955         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11956         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11957         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11958         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11959         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11960         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11961         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11962         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11963         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11964         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11965         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11966         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11967         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11968         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11969         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11970         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11971         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11972         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11973         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11974         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11975         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11976         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11977         __builtin_ia32_reducesd, __builtin_ia32_reducess,
11978         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11979         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11980         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11981         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11982         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11983         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11984         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11985         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11986         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11987         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11988         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11989         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11990         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11991         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11992         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11993         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11994         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11995         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11996         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11997         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11998         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11999         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
12000         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
12001         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
12002         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
12003         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
12004         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
12005         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
12006         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
12007         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
12008         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
12009         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
12010         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
12011         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
12012         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
12013         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
12014         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
12015         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
12016         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
12017         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
12018         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
12019         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
12020         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
12021         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
12022         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
12023         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
12024         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
12025         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
12026         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
12027         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
12028         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
12029         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
12030         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
12031         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
12032         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
12033         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
12034         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
12035         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
12036         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
12037         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
12038         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
12039         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
12040         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
12041         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
12042         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
12043         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
12044         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
12045         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
12046         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
12047         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
12048         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
12049         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
12050         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
12051         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
12052         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
12053         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
12054         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
12055         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
12056         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
12057         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
12058         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
12059         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
12060         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
12061         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
12062         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
12063         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
12064         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
12065         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
12066         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
12067         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
12068         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
12069         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
12070         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
12071         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
12072         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
12073         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
12074         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
12075         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
12076         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
12077         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
12078         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
12079         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
12080         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
12081         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
12082         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
12083         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
12084         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
12085         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
12086         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
12087         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
12088         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
12089         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
12090         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
12091         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
12092         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
12093         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
12094         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
12095         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
12096         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
12097         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
12098         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
12099         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
12100         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
12101         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
12102         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
12103         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
12104         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
12105         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
12106         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
12107         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
12108         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
12109         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
12110         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
12111         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
12112         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
12113         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
12114         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
12115         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
12116         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
12117         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
12118         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
12119         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
12120         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
12121         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
12122         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
12123         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
12124         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
12125         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
12126         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
12127         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
12128         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
12129         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
12130         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
12131         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
12132         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
12133         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
12134         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
12135         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
12136         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
12137         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
12138         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
12139         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
12140         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
12141         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
12142         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
12143         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
12144         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
12145         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
12146         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
12147         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
12148         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
12149         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
12150         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
12151         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
12152         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
12153         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
12154         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
12155         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
12156         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
12157         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
12158         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
12159         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
12160         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
12161         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
12162         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
12163         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
12164         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
12165         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
12166         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
12167         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
12168         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
12169         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
12170         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
12171         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
12172         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
12173         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
12174         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
12175         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
12176         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
12177         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
12178         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
12179         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
12180         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
12181         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
12182         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
12183         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
12184         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
12185         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
12186         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
12187         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
12188         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
12189         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
12190         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
12191         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
12192         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
12193         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
12194         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
12195         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
12196         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
12197         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
12198         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
12199         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
12200         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
12201         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
12202         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
12203         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
12204         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
12205         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
12206         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
12207         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
12208         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
12209         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
12210         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
12211         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
12212         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
12213         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
12214         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
12215         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
12216         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
12217         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
12218         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
12219         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
12220         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
12221         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
12222         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
12223         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
12224         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
12225         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
12226         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
12227         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
12228         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
12229         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
12230         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
12231         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
12232         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
12233         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
12234         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
12235         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
12236         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
12237         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
12238         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
12239         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
12240         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
12241         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
12242         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
12243         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
12244         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
12245         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
12246         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
12247         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
12248         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
12249         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
12250         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
12251         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
12252         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
12253         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
12254         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
12255         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
12256         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
12257         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
12258         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
12259         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
12260         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
12261         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
12262         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
12263         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
12264         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
12265         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
12266         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
12267         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
12268         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
12269         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
12270         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
12271         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
12272         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
12273         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
12274         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
12275         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
12276         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
12277         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
12278         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
12279         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
12280         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
12281         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
12282         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
12283         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
12284         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
12285         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
12286         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
12287         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
12288         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
12289         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
12290         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
12291         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
12292         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
12293         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
12294         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
12295         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
12296         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
12297         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
12298         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
12299         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
12300         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
12301         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
12302         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
12303         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
12304         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
12305         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
12306         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
12307         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
12308         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
12309         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
12310         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
12311         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
12312         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
12313         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
12314         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
12315         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
12316         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
12317         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
12318         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
12319         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
12320         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
12321         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
12322         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
12323         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
12324         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
12325         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
12326         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
12327         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
12328         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
12329         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
12330         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
12331         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
12332         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
12333         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
12334         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
12335         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
12336         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
12337         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
12338         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
12339         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
12340         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
12341         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
12342         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
12343         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
12344         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
12345         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
12346         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
12347         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
12348         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
12349         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
12350         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
12351         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
12352         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
12353         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
12354         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
12355         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
12356         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
12357         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
12358         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
12359         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
12360         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
12361         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
12362         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
12363         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
12364         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
12365         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
12366         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
12367         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
12368         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
12369         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
12370         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
12371         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
12372         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
12373         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
12374         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
12375         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
12376         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
12377         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
12378         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
12379         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
12380         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
12381         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
12382         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
12383         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
12384         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
12385         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
12386         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
12387         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
12388         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
12389         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
12390         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
12391         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
12392         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
12393         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
12394         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
12395         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
12396         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
12397         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
12398         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
12399         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
12400         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
12401         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
12402         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
12403         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
12404         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
12405         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
12406         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
12407         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
12408         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
12409         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
12410         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
12411         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
12412         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
12413         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
12414         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
12415         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
12416         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
12417         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
12418         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
12419         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
12420         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
12421         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
12422         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
12423         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
12424         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
12425         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
12426         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
12427         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
12428         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
12429         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
12430         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
12431         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
12432         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
12433         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
12434         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
12435         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
12436         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
12437         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
12438         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
12439         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
12440         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
12441         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
12442         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
12443         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
12444         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
12445         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
12446         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
12447         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
12448         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
12449         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
12450         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
12451         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
12452         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
12453         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
12454         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
12455         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
12456         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
12457         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
12458         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
12459         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
12460         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
12461         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
12462         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
12463         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
12464         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
12465
12466 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
12467
12468         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
12469         type for the left shift in CASE_CONVERT case.
12470
12471 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
12472
12473         * asan.h (asan_intercepted_p): New function.
12474         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
12475         hash value construction.  Call iterative_hash_expr instead of explicit
12476         hash building.
12477         (asan_mem_ref_hasher::equal): Change condition.
12478         (has_mem_ref_been_instrumented): Likewise.
12479         (update_mem_ref_hash_table): Likewise.
12480         (maybe_update_mem_ref_hash_table): New function.
12481         (instrument_strlen_call): Removed.
12482         (get_mem_refs_of_builtin_call): Handle new parameter.
12483         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
12484         of instrument_mem_region_access if intercepted_p is true.
12485         (instrument_mem_region_access): Instrument only base with len instead of
12486         base and end with 1.
12487         (build_check_stmt): Remove start_instrumented and end_instrumented
12488         parameters.
12489         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
12490         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
12491         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
12492         * builtins.c (expand_builtin): Include asan.h.  Don't expand
12493         string/memory builtin functions that have interceptors if ASan is
12494         enabled.
12495
12496 2014-10-28  Richard Biener  <rguenther@suse.de>
12497
12498         PR middle-end/63665
12499         * fold-const.c (fold_comparison): Properly guard simplifying
12500         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
12501
12502 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
12503
12504         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
12505         * fold-const.c (const_binop): Likewise.
12506         * cfgexpand.c (expand_debug_expr): Likewise.
12507         * tree-inline.c (estimate_operator_cost): Likewise.
12508         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
12509         * optabs.c (optab_for_tree_code): Likewise.
12510         (expand_vec_shift_expr): Likewise, update comment.
12511         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
12512         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
12513         * optabs.def: Remove vec_shl_optab.
12514         * doc/md.texi: Remove references to vec_shr_m.
12515
12516 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
12517
12518         * asan.c (report_error_func): Add noabort path.
12519         (check_func): Ditto.  Formatting.
12520         (asan_expand_check_ifn): Handle noabort path.
12521         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
12522         to default value.
12523         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
12524         * opts.c (finish_options): Reword comment.
12525         * sanitizer.def: Add noabort ASan builtins.
12526
12527 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
12528
12529         * asan.c (set_asan_shadow_offset): New function.
12530         (asan_shadow_offset): Likewise.
12531         (asan_emit_stack_protection): Call asan_shadow_offset.
12532         (build_shadow_mem_access): Likewise.
12533         * asan.h (set_asan_shadow_offset): Declare.
12534         * common.opt (fasan-shadow-offset): New option.
12535         (frandom-seed): Fixed parameter name.
12536         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
12537         (frandom-seed): Fixed parameter name.
12538         * opts-global.c (handle_common_deferred_options): Handle
12539         -fasan-shadow-offset.
12540         * opts.c (common_handle_option): Likewise.
12541
12542 2014-10-27  Jiong Wang <jiong.wang@arm.com>
12543
12544         PR target/63442
12545         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
12546
12547 2014-10-27  DJ Delorie  <dj@redhat.com>
12548
12549         * tree.c (build_common_tree_nodes): Don't even store the
12550         __int128 types if they're not supported.
12551
12552 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12553
12554         * config/i386/i386.c (ix86_loop_memcount): Delete.
12555         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
12556
12557 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12558
12559         * config/i386/i386.c (find_constant_1): Delete.
12560         (find_constant): Use FOR_EACH_SUBRTX.
12561
12562 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12563
12564         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
12565         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
12566
12567 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12568
12569         * config/i386/i386.c: Include rtl-iter.h
12570         (ix86_check_avx256_register): Take a const_rtx and return a bool.
12571         (ix86_check_avx256_stores): Update call accordingly.
12572         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
12573         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
12574
12575 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12576
12577         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
12578         Take an rtx and return a bool.
12579         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
12580         Use FOR_EACH_SUBRTX_VAR.
12581         * config/alpha/predicates.md (some_small_symbolic_operand): Update
12582         accordingly.
12583
12584 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12585
12586         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
12587         a bool.
12588         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
12589         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
12590
12591 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12592
12593         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
12594         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
12595
12596 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12597
12598         * config/alpha/alpha.c: Include rtl-iter.h.
12599         (split_small_symbolic_operand_1): Delete.
12600         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
12601
12602 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12603
12604         * config/s390/s390.c: Include rtl-iter.h.
12605         (check_dpu): Delete.
12606         (s390_loop_unroll_adjust): Only iterate over patterns.
12607         Use FOR_EACH_SUBRTX.
12608
12609 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12610
12611         * config/spu/spu.c: Include rtl-iter.h
12612         (ea_symbol_ref): Replace with...
12613         (ea_symbol_ref_p): ...this new function.
12614         (spu_legitimate_address_p): Update call accordingly.
12615         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
12616
12617 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
12618             Tom Tromey  <tromey@redhat.com>
12619
12620         * aclocal.m4, configure: Rebuild.
12621         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
12622         * configure.ac: Use GCC_ENABLE_PLUGINS.
12623         * stor-layout.c (finish_bitfield_layout): Now public.  Change
12624         argument type to 'tree'.
12625         (finish_record_layout): Update.
12626         * stor-layout.h (finish_bitfield_layout): Declare.
12627
12628 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12629
12630         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
12631         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12632         Restore, enable for bigendian, update to use __builtin..._scal...
12633
12634 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12635
12636         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
12637         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
12638         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
12639         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
12640
12641         * config/aarch64/aarch64-simd.md
12642         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
12643         (reduc_<maxmin_uns>_internal<mode>): ...this.
12644         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
12645         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
12646
12647         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
12648         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
12649         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
12650
12651         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
12652         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
12653         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
12654         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
12655         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
12656         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
12657         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
12658         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
12659
12660 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12661
12662         * config/aarch64/aarch64-simd-builtins.def
12663         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
12664         Remove.
12665         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
12666
12667         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
12668         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
12669
12670         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
12671         (aarch64_reduc_plus_internal<mode>): ...this.
12672
12673         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
12674         (aarch64_reduc_plus_internalv2si): ...this.
12675
12676         (reduc_splus_<mode>/V2F): Rename to...
12677         (aarch64_reduc_plus_internal<mode>): ...this.
12678
12679         * config/aarch64/iterators.md
12680         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
12681         (UNSPEC_ADDV): New.
12682         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
12683
12684         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
12685         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
12686         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
12687         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
12688         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
12689
12690 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12691
12692         PR tree-optimization/61114
12693         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
12694         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
12695
12696         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
12697         back to old reduc_... + BIT_FIELD_REF only if not.
12698
12699         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
12700         return the reduce-to-scalar (reduc_..._scal) optab.
12701         (scalar_reduc_to_vector): New.
12702
12703         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
12704         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
12705         New.
12706
12707         * optabs.h (scalar_reduc_to_vector): Declare.
12708
12709         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
12710         to either scalar or vector.
12711
12712 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12713
12714         PR tree-optimization/61114
12715         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
12716         extract_bit_field around optab result.
12717
12718         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
12719         scalar not vector.
12720
12721         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
12722         for REDUC_{MIN,MAX,PLUS}_EXPR.
12723
12724         * tree-vect-loop.c (vect_analyze_loop): Update comment.
12725         (vect_create_epilog_for_reduction): For direct vector reduction, use
12726         result of tree code directly without extract_bit_field.
12727
12728         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
12729         comment.
12730
12731 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
12732
12733         * basic-block.h: Remove all includes.
12734         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
12735         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
12736         * Makefile.in (GTFILES): Add cfg.h to list.
12737         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
12738         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
12739         * genconditions.c (write_header): Add predict.h and basic-block.h to
12740         lits of includes.
12741         * genemit.c (main): Ditto.
12742         * genpreds.c (write_insn_preds_c): Ditto.
12743         * genrecog.c (write_header): Ditto.
12744         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
12745         to list of includes.
12746         * alias.c: Adjust include files.
12747         * asan.c: Ditto.
12748         * auto-inc-dec.c: Ditto.
12749         * auto-profile.c: Ditto.
12750         * bb-reorder.c: Ditto.
12751         * bt-load.c: Ditto.
12752         * builtins.c: Ditto.
12753         * caller-save.c: Ditto.
12754         * calls.c: Ditto.
12755         * cfg.c: Ditto.
12756         * cfganal.c: Ditto.
12757         * cfgbuild.c: Ditto.
12758         * cfgcleanup.c: Ditto.
12759         * cfgexpand.c: Ditto.
12760         * cfghooks.c: Ditto.
12761         * cfgloop.c: Ditto.
12762         * cfgloopanal.c: Ditto.
12763         * cfgloopmanip.c: Ditto.
12764         * cfgrtl.c: Ditto.
12765         * cgraphbuild.c: Ditto.
12766         * cgraphclones.c: Ditto.
12767         * cgraphunit.c: Ditto.
12768         * combine-stack-adj.c: Ditto.
12769         * combine.c: Ditto.
12770         * compare-elim.c: Ditto.
12771         * coverage.c: Ditto.
12772         * cprop.c: Ditto.
12773         * cse.c: Ditto.
12774         * cselib.c: Ditto.
12775         * data-streamer-in.c: Ditto.
12776         * data-streamer-out.c: Ditto.
12777         * data-streamer.c: Ditto.
12778         * dce.c: Ditto.
12779         * ddg.c: Ditto.
12780         * ddg.h: Ditto.
12781         * df-core.c: Ditto.
12782         * df-problems.c: Ditto.
12783         * df-scan.c: Ditto.
12784         * df.h: Ditto.
12785         * dojump.c: Ditto.
12786         * dominance.c: Ditto.
12787         * domwalk.c: Ditto.
12788         * dse.c: Ditto.
12789         * dwarf2cfi.c: Ditto.
12790         * emit-rtl.c: Ditto.
12791         * et-forest.c: Ditto.
12792         * except.c: Ditto.
12793         * expmed.c: Ditto.
12794         * expr.c: Ditto.
12795         * final.c: Ditto.
12796         * fold-const.c: Ditto.
12797         * function.c: Ditto.
12798         * fwprop.c: Ditto.
12799         * gcc-plugin.h: Ditto.
12800         * gcse.c: Ditto.
12801         * generic-match-head.c: Ditto.
12802         * ggc-page.c: Ditto.
12803         * gimple-builder.c: Ditto.
12804         * gimple-expr.c: Ditto.
12805         * gimple-fold.c: Ditto.
12806         * gimple-iterator.c: Ditto.
12807         * gimple-low.c: Ditto.
12808         * gimple-match-head.c: Ditto.
12809         * gimple-pretty-print.c: Ditto.
12810         * gimple-ssa-isolate-paths.c: Ditto.
12811         * gimple-ssa-strength-reduction.c: Ditto.
12812         * gimple-streamer-in.c: Ditto.
12813         * gimple-streamer-out.c: Ditto.
12814         * gimple-streamer.h: Ditto.
12815         * gimple-walk.c: Ditto.
12816         * gimple.c: Ditto.
12817         * gimplify-me.c: Ditto.
12818         * gimplify.c: Ditto.
12819         * graph.c: Ditto.
12820         * graphite-blocking.c: Ditto.
12821         * graphite-clast-to-gimple.c: Ditto.
12822         * graphite-dependences.c: Ditto.
12823         * graphite-interchange.c: Ditto.
12824         * graphite-isl-ast-to-gimple.c: Ditto.
12825         * graphite-optimize-isl.c: Ditto.
12826         * graphite-poly.c: Ditto.
12827         * graphite-scop-detection.c: Ditto.
12828         * graphite-sese-to-poly.c: Ditto.
12829         * graphite.c: Ditto.
12830         * haifa-sched.c: Ditto.
12831         * hw-doloop.c: Ditto.
12832         * ifcvt.c: Ditto.
12833         * init-regs.c: Ditto.
12834         * internal-fn.c: Ditto.
12835         * ipa-cp.c: Ditto.
12836         * ipa-devirt.c: Ditto.
12837         * ipa-icf-gimple.c: Ditto.
12838         * ipa-icf.c: Ditto.
12839         * ipa-inline-analysis.c: Ditto.
12840         * ipa-inline.c: Ditto.
12841         * ipa-polymorphic-call.c: Ditto.
12842         * ipa-profile.c: Ditto.
12843         * ipa-prop.c: Ditto.
12844         * ipa-pure-const.c: Ditto.
12845         * ipa-reference.c: Ditto.
12846         * ipa-split.c: Ditto.
12847         * ipa-utils.c: Ditto.
12848         * ipa.c: Ditto.
12849         * ira-build.c: Ditto.
12850         * ira-color.c: Ditto.
12851         * ira-conflicts.c: Ditto.
12852         * ira-costs.c: Ditto.
12853         * ira-emit.c: Ditto.
12854         * ira-lives.c: Ditto.
12855         * ira.c: Ditto.
12856         * jump.c: Ditto.
12857         * lcm.c: Ditto.
12858         * loop-doloop.c: Ditto.
12859         * loop-init.c: Ditto.
12860         * loop-invariant.c: Ditto.
12861         * loop-iv.c: Ditto.
12862         * loop-unroll.c: Ditto.
12863         * lower-subreg.c: Ditto.
12864         * lra-assigns.c: Ditto.
12865         * lra-coalesce.c: Ditto.
12866         * lra-constraints.c: Ditto.
12867         * lra-eliminations.c: Ditto.
12868         * lra-lives.c: Ditto.
12869         * lra-spills.c: Ditto.
12870         * lra.c: Ditto.
12871         * lto-cgraph.c: Ditto.
12872         * lto-compress.c: Ditto.
12873         * lto-opts.c: Ditto.
12874         * lto-section-in.c: Ditto.
12875         * lto-section-out.c: Ditto.
12876         * lto-streamer-in.c: Ditto.
12877         * lto-streamer-out.c: Ditto.
12878         * lto-streamer.c: Ditto.
12879         * mcf.c: Ditto.
12880         * mode-switching.c: Ditto.
12881         * modulo-sched.c: Ditto.
12882         * omp-low.c: Ditto.
12883         * optabs.c: Ditto.
12884         * opts-global.c: Ditto.
12885         * passes.c: Ditto.
12886         * postreload-gcse.c: Ditto.
12887         * postreload.c: Ditto.
12888         * predict.c: Ditto.
12889         * print-rtl.c: Ditto.
12890         * profile.c: Ditto.
12891         * recog.c: Ditto.
12892         * ree.c: Ditto.
12893         * reg-stack.c: Ditto.
12894         * regcprop.c: Ditto.
12895         * regcprop.h: Ditto.
12896         * reginfo.c: Ditto.
12897         * regrename.c: Ditto.
12898         * regstat.c: Ditto.
12899         * reload.c: Ditto.
12900         * reload1.c: Ditto.
12901         * reorg.c: Ditto.
12902         * resource.c: Ditto.
12903         * rtlanal.c: Ditto.
12904         * sched-deps.c: Ditto.
12905         * sched-ebb.c: Ditto.
12906         * sched-int.h: Ditto.
12907         * sched-rgn.c: Ditto.
12908         * sched-vis.c: Ditto.
12909         * sel-sched-dump.c: Ditto.
12910         * sel-sched-ir.c: Ditto.
12911         * sel-sched-ir.h: Ditto.
12912         * sel-sched.c: Ditto.
12913         * sese.c: Ditto.
12914         * shrink-wrap.c: Ditto.
12915         * stack-ptr-mod.c: Ditto.
12916         * stmt.c: Ditto.
12917         * store-motion.c: Ditto.
12918         * symtab.c: Ditto.
12919         * toplev.c: Ditto.
12920         * tracer.c: Ditto.
12921         * trans-mem.c: Ditto.
12922         * tree-affine.c: Ditto.
12923         * tree-call-cdce.c: Ditto.
12924         * tree-cfg.c: Ditto.
12925         * tree-cfgcleanup.c: Ditto.
12926         * tree-chrec.c: Ditto.
12927         * tree-complex.c: Ditto.
12928         * tree-data-ref.c: Ditto.
12929         * tree-dfa.c: Ditto.
12930         * tree-eh.c: Ditto.
12931         * tree-emutls.c: Ditto.
12932         * tree-if-conv.c: Ditto.
12933         * tree-inline.c: Ditto.
12934         * tree-into-ssa.c: Ditto.
12935         * tree-loop-distribution.c: Ditto.
12936         * tree-nested.c: Ditto.
12937         * tree-nrv.c: Ditto.
12938         * tree-object-size.c: Ditto.
12939         * tree-outof-ssa.c: Ditto.
12940         * tree-parloops.c: Ditto.
12941         * tree-phinodes.c: Ditto.
12942         * tree-predcom.c: Ditto.
12943         * tree-pretty-print.c: Ditto.
12944         * tree-profile.c: Ditto.
12945         * tree-scalar-evolution.c: Ditto.
12946         * tree-sra.c: Ditto.
12947         * tree-ssa-address.c: Ditto.
12948         * tree-ssa-alias.c: Ditto.
12949         * tree-ssa-ccp.c: Ditto.
12950         * tree-ssa-coalesce.c: Ditto.
12951         * tree-ssa-copy.c: Ditto.
12952         * tree-ssa-copyrename.c: Ditto.
12953         * tree-ssa-dce.c: Ditto.
12954         * tree-ssa-dom.c: Ditto.
12955         * tree-ssa-dse.c: Ditto.
12956         * tree-ssa-forwprop.c: Ditto.
12957         * tree-ssa-ifcombine.c: Ditto.
12958         * tree-ssa-live.c: Ditto.
12959         * tree-ssa-loop-ch.c: Ditto.
12960         * tree-ssa-loop-im.c: Ditto.
12961         * tree-ssa-loop-ivcanon.c: Ditto.
12962         * tree-ssa-loop-ivopts.c: Ditto.
12963         * tree-ssa-loop-manip.c: Ditto.
12964         * tree-ssa-loop-niter.c: Ditto.
12965         * tree-ssa-loop-prefetch.c: Ditto.
12966         * tree-ssa-loop-unswitch.c: Ditto.
12967         * tree-ssa-loop.c: Ditto.
12968         * tree-ssa-math-opts.c: Ditto.
12969         * tree-ssa-operands.c: Ditto.
12970         * tree-ssa-phiopt.c: Ditto.
12971         * tree-ssa-phiprop.c: Ditto.
12972         * tree-ssa-pre.c: Ditto.
12973         * tree-ssa-propagate.c: Ditto.
12974         * tree-ssa-reassoc.c: Ditto.
12975         * tree-ssa-sccvn.c: Ditto.
12976         * tree-ssa-sink.c: Ditto.
12977         * tree-ssa-strlen.c: Ditto.
12978         * tree-ssa-structalias.c: Ditto.
12979         * tree-ssa-tail-merge.c: Ditto.
12980         * tree-ssa-ter.c: Ditto.
12981         * tree-ssa-threadedge.c: Ditto.
12982         * tree-ssa-threadupdate.c: Ditto.
12983         * tree-ssa-uncprop.c: Ditto.
12984         * tree-ssa-uninit.c: Ditto.
12985         * tree-ssa.c: Ditto.
12986         * tree-ssanames.c: Ditto.
12987         * tree-stdarg.c: Ditto.
12988         * tree-streamer-in.c: Ditto.
12989         * tree-streamer-out.c: Ditto.
12990         * tree-streamer.c: Ditto.
12991         * tree-switch-conversion.c: Ditto.
12992         * tree-tailcall.c: Ditto.
12993         * tree-vect-data-refs.c: Ditto.
12994         * tree-vect-generic.c: Ditto.
12995         * tree-vect-loop-manip.c: Ditto.
12996         * tree-vect-loop.c: Ditto.
12997         * tree-vect-patterns.c: Ditto.
12998         * tree-vect-slp.c: Ditto.
12999         * tree-vect-stmts.c: Ditto.
13000         * tree-vectorizer.c: Ditto.
13001         * tree-vrp.c: Ditto.
13002         * tree.c: Ditto.
13003         * tsan.c: Ditto.
13004         * ubsan.c: Ditto.
13005         * valtrack.c: Ditto.
13006         * valtrack.h: Ditto.
13007         * value-prof.c: Ditto.
13008         * var-tracking.c: Ditto.
13009         * varasm.c: Ditto.
13010         * varpool.c: Ditto.
13011         * vtable-verify.c: Ditto.
13012         * web.c: Ditto.
13013         * config/aarch64/aarch64-builtins.c: Ditto.
13014         * config/aarch64/aarch64.c: Ditto.
13015         * config/alpha/alpha.c: Ditto.
13016         * config/arc/arc.c: Ditto.
13017         * config/arm/arm.c: Ditto.
13018         * config/avr/avr.c: Ditto.
13019         * config/bfin/bfin.c: Ditto.
13020         * config/c6x/c6x.c: Ditto.
13021         * config/cr16/cr16.c: Ditto.
13022         * config/cris/cris.c: Ditto.
13023         * config/darwin-c.c: Ditto.
13024         * config/darwin.c: Ditto.
13025         * config/epiphany/epiphany.c: Ditto.
13026         * config/epiphany/mode-switch-use.c: Ditto.
13027         * config/epiphany/resolve-sw-modes.c: Ditto.
13028         * config/fr30/fr30.c: Ditto.
13029         * config/frv/frv.c: Ditto.
13030         * config/h8300/h8300.c: Ditto.
13031         * config/i386/i386.c: Ditto.
13032         * config/i386/winnt.c: Ditto.
13033         * config/ia64/ia64.c: Ditto.
13034         * config/iq2000/iq2000.c: Ditto.
13035         * config/lm32/lm32.c: Ditto.
13036         * config/m32c/m32c.c: Ditto.
13037         * config/m32r/m32r.c: Ditto.
13038         * config/m68k/m68k.c: Ditto.
13039         * config/mcore/mcore.c: Ditto.
13040         * config/mep/mep.c: Ditto.
13041         * config/microblaze/microblaze.c: Ditto.
13042         * config/mips/mips.c: Ditto.
13043         * config/mmix/mmix.c: Ditto.
13044         * config/mn10300/mn10300.c: Ditto.
13045         * config/moxie/moxie.c: Ditto.
13046         * config/msp430/msp430.c: Ditto.
13047         * config/nds32/nds32-cost.c: Ditto.
13048         * config/nds32/nds32-fp-as-gp.c: Ditto.
13049         * config/nds32/nds32-intrinsic.c: Ditto.
13050         * config/nds32/nds32-isr.c: Ditto.
13051         * config/nds32/nds32-md-auxiliary.c: Ditto.
13052         * config/nds32/nds32-memory-manipulation.c: Ditto.
13053         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
13054         * config/nds32/nds32-predicates.c: Ditto.
13055         * config/nds32/nds32.c: Ditto.
13056         * config/nios2/nios2.c: Ditto.
13057         * config/pa/pa.c: Ditto.
13058         * config/pdp11/pdp11.c: Ditto.
13059         * config/rl78/rl78.c: Ditto.
13060         * config/rs6000/rs6000.c: Ditto.
13061         * config/rx/rx.c: Ditto.
13062         * config/s390/s390.c: Ditto.
13063         * config/sh/sh-mem.cc: Ditto.
13064         * config/sh/sh.c: Ditto.
13065         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
13066         * config/sh/sh_treg_combine.cc: Ditto.
13067         * config/sparc/sparc.c: Ditto.
13068         * config/spu/spu.c: Ditto.
13069         * config/stormy16/stormy16.c: Ditto.
13070         * config/tilegx/tilegx.c: Ditto.
13071         * config/tilepro/tilepro.c: Ditto.
13072         * config/v850/v850.c: Ditto.
13073         * config/vax/vax.c: Ditto.
13074         * config/xtensa/xtensa.c: Ditto.
13075
13076 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
13077
13078         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
13079         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
13080         Remove using preprocessor directives.
13081
13082 2014-10-27  Richard Biener  <rguenther@suse.de>
13083
13084         * match.pd (0 % X): Properly use the iterator iterating over
13085         all modulo operators.
13086         (X % 1): Likewise.
13087
13088 2014-10-27  Richard Biener  <rguenther@suse.de>
13089
13090         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
13091         (lattice): New global.
13092         (fwprop_ssa_val): New function.
13093         (fold_all_stmts): Likewise.
13094         (pass_forwprop::execute): Finally fold all stmts.
13095
13096 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13097
13098         PR c++/53061
13099         * doc/invoke.texi (fmessage-length): Update text to match reality.
13100
13101 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13102
13103         * config/microblaze/microblaze.c: Include rtl-iter.h.
13104         (microblaze_tls_referenced_p_1): Delete.
13105         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
13106
13107 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13108
13109         * config/mips/mips.c (mips_at_reg_p): Delete.
13110         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
13111
13112 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13113
13114         * config/mips/mips.c (mips_record_lo_sum): Replace with...
13115         (mips_record_lo_sums): ...this new function.
13116         (mips_reorg_process_insns): Update accordingly.
13117
13118 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13119
13120         * config/mips/mips.c (mips_sim_insn): Update comment.
13121         (mips_sim_wait_regs_2): Delete.
13122         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
13123
13124 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13125
13126         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
13127         and return a bool.  Iterate over all subrtxes here.
13128         (r10k_needs_protection_p): Update accordingly.
13129
13130 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13131
13132         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
13133         rather than an rtx pointer.  Change type of insn from "void *"
13134         to its real type.  Return bool rather than int.  Iterate over
13135         all subrtxes here.
13136         (r10k_needs_protection_p_store): Update accordingly.
13137         (r10k_needs_protection_p): Likewise.
13138
13139 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13140
13141         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
13142         (mips16_rewrite_pool_refs): Take the insn and constant pool as
13143         parameters.  Iterate over the instruction's pattern and return void.
13144         (mips16_lay_out_constants): Update accordingly.
13145
13146 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13147
13148         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
13149         (mips_refers_to_kernel_reg_p): ...this new function.
13150         (mips_expand_prologue): Update accordingly.
13151
13152 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13153
13154         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
13155         as a parameter instead of the containing MEM.  Iterate over all
13156         subrtxes.  Don't return a value.
13157         (mips_rewrite_small_data): Update call accordingly.
13158
13159 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13160
13161         * config/mips/mips.c: Include rtl-iter.h.
13162         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
13163         Take the context as a parameter instead of the containing MEM.
13164         Iterate over all subrtxes.
13165         (mips_small_data_pattern_p): Update call accordingly.
13166
13167 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13168
13169         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
13170         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
13171
13172 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13173
13174         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
13175         return a bool.  Replace "void *" with specific type.  Iterate
13176         over all subrtxes.
13177         (mep_store_data_bypass_1): Update calls accordingly.
13178
13179 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13180
13181         * config/mep/mep.c: Include rtl-iter.h.
13182         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
13183         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
13184
13185 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13186
13187         * config/xtensa/xtensa.c: Include rtl-iter.h.
13188         (xtensa_tls_referenced_p_1): Delete.
13189         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
13190
13191 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13192
13193         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
13194         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
13195
13196 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13197
13198         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
13199         rtx as argument and return the number of changes.
13200         * config/sh/sh.c: Include rtl-iter.h.
13201         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
13202         over all subrtxes.  Return the number of changes made.
13203         * config/sh/sh.md: Update caller accordingly.
13204
13205 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13206
13207         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
13208         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
13209
13210 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
13211
13212         * config/m68k/m68k.c: Include rtl-iter.h.
13213         (m68k_final_prescan_insn_1): Delete.
13214         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
13215
13216 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
13217
13218         PR tree-optimization/63641
13219         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
13220         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
13221
13222 2014-10-25  Alan Modra  <amodra@gmail.com>
13223
13224         PR rtl-optimization/63615
13225         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
13226         decomposing PLUS or MINUS if operands are not placed adjacent
13227         in the "ops" array.
13228
13229 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
13230
13231         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
13232         not allow e500 double in registers not satisyfing
13233         SPE_SIMD_REGNO_P.
13234
13235 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
13236
13237         * dwarf2out.c (declare_in_namespace): Only emit external
13238         declarations in the local scope once.
13239
13240 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
13241
13242         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
13243
13244 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
13245
13246         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
13247         update uses to use new macro arguments.
13248         (__LD3_LANE_FUNC): Likewise.
13249         (__LD4_LANE_FUNC): Likewise.
13250
13251 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
13252
13253         * config/aarch64/aarch64-builtins.c
13254         (aarch64_types_loadstruct_lane_qualifiers): Define.
13255         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
13256         ld4_lane): New builtins.
13257         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
13258         New pattern.
13259         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
13260         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
13261         (aarch64_ld2_lane<mode>): New expand.
13262         (aarch64_ld3_lane<mode>): Likewise.
13263         (aarch64_ld4_lane<mode>): Likewise.
13264         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
13265         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
13266
13267 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
13268
13269         * avr-protos.h (avr_out_sign_extend): New.
13270         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
13271         (avr_out_sign_extend): New function.
13272         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
13273         (extendhisi2, extendpsisi2): Use it.
13274         (adjust_len) [sext]: New.
13275
13276 2014-10-24  Martin Liska  <mliska@suse.cz>
13277
13278         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
13279         added.
13280
13281 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13282
13283         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
13284         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
13285         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
13286         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
13287
13288 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13289
13290         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
13291         do while (0).
13292         * config/aarch64/aarch64.c (is_mem_p): Delete.
13293         (is_memory_op): Rename to...
13294         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
13295         (dep_between_memop_and_curr): Assert that the input is a SET.
13296         (aarch64_madd_needs_nop): Add comment.  Do not call
13297         dep_between_memop_and_curr on NULL body.
13298         (aarch64_final_prescan_insn): Add comment.
13299         Include rtl-iter.h.
13300
13301 2014-10-24  Richard Biener  <rguenther@suse.de>
13302
13303         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
13304         to genmatch BUILD_LIBS instead.
13305
13306 2014-10-24  Richard Biener  <rguenther@suse.de>
13307
13308         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
13309         and build_call_expr_loc.
13310         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
13311         non_lvalue_loc to build it for GENERIC.
13312         (decision_tree::gen_generic): Add location argument to
13313         generic_simplify prototype.
13314         (capture_info): New class.
13315         (capture_info::capture_info): New constructor.
13316         (capture_info::walk_match): New method.
13317         (capture_info::walk_result): New method.
13318         (capture_info::walk_c_expr): New method.
13319         (dt_simplify::gen): Handle preserving side-effects for
13320         GENERIC code generation.
13321         (decision_tree::gen_generic): Do not reject operands
13322         with TREE_SIDE_EFFECTS.
13323         * generic-match.h: New file.
13324         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
13325         * match.pd: Add some constant folding patterns from fold-const.c.
13326         * fold-const.c: Include generic-match.h.
13327         (fold_unary_loc): Dispatch to generic_simplify.
13328         (fold_ternary_loc): Likewise.
13329         (fold_binary_loc): Likewise.  Remove patterns now implemented
13330         by generic_simplify.
13331         * gimple-fold.c (replace_stmt_with_simplification): New function.
13332         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
13333         (no_follow_ssa_edges): New function.
13334         (fold_stmt): New overload with valueization hook.  Use
13335         no_follow_ssa_edges for the overload without hook.
13336         (fold_stmt_inplace): Likewise.
13337         * gimple-fold.h (no_follow_ssa_edges): Declare.
13338
13339 2014-10-24  Felix Yang  <felix.yang@huawei.com>
13340         Jiji Jiang  <jiangjiji@huawei.com>
13341
13342         PR target/63173
13343         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
13344         (__LD3R_FUNC): Ditto.
13345         (__LD4R_FUNC): Ditto.
13346         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
13347          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
13348          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
13349          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
13350          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
13351          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
13352         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
13353          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
13354          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
13355          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
13356          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
13357          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
13358         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
13359          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
13360          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
13361          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
13362          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
13363          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
13364         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
13365         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
13366         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
13367         builtins.
13368         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
13369         (aarch64_simd_ld3r<mode>): Likewise.
13370         (aarch64_simd_ld4r<mode>): Likewise.
13371         (aarch64_ld2r<mode>): New expand.
13372         (aarch64_ld3r<mode>): Likewise.
13373         (aarch64_ld4r<mode>): Likewise.
13374
13375 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13376
13377         * rtlanal.c (get_base_term): Handle SCRATCH.
13378
13379 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13380
13381         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
13382         register pressure.
13383
13384 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13385
13386         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
13387         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
13388         (max_issue, choose_ready, sched_init): Update.
13389
13390 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13391
13392         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
13393         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
13394         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
13395         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
13396         (print_rank_for_schedule_stats): Print out elements of ready list that
13397         ended up on their respective places due to each of the sorting
13398         heuristics.
13399         (ready_sort): Update.
13400         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
13401         (schedule_block): Update.
13402
13403 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
13404
13405         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
13406         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
13407         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
13408         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
13409         (model_start_schedule): Update.
13410         (sched_pressure_start_bb): New static function.  Calculate
13411         sched_class_regs_num.
13412         (schedule_block): Use it.
13413         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
13414
13415 2014-10-24  Richard Biener  <rguenther@suse.de>
13416
13417         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
13418         host library and make sure to pull in the required libintl
13419         and libiconv dependencies.
13420
13421 2014-10-24  Richard Biener  <rguenther@suse.de>
13422
13423         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
13424
13425 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
13426
13427         PR bootstrap/63632
13428         * collect2.c (main): Filter out -fno-lto.
13429
13430 2014-10-24  Martin Liska  <mliska@suse.cz>
13431
13432         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
13433         division by zero in dumps.
13434         (sem_item_optimizer::merge_classes): Ditto.
13435
13436 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
13437
13438         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
13439
13440 2014-10-23  Ian Lance Taylor  <iant@google.com>
13441
13442         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
13443
13444 2014-10-23  Ian Lance Taylor  <iant@google.com>
13445
13446         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
13447
13448 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
13449
13450         PR debug/63623
13451         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
13452         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
13453         instead of only handling autoinc in dest if it is a MEM.
13454         (vt_stack_adjustments): Fix up formatting.
13455
13456 2014-10-23  DJ Delorie  <dj@redhat.com>
13457
13458         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
13459         independend of -mlarge.
13460         * config/msp430/constraints.md (Ys): Update comment.
13461
13462 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
13463
13464         PR target/63534
13465         PR target/63618
13466         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
13467         while it is pseudo.
13468         * dse.c (deletable_insn_p): Likewise.
13469
13470 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
13471
13472         * config/avr/avr.c: Fix GNU coding rules and typos.
13473         * config/avr/avr.h: Dito.
13474         * config/avr/avr-c.c: Dito.
13475         * config/avr/avr.md: Dito.
13476
13477 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
13478
13479         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
13480         New.
13481         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
13482         iterator.
13483         (define_expand "abs<mode>2"): Ditto.
13484
13485 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
13486
13487         * tree-core.h (tree_var_decl): Extend `function_code' field
13488         by one bit, move `regdecl_flag' field to ...
13489         (tree_decl_with_vis): Here.
13490         * tree.h (DECL_STATIC_CHAIN): Update struct name.
13491
13492 2014-10-23  Richard Biener  <rguenther@suse.de>
13493
13494         * Makefile.in (BUILD_CPPLIB): Add.
13495         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
13496         Drop LIBIBERTY.
13497
13498 2014-10-23  Richard Biener  <rguenther@suse.de>
13499
13500         * fold-const.c (fold_binary_loc): Preserve side-effects of
13501         X - X when simplifying to 0.
13502         * stor-layout.c (finish_bitfield_representative): Strip
13503         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
13504
13505 2014-10-22  Richard Biener  <rguenther@suse.de>
13506             Tobias Burnus <burnus@net-b.de>
13507
13508         PR lto/63603
13509         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
13510
13511 2014-10-22  Dehao Chen  <dehao@google.com>
13512
13513         * auto-profile.c: Change order of header files.
13514
13515 2014-10-22  Guozhi Wei  <carrot@google.com>
13516
13517         PR tree-optimization/63530
13518         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
13519         pointer alignment according to DR_MISALIGNMENT.
13520
13521 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
13522
13523         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
13524
13525 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
13526
13527         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
13528         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
13529         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
13530         * dominance.h: New.  Add prototypes for dominance.c.
13531         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
13532         * cfghooks.h: (struct profile_record) Relocate here.
13533         Relocate 2 prototypes from basic-block.h.
13534         * basic-block.h: Move prototypes and struct to new header files.
13535         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
13536         * rtl.h: Move a few prototypes to new header files.
13537         * cfgcleanup.c (merge_memattrs): Make static.
13538         * genopinit.c (main): Add predict.h to list of includes.
13539         * predict.h: Update prototype list to match predict.c.
13540         * predict.c (maybe_hot_count_p): Export.
13541         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
13542         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
13543         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
13544         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
13545         * profile.h: Adjust prototypes.
13546         * ifcvt.h: New.  Relocate struct ce_if_block here.
13547         * ifcvt.c: Include ifcvt.h.
13548         * config/frv/frv.c: Include ifcvt.h.
13549         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
13550
13551 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13552
13553         * lra.c (lra): Remove call to recog_init.
13554         * config/i386/i386.md (preferred_for_speed): New attribute
13555         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
13556         "enabled".  Remove check for sched1.
13557
13558 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13559
13560         * recog.h (recog_data_d): Remove enabled_alternatives.
13561         * recog.c (extract_insn): Don't set it.
13562         * reload.c (find_reloads): Call get_enabled_alternatives.
13563
13564 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13565
13566         * recog.h (constrain_operands): Add an alternative_mask parameter.
13567         (constrain_operands_cached): Likewise.
13568         (get_preferred_alternatives): Declare new form.
13569         * recog.c (get_preferred_alternatives): New bb-taking instance.
13570         (constrain_operands): Take the set of available alternatives as
13571         a parameter.
13572         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
13573         (extract_constrain_insn_cached): Update calls to constrain_operands.
13574         * caller-save.c (reg_save_code): Likewise.
13575         * ira.c (setup_prohibited_mode_move_regs): Likewise.
13576         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
13577         * ree.c (combine_reaching_defs): Likewise.
13578         * reload.c (can_reload_into): Likewise.
13579         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
13580         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
13581         (emit_insn_if_valid_for_reload): Likewise.
13582         * reorg.c (fill_slots_from_thread): Likewise.
13583         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
13584         * config/pa/pa.c (pa_can_combine_p): Likewise.
13585         * config/rl78/rl78.c (insn_ok_now): Likewise.
13586         * config/sh/sh.md (define_peephole2): Likewise.
13587         * final.c (final_scan_insn): Update call to constrain_operands_cached.
13588
13589 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13590
13591         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
13592         attributes.
13593         * genattr.c (main): Handle "preferred_for_size" and
13594         "preferred_for_speed" in the same way as "enabled".
13595         * recog.h (bool_attr): New enum.
13596         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
13597         (get_preferred_alternatives, check_bool_attrs): Declare.
13598         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
13599         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
13600         New functions.
13601         (get_enabled_alternatives): Use get_bool_attr_mask.
13602         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
13603         instead of recog_data.enabled_alternatives.
13604         * ira.c (ira_setup_alts): Likewise.
13605         * postreload.c (reload_cse_simplify_operands): Likewise.
13606         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
13607         * ira-lives.c (preferred_alternatives): New variable.
13608         (process_bb_node_lives): Set it.
13609         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
13610         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
13611         of recog_data.enabled_alternatives.
13612         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
13613         to preferred_alternatives.
13614         * lra-constraints.c (process_alt_operands): Update accordingly.
13615         * lra.c (lra_set_insn_recog_data): Likewise.
13616         (lra_update_insn_recog_data): Assert check_bool_attrs.
13617
13618 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13619
13620         * recog.h (extract_constrain_insn): Declare.
13621         * recog.c (extract_constrain_insn): New function.
13622         * lra.c (check_rtl): Use it.
13623         * postreload.c (reload_cse_simplify_operands): Likewise.
13624         * reg-stack.c (check_asm_stack_operands): Likewise.
13625         (subst_asm_stack_regs): Likewise.
13626         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
13627         * regrename.c (build_def_use): Likewise.
13628         * sel-sched.c (get_reg_class): Likewise.
13629         * config/arm/arm.c (note_invalid_constants): Likewise.
13630         * config/s390/predicates.md (execute_operation): Likewise.
13631
13632 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13633             Yury Gribov  <y.gribov@samsung.com>
13634
13635         * common.opt (flag_sanitize_recover): New variable.
13636         (fsanitize-recover): Remove Var/Init, deprecate.
13637         (fsanitize-recover=): New option.
13638         * doc/invoke.texi (fsanitize-recover): Update docs.
13639         * opts.c (finish_options): Use opts->x_flag_sanitize
13640         instead of flag_sanitize.  Prohibit -fsanitize-recover
13641         for anything besides UBSan.  Formatting.
13642         (common_handle_option): Handle OPT_fsanitize_recover_
13643         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
13644         instead of flag_sanitize.
13645         * asan.c (pass_sanopt::execute): Fix up formatting.
13646         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
13647         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
13648         instrument_bool_enum_load, ubsan_instrument_float_cast,
13649         instrument_nonnull_arg, instrument_nonnull_return): Check
13650         bits in flag_sanitize_recover bitmask instead of
13651         flag_sanitize_recover as bool flag.
13652
13653 2014-10-22  Jiong Wang <jiong.wang@arm.com>
13654
13655         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
13656
13657 2014-10-22  Renlin Li <renlin.li@arm.com>
13658
13659         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
13660         __ARM_FEATURE_IDIV__.
13661
13662 2014-10-22  Richard Biener  <rguenther@suse.de>
13663
13664         * Makefile.in (s-match): Adjust dependencies to only catch
13665         match.pd.
13666
13667 2014-10-22  Richard Biener  <rguenther@suse.de>
13668         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
13669
13670         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
13671         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
13672         (gimple-match.c): Generate by triggering s-match.
13673         (generic-match.c): Likewise.
13674         (s-match): Rule to build gimple-match.c and generic-match.c
13675         by running the genmatch generator program.
13676         (build/hash-table.o): Dependencies to build hash-table.c for the host.
13677         (build/genmatch.o): Dependencies to build genmatch.
13678         (genprog): Add match.
13679         (build/genmatch): Likewise.
13680         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
13681         * generic-match-head.c: New file.
13682         * gimple-match-head.c: Likewise.
13683         * gimple-match.h: Likewise.
13684         * genmatch.c: Likewise.
13685         * match.pd: Likewise.
13686         * builtins.h (fold_builtin_n): Export.
13687         * builtins.c (fold_builtin_n): Likewise.
13688         * gimple-fold.h (gimple_build): Declare various overloads.
13689         (gimple_simplify): Likewise.
13690         (gimple_convert): Re-implement in terms of gimple_build.
13691         * gimple-fold.c (gimple_convert): Remove.
13692         (gimple_build): New functions.
13693         * doc/match-and-simplify.texi: New file.
13694         * doc/gccint.texi: Add menu item Match and Simplify and include
13695         match-and-simplify.texi.
13696
13697 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13698
13699         PR target/63594
13700         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
13701         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
13702         even for just TARGET_AVX2, not only for
13703         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
13704         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
13705         otherwise build it using concatenation of 256-bit
13706         broadcast.
13707         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
13708         avx512 broadcast patterns.
13709         (vec_dup<mode>): Likewise.  For avx2 use
13710         v<sseintprefix>broadcast<bcstscalarsuff> instead of
13711         vbroadcast<ssescalarmodesuffix>.
13712         (AVX2_VEC_DUP_MODE): New mode iterator.
13713         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
13714         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
13715
13716         PR target/63542
13717         * config/i386/i386.c (ix86_pic_register_p): Also return
13718         true if x is a hard register with ORIGINAL_REGNO equal to
13719         pic_offset_table_rtx pseudo REGNO.
13720         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
13721         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
13722
13723 2014-10-22  Alan Modra  <amodra@gmail.com>
13724
13725         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
13726         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
13727         (gcc_obstack_init): Use obstack_specify_allocation in place of
13728         _obstack_begin.
13729         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
13730         (regexp_representation): Likewise.
13731         * godump.c (go_output_type): Likewise.
13732
13733 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
13734
13735         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
13736         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
13737         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
13738
13739 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
13740
13741         * doc/invoke.texi (pedantic-errors): Explain better.
13742
13743 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
13744             Vidya Praveen <vidya.praveen@atmel.com>
13745             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
13746             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
13747             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
13748
13749         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
13750         __MEMX for avrtiny.
13751         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
13752         (avr_nonconst_pointer_addrspace): Likewise.
13753         * config/avr/avr.h (AVR_HAVE_LPM): Define.
13754
13755         Added AVRTINY architecture to avr target.
13756         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
13757         (base_arch_s): member added for AVRTINY architecture.
13758         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
13759         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
13760         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
13761         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
13762         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
13763         in callee saved register list.
13764         (avr_option_override): CCP address updated for AVRTINY.
13765         (avr_init_expanders): tmp and zero rtx initialized as per arch.
13766         Reset avr_have_dimode if AVRTINY.
13767         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
13768         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
13769         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
13770         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
13771         (expand_epilogue): Likewise.
13772         (avr_print_operand): Print CCP address in case of AVRTINY also.
13773         <TBD>bad address
13774         (function_arg_regno_p): Check different register list for arguments
13775         if AVRTINY.
13776         (init_cumulative_args): Check for AVRTINY to update number of argument
13777         registers.
13778         (tiny_valid_direct_memory_access_range): New function. Return false if
13779         direct memory access range is not in accepted range for AVRTINY.
13780         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
13781         indirect load (with displacement) for AVRTINY.
13782         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
13783         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
13784         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
13785         indirect load (no displacement) for AVRTINY.
13786         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
13787         indirect load (with displacement) for AVRTINY.
13788         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
13789         indirect load for pre-decrement address.
13790         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
13791         functions. Update instruction length for AVRTINY.
13792         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
13793         SImode.
13794         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
13795         (out_movsi_r_mr): Likewise, for SImode.
13796         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
13797         indirect store (no displacement) for AVRTINY.
13798         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
13799         indirect store (with displacement) for AVRTINY.
13800         (out_movsi_mr_r): Emit out insn for IO address store. Update store
13801         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13802         store functions.
13803         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13804         indirect load (no displacement) for PSImode in AVRTINY.
13805         (avr_out_load_psi_reg_disp_tiny): New function to handle register
13806         indirect load (with displacement) for PSImode in AVRTINY.
13807         (avr_out_load_psi): Call PSImode register indirect load functions for
13808         AVRTINY. Update instruction length for AVRTINY.
13809         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13810         indirect store (no displacement) for PSImode in AVRTINY.
13811         (avr_out_store_psi_reg_disp_tiny): New function to handle register
13812         indirect store (with displacement) for PSImode in AVRTINY.
13813         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13814         register indirect store functions for AVRTINY.
13815         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13816         register indirect store (with displacement) for AVRTINY.
13817         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13818         register indirect store function for QImode in AVRTINY.
13819         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13820         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13821         indirect store (no displacement) for HImode in AVRTINY.
13822         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13823         indirect store (with displacement) for HImode in AVRTINY.
13824         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13825         indirect store for post-increment address in HImode.
13826         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13827         register indirect store function for HImode in AVRTINY.
13828         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13829         in case of AVRTINY.
13830         (order_regs_for_local_alloc): Updated register allocation order for
13831         AVRTINY.
13832         (avr_conditional_register_usage): New function. It is a target hook
13833         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13834         used registers list and register allocation order for AVRTINY.
13835         (avr_return_in_memory): Update return value size for AVRTINY.
13836         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13837         for AVRTINY arch and tiny program memory base address.
13838         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13839         (avr_texinfo): Added description for AVRTINY arch.
13840         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13841         STATIC_CHAIN_REGNUM for AVRTINY.
13842         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13843         * config/avr/avr.md: Added constants for tmp/ zero registers in
13844         AVRTINY. Attributes for AVRTINY added.
13845         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13846         memory access range.
13847         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13848         in AVRTINY memory access range.
13849         (*mov<mode>): Likewise for HImode and SImode.
13850         (*movsf): Likewise for SFmode.
13851         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13852         not have sbiw.
13853         * config/avr/avr-protos.h: Added function prototype for
13854         tiny_valid_direct_memory_access_range.
13855         * config/avr/avr-tables.opt: Regenerate.
13856         * gcc/config/avr/t-multilib: Regenerate.
13857         * doc/avr-mmcu.texi: Regenerate.
13858
13859 2014-10-21  Andrew Pinski  <apinski@cavium.com>
13860
13861         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13862         available option also.
13863         * config/aarch64/aarch64-cost-tables.h: New file.
13864         * config/aarch64/aarch64-cores.def (thunderx): New core.
13865         * config/aarch64/aarch64-tune.md: Regenerate.
13866         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13867         of config/arm/aarch-cost-tables.h.
13868         (thunderx_regmove_cost): New variable.
13869         (thunderx_tunings): New variable.
13870
13871 2014-10-21  Dehao Chen  <dehao@google.com>
13872
13873         * auto-profile.c: New file.
13874         * auto-profile.h: New file.
13875         * basic-block.h (maybe_hot_count_p): New export func.
13876         (add_working_set): New export func.
13877         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13878         (GCOV_TAG_AFDO_FUNCTION): Likewise.
13879         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13880         * opts.c (enable_fdo_optimizations): New func.
13881         (common_handle_option): Handle -fauto-profile flag.
13882         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13883         (class pass_early_inline): Export early_inliner.
13884         (early_inliner): Likewise.
13885         (pass_early_inline::execute): Likewise.
13886         * ipa-inline.h (early_inliner): Likewise.
13887         * predict.c (maybe_hot_count_p): New export func.
13888         (counts_to_freqs): AutoFDO logic.
13889         (rebuild_frequencies): Likewise.
13890         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13891         * profile.c (add_working_set): New func.
13892         * Makefile.in (auto-profile.o): New object file.
13893         * passes.def (pass_ipa_auto_profile): New pass.
13894         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13895         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13896         * toplev.c (compile_file): AutoFDO logic.
13897         * doc/invoke.texi (-fauto-profile): New doc.
13898         * coverage.c (coverage_init): AutoFDO logic.
13899         * common.opt (-fauto-profile): New flag.
13900         * timevar.def (TV_IPA_AUTOFDO): New tag.
13901         * value-prof.c (gimple_alloc_histogram_value): New export func.
13902         (check_ic_target): Likewise.
13903         * value-prof.h (gimple_alloc_histogram_value): Likewise.
13904         (check_ic_target): Likewise.
13905
13906 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
13907
13908         * cgraph.c (cgraph_c_finalize): New function.
13909         * cgraph.h (cgraph_c_finalize): New prototype.
13910         (cgraphunit_c_finalize): New prototype.
13911         * cgraphunit.c (first_analyzed): Move from analyze_functions
13912         to file-scope.
13913         (first_analyzed_var): Likewise.
13914         (analyze_functions): Move static variables into file-scope.
13915         (cgraphunit_c_finalize): New function.
13916         * diagnostic.c (diagnostic_finish): Free the memory for
13917         context->classify_diagnostic and context->printer, running the
13918         destructor for the latter.
13919         (bt_stop): Use toplev::main.
13920         * dwarf2out.c (dwarf2out_finalize): New function.
13921         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13922         * gcse.c (gcse_c_finalize): New function.
13923         * gcse.h (gcse_c_finalize): New prototype.
13924         * ggc-page.c (init_ggc): Make idempotent.
13925         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13926         * ipa-cp.c (ipa_cp_c_finalize): New function.
13927         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13928         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13929         a field of class pass_ipa_pure_const.
13930         (node_duplication_hook_holder): Likewise.
13931         (node_removal_hook_holder): Likewise.
13932         (register_hooks): Convert to method...
13933         (pass_ipa_pure_const::register_hooks): ...here, converting
13934         static variable init_p into...
13935         (pass_ipa_pure_const::init_p): ...new field.
13936         (pure_const_generate_summary): Update invocation of
13937         register_hooks to invoke as a method of current_pass.
13938         (pure_const_read_summary): Likewise.
13939         (propagate): Convert to...
13940         (pass_ipa_pure_const::execute): ...method.
13941         * ipa-reference.c (ipa_init): Move static bool init_p from here
13942         to...
13943         (ipa_init_p): New file-scope variable, so that it can be reset
13944         when repeatedly invoking the compiler within one process by...
13945         (ipa_reference_c_finalize): New function.
13946         * ipa-reference.h (ipa_reference_c_finalize): New.
13947         * main.c (main): Replace invocation of toplev_main with
13948         construction of a toplev instance, and call its "main" method.
13949         * params.c (global_init_params): Add an assert that
13950         params_finished is false.
13951         (params_c_finalize): New.
13952         * params.h (params_c_finalize): New.
13953         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13954         invoking generate_summary, for the benefit of pass_ipa_pure_const.
13955         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13956         before calling write_summary hook.
13957         (ipa_write_optimization_summaries_1): Likewise when calling
13958         write_optimization_summary hook.
13959         (ipa_read_summaries_1): Likewise for read_summary hook.
13960         (ipa_read_optimization_summaries_1): Likewise for
13961         read_optimization_summary hook.
13962         (execute_ipa_stmt_fixups): Likewise.
13963         * stringpool.c (init_stringpool): Clean up if we're called more
13964         than once.
13965         * timevar.c (timevar_init): Ignore repeated calls.
13966         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13967         "ipa-prop.h".
13968         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13969         (initialize_rtl): Move static local "initialized_once"
13970         into file scope, and rename to...
13971         (rtl_initialized): New variable.
13972         (do_compile): Move timevar initialization from here to
13973         toplev::start_timevars.
13974         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13975         toplev::finalize): New functions.
13976         (toplev_main): Rename to...
13977         (toplev::main): ...this.
13978         * toplev.h (class toplev): New class.
13979
13980 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13981
13982         * loop-doloop.c: Include loop-unroll.h.
13983
13984 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13985
13986         * cfg.h: New.  Header file for cfg.c.
13987         * cfganal.h: New.  Header file for cfganal.c.
13988         * lcm.h: New.  Header file for lcm.c.
13989         * loop-unroll.h: New.  Header file for loop-unroll.h.
13990         * cfgloop.h: (unroll_loops): Remove prototype.
13991         * basic-block.h: Move prototypes and structs to new header files.
13992         Include cfg.h, cfganal.h, and lcm.h.
13993         * loop-init.c: Include loop-unroll.h.
13994         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13995         * modulo-sched.c: Include loop-unroll.h.
13996
13997 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13998
13999         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
14000         MARKER_BYTE_UNKNOWN markers when handling casts.
14001
14002 2014-10-21  Richard Biener  <rguenther@suse.de>
14003
14004         * tree-ssa-phiopt.c (value_replacement): Properly verify we
14005         are the non-singleton PHI.
14006
14007 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
14008
14009         PR tree-optimization/63563
14010         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
14011         if either dra or drb stmts are not normal loads/stores.
14012
14013 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
14014
14015         * config/i386/i386.c (expand_vec_perm_1): Fix
14016         expand_vec_perm_palignr case.
14017         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
14018         VI1_AVX512.
14019
14020 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
14021
14022         * cfgloopanal.c (seq_cost): Delete.
14023         * rtl.h (seq_cost): New prototype.
14024         * rtlanal.c (seq_cost): New function.
14025         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
14026
14027 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
14028
14029         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
14030         * basic-block.h: Remove prototypes for cfgrtl.c.
14031         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
14032         prototypes to cfgrtl.h.
14033         * profile.h (profile_info): Add extern export declaration.
14034         * rtl.h: Remove prototypes for cfgrtl.h.
14035         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
14036         * ipa-inline.c: Include profile.h.
14037         * loop-unroll.c: Ditto.
14038         * modulo-sched.c: Ditto.
14039         * postreload-gcse.c: Ditto.
14040         * predict.c: Ditto.
14041         * sched-ebb.c: Ditto.
14042         * sched-rgn.c: Ditto.
14043         * tracer.c: Ditto.
14044         * tree-ssa-loop-ivcanon.c: Ditto.
14045
14046 2014-10-20  Richard Biener  <rguenther@suse.de>
14047
14048         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
14049         operands to get a def operand kind match.  Signal mismatches
14050         to the parent so we can try swapping its operands.
14051         (vect_build_slp_tree): Try swapping operands if they have
14052         a mismatched operand kind.
14053
14054 2014-10-20  Alan Modra  <amodra@gmail.com>
14055
14056         PR debug/60655
14057         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
14058         Increase "ops" array size.  Correct array size tests.  Init
14059         n_constants in loop.  Break out of innermost loop when finding
14060         a trivial CONST expression.
14061
14062 2014-10-20  Martin Liska  <mliska@suse.cz>
14063
14064         PR ipa/63583
14065         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
14066         Gimple tempate string is compared.
14067
14068 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
14069
14070         * varasm.c (const_alias_set): Remove.
14071         (init_varasm_once): Remove initialization of const_alias_set.
14072         (build_constant_desc): Do not set alias set to const_alias_set.
14073
14074 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
14075
14076         * configure: Regenerate.
14077         * configure.ac: Move the test for section attribute specifier "e" in GAS
14078         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
14079         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
14080         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
14081         ifdef HAVE_GAS_SECTION_EXCLUDE.
14082
14083 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
14084
14085         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
14086         match_operand expression.
14087
14088 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
14089             David Edelsohn  <dje.gcc@gmail.com>
14090
14091         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
14092         function.
14093         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
14094
14095 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14096
14097         * doc/invoke.texi (Options to Request or Suppress Warnings):
14098         Explain options precedence.
14099         (Wtrampolines): Do not indent paragraph.
14100
14101 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
14102
14103         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
14104         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
14105         (pa_jump_in_call_delay): Likewise.
14106         * config/pa/pa.c (pa_option_override): Remove jump in call delay
14107         override.
14108         (pa_output_millicode_call): Remove support for jump in call delay.
14109         (pa_output_call): Likewise.
14110         (pa_jump_in_call_delay): Delete.
14111         (pa_following_call): Likewise.
14112         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
14113         (uncond_branch): Remove following call check from attribute length.
14114
14115 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
14116
14117         PR target/53513
14118         * config/sh/sh-modes.def (PSI): Remove.
14119         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
14120         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
14121         (sh_reorg): Remove commented out FPSCR code.
14122         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
14123         insn instead of move insn.
14124         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
14125         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
14126         handling.
14127         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
14128         (sh1_builtin_p): Uncomment.
14129         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
14130         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
14131         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
14132         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
14133         (general_movsrc_operand, general_movdst_operand): Disallow
14134         fpscr_operand.
14135         * config/sh/sh.md (FPSCR_FR): New constant.
14136         (push_fpscr): Emit sts_fpscr insn.
14137         (pop_fpscr): Emit lds_fpscr_insn.
14138         (movsi_ie): Disallow FPSCR operands.
14139         (fpu_switch, unnamed related split, extend_psi_si,
14140         truncate_si_psi): Remove insns.
14141         (lds_fpscr, sts_fpscr): New insns.
14142         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
14143
14144 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
14145
14146         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
14147         (clone_inlined_nodes): Do not overwrite the clone if above predicate
14148         returns true.
14149
14150 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
14151
14152         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
14153         (expand_vec_perm_d): Ditto.
14154         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
14155         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
14156         V4DFmode.
14157         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
14158         (ix86_expand_sse_unpack): Handle V64QImode.
14159         (expand_vec_perm_blend): Update conditions for TARGET, handle
14160         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
14161         (expand_vec_perm_pshufb): Handle V64QImode.
14162         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
14163         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
14164         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
14165         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
14166         (ix86_expand_vecop_qihi): Handle V64QImode.
14167         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
14168         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
14169         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
14170         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
14171         (mul<mode>3): Use VI1_AVX512.
14172         (<sse2_avx2>_packsswb): Ditto.
14173         (<sse2_avx2>_packuswb): Ditto.
14174         (<ssse3_avx2>_pshufb<mode>3): Ditto.
14175         (<shift_insn><mode>3): Ditto.
14176
14177 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
14178
14179         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
14180         conditions to fix bootstrap.
14181
14182 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
14183
14184         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
14185
14186 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14187             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14188             Anna Tikhonova  <anna.tikhonova@intel.com>
14189             Ilya Tocar  <ilya.tocar@intel.com>
14190             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14191             Ilya Verbin  <ilya.verbin@intel.com>
14192             Kirill Yukhin  <kirill.yukhin@intel.com>
14193             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14194
14195         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
14196         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
14197         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
14198         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
14199         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
14200         (define_expand "vec_init<mode>"): Use VF48_I1248.
14201
14202 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14203             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14204             Anna Tikhonova  <anna.tikhonova@intel.com>
14205             Ilya Tocar  <ilya.tocar@intel.com>
14206             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14207             Ilya Verbin  <ilya.verbin@intel.com>
14208             Kirill Yukhin  <kirill.yukhin@intel.com>
14209             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14210
14211         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
14212         expand_sse2_mulvxdi3.
14213
14214 2014-10-17  Richard Biener  <rguenther@suse.de>
14215
14216         * fold-const.c (fold_comparison): Remove redundant constant
14217         folding and operand swapping.
14218         (fold_binary_loc): Do comparison operand swapping here.
14219         (fold_ternary_loc): Canonicalize operand order for
14220         commutative ternary operations.
14221         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
14222         and FMA_EXPR.
14223
14224 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
14225
14226         PR tree-optimization/63464
14227         * gimple.h (gimple_seq_discard): New prototype.
14228         * gimple.c: Include stringpool.h and tree-ssanames.h.
14229         (gimple_seq_discard): New function.
14230         * optabs.h (lshift_cheap_p): New prototype.
14231         * optabs.c (lshift_cheap_p): New function, moved from...
14232         * tree-switch-conversion.c (lshift_cheap_p): ... here.
14233         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
14234         (reassoc_branch_fixups): New variable.
14235         (update_range_test): Add otherrangep and seq arguments.
14236         Unshare exp.  If otherrange is NULL, use for other ranges
14237         array of pointers pointed by otherrangep instead.
14238         Emit seq before gimplified statements for tem.
14239         (optimize_range_tests_diff): Adjust update_range_test
14240         caller.
14241         (optimize_range_tests_xor): Likewise.  Fix up comment.
14242         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
14243         functions.
14244         (optimize_range_tests): Adjust update_range_test caller.
14245         Call optimize_range_tests_to_bit_test.
14246         (branch_fixup): New function.
14247         (execute_reassoc): Call branch_fixup.
14248
14249         PR tree-optimization/63302
14250         * tree-ssa-reassoc.c (optimize_range_tests_xor,
14251         optimize_range_tests_diff): Use !integer_pow2p () instead of
14252         tree_log2 () < 0.
14253
14254 2014-10-17  Martin Liska  <mliska@suse.cz>
14255
14256         * ipa-icf.c (sem_function::merge): Local flags are set to false
14257         to enforce equal calling convention to be used.
14258         * opts.c (common_handle_option): Indentation fix.
14259
14260 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
14261
14262         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
14263
14264 2014-10-17  Tom de Vries  <tom@codesourcery.com>
14265
14266         PR rtl-optimization/61605
14267         * regcprop.c (copyprop_hardreg_forward_1): Use
14268         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
14269
14270 2014-10-17  Tom de Vries  <tom@codesourcery.com>
14271
14272         PR rtl-optimization/61605
14273         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.
14274         Don't notice stores for noops.  Don't regard noops as copies.
14275
14276 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
14277
14278         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
14279         register in a special way.
14280         (__cpuid_count): Ditto.
14281         * config/i386/driver-i386.h: Protect with
14282         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
14283         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
14284         is required to compile the function.
14285
14286 2014-10-16  DJ Delorie  <dj@redhat.com>
14287
14288         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
14289         integers.
14290
14291         * config/rs6000/rs6000-c.c (rid_int128): New.
14292         (rs6000_macro_to_expand): Use instead of RID_INT128.
14293
14294 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
14295
14296         * function.h: Flatten file.  Remove includes, adjust prototypes to
14297         reflect only what is in function.h.
14298         (enum direction, struct args_size, struct locate_and_pad_arg_data,
14299         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
14300         from expr.h.
14301         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
14302         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
14303         prototypes to predict.h.
14304         (init_varasm_status): Move prototype to varasm.h.
14305         * expr.h: Adjust include files.
14306         (enum direction, struct args_size, struct locate_and_pad_arg_data,
14307         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
14308         to function.h.
14309         (locate_and_pad_parm): Move prototype to function.h.
14310         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
14311         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
14312         assign_temp, reposition_prologue_and_epilogue_notes,
14313         prologue_epilogue_contains, sibcall_epilogue_contains,
14314         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
14315         set_return_jump_label): Move prototypes to function.h.
14316         * predict.h (optimize_function_for_size_p,
14317         optimize_function_for_speed_p): Relocate prototypes from function.h.
14318         * shrink-wrap.h (emit_return_into_block, active_insn_between,
14319         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
14320         function.h.
14321         * varasm.h (init_varasm_status): Relocate prototype from function.h.
14322         * genattrtab.c (write_header): Add predict.h to include list.
14323         * genconditions.c (write_header): Add predict.h to include list.
14324         * genemit.c (main): Adjust header file includes.
14325         * gengtype.c (ifiles): Add flattened function.h header files.
14326         * genoutput.c (output_prologue): Add predict.h to include list.
14327         * genpreds.c (write_insn_preds_c): Adjust header file includes.
14328         * genrecog.c (write_header): Add flattened function.h header files.
14329         * alias.c: Adjust include files.
14330         * auto-inc-dec.c: Likewise.
14331         * basic-block.h: Likewise.
14332         * bb-reorder.c: Likewise.
14333         * bt-load.c: Likewise.
14334         * builtins.c: Likewise.
14335         * caller-save.c: Likewise.
14336         * calls.c: Likewise.
14337         * cfgbuild.c: Likewise.
14338         * cfgcleanup.c: Likewise.
14339         * cfgexpand.c: Likewise.
14340         * cfgloop.c: Likewise.
14341         * cfgloop.h: Likewise.
14342         * cfgrtl.c: Likewise.
14343         * cgraph.h: Likewise.
14344         * cgraphclones.c: Likewise.
14345         * cgraphunit.c: Likewise.
14346         * combine-stack-adj.c: Likewise.
14347         * combine.c: Likewise.
14348         * coverage.c: Likewise.
14349         * cprop.c: Likewise.
14350         * cse.c: Likewise.
14351         * cselib.c: Likewise.
14352         * dbxout.c: Likewise.
14353         * ddg.c: Likewise.
14354         * df-core.c: Likewise.
14355         * df-problems.c: Likewise.
14356         * df-scan.c: Likewise.
14357         * dojump.c: Likewise.
14358         * dwarf2cfi.c: Likewise.
14359         * dwarf2out.c: Likewise.
14360         * emit-rtl.c: Likewise.
14361         * except.c: Likewise.
14362         * explow.c: Likewise.
14363         * expr.c: Likewise.
14364         * final.c: Likewise.
14365         * function.c: Likewise.
14366         * gcse.c: Likewise.
14367         * gimple-fold.c: Likewise.
14368         * gimple-low.c: Likewise.
14369         * gimple-streamer.h: Likewise.
14370         * haifa-sched.c: Likewise.
14371         * ifcvt.c: Likewise.
14372         * ira.c: Likewise.
14373         * jump.c: Likewise.
14374         * lcm.c: Likewise.
14375         * loop-invariant.c: Likewise.
14376         * lra-assigns.c: Likewise.
14377         * lra-coalesce.c: Likewise.
14378         * lra-constraints.c: Likewise.
14379         * lra-eliminations.c: Likewise.
14380         * lra-lives.c: Likewise.
14381         * lra-spills.c: Likewise.
14382         * lra.c: Likewise.
14383         * lto-cgraph.c: Likewise.
14384         * lto-section-in.c: Likewise.
14385         * lto-section-out.c: Likewise.
14386         * lto-streamer-in.c: Likewise.
14387         * lto-streamer-out.c: Likewise.
14388         * mode-switching.c: Likewise.
14389         * modulo-sched.c: Likewise.
14390         * omp-low.c: Likewise.
14391         * optabs.c: Likewise.
14392         * passes.c: Likewise.
14393         * postreload-gcse.c: Likewise.
14394         * postreload.c: Likewise.
14395         * predict.c: Likewise.
14396         * profile.c: Likewise.
14397         * recog.c: Likewise.
14398         * ree.c: Likewise.
14399         * reg-stack.c: Likewise.
14400         * regcprop.c: Likewise.
14401         * reginfo.c: Likewise.
14402         * regrename.c: Likewise.
14403         * reload.c: Likewise.
14404         * reload1.c: Likewise.
14405         * reorg.c: Likewise.
14406         * resource.c: Likewise.
14407         * rtlanal.c: Likewise.
14408         * sched-deps.c: Likewise.
14409         * sched-ebb.c: Likewise.
14410         * sched-rgn.c: Likewise.
14411         * sel-sched-dump.c: Likewise.
14412         * sel-sched-ir.c: Likewise.
14413         * sel-sched.c: Likewise.
14414         * shrink-wrap.c: Likewise.
14415         * simplify-rtx.c: Likewise.
14416         * statistics.c: Likewise.
14417         * stmt.c: Likewise.
14418         * stor-layout.c: Likewise.
14419         * store-motion.c: Likewise.
14420         * symtab.c: Likewise.
14421         * targhooks.c: Likewise.
14422         * toplev.c: Likewise.
14423         * trans-mem.c: Likewise.
14424         * tree-cfg.c: Likewise.
14425         * tree-cfgcleanup.c: Likewise.
14426         * tree-dfa.c: Likewise.
14427         * tree-eh.c: Likewise.
14428         * tree-inline.c: Likewise.
14429         * tree-into-ssa.c: Likewise.
14430         * tree-nested.c: Likewise.
14431         * tree-nrv.c: Likewise.
14432         * tree-profile.c: Likewise.
14433         * tree-ssa-alias.c: Likewise.
14434         * tree-ssa-ccp.c: Likewise.
14435         * tree-ssa-copy.c: Likewise.
14436         * tree-ssa-copyrename.c: Likewise.
14437         * tree-ssa-dom.c: Likewise.
14438         * tree-ssa-operands.c: Likewise.
14439         * tree-ssa-propagate.c: Likewise.
14440         * tree-ssa-structalias.c: Likewise.
14441         * tree-ssa-tail-merge.c: Likewise.
14442         * tree-ssa-threadedge.c: Likewise.
14443         * tree-ssa-threadupdate.c: Likewise.
14444         * tree-ssa-uncprop.c: Likewise.
14445         * tree-ssa-uninit.c: Likewise.
14446         * tree-ssa.c: Likewise.
14447         * tree-stdarg.c: Likewise.
14448         * tree-tailcall.c: Likewise.
14449         * tree.c: Likewise.
14450         * tsan.c: Likewise.
14451         * valtrack.c: Likewise.
14452         * varasm.c: Likewise.
14453         * vmsdbgout.c: Likewise.
14454         * web.c: Likewise.
14455         * config/aarch64/aarch64.c: Add flattened includes from function.h.
14456         * config/alpha/alpha.c: Likewise.
14457         * config/arc/arc.c: Likewise.
14458         * config/arm/arm.c: Likewise.
14459         * config/avr/avr-log.c: Likewise.
14460         * config/avr/avr.c: Likewise.
14461         * config/bfin/bfin.c: Likewise.
14462         * config/c6x/c6x.c: Likewise.
14463         * config/cr16/cr16.c: Likewise.
14464         * config/cris/cris.c: Likewise.
14465         * config/darwin.c: Likewise.
14466         * config/epiphany/epiphany.c: Likewise.
14467         * config/epiphany/mode-switch-use.c: Likewise.
14468         * config/epiphany/resolve-sw-modes.c: Likewise.
14469         * config/fr30/fr30.c: Likewise.
14470         * config/frv/frv.c: Likewise.
14471         * config/h8300/h8300.c: Likewise.
14472         * config/i386/i386.c: Likewise.
14473         * config/ia64/ia64.c: Likewise.
14474         * config/iq2000/iq2000.c: Likewise.
14475         * config/lm32/lm32.c: Likewise.
14476         * config/m32c/m32c.c: Likewise.
14477         * config/m32r/m32r.c: Likewise.
14478         * config/m68k/m68k.c: Likewise.
14479         * config/mcore/mcore.c: Likewise.
14480         * config/mep/mep-pragma.c: Likewise.
14481         * config/mep/mep.c: Likewise.
14482         * config/microblaze/microblaze.c: Likewise.
14483         * config/mips/mips.c: Likewise.
14484         * config/mmix/mmix.c: Likewise.
14485         * config/mn10300/mn10300.c: Likewise.
14486         * config/moxie/moxie.c: Likewise.
14487         * config/msp430/msp430.c: Likewise.
14488         * config/nds32/nds32-cost.c: Likewise.
14489         * config/nds32/nds32-fp-as-gp.c: Likewise.
14490         * config/nds32/nds32-intrinsic.c: Likewise.
14491         * config/nds32/nds32-isr.c: Likewise.
14492         * config/nds32/nds32-md-auxiliary.c: Likewise.
14493         * config/nds32/nds32-memory-manipulation.c: Likewise.
14494         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14495         * config/nds32/nds32-predicates.c: Likewise.
14496         * config/nds32/nds32.c: Likewise.
14497         * config/nios2/nios2.c: Likewise.
14498         * config/pa/pa.c: Likewise.
14499         * config/pdp11/pdp11.c: Likewise.
14500         * config/rl78/rl78.c: Likewise.
14501         * config/rs6000/rs6000.c: Likewise.
14502         * config/rx/rx.c: Likewise.
14503         * config/s390/s390.c: Likewise.
14504         * config/score/score.c: Likewise.
14505         * config/sh/sh.c: Likewise.
14506         * config/sparc/sparc.c: Likewise.
14507         * config/spu/spu.c: Likewise.
14508         * config/stormy16/stormy16.c: Likewise.
14509         * config/tilegx/tilegx.c: Likewise.
14510         * config/tilepro/tilepro.c: Likewise.
14511         * config/v850/v850.c: Likewise.
14512         * config/vax/vax.c: Likewise.
14513         * config/xtensa/xtensa.c: Likewise.
14514
14515 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
14516
14517         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
14518         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
14519
14520 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
14521
14522         * config/sh/sh-protos.h (fldi_ok): Remove.
14523         * config/sh/sh.c (fldi_ok): Likewise.
14524         (sh_secondary_reload): Don't use fldi_ok.
14525         * config/sh/constraints.md (G constraint, H constraint): Don't use
14526         fldi_ok.
14527
14528 2014-10-16  Martin Liska  <mliska@suse.cz>
14529
14530         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
14531         Cast to unsigned long.
14532         (sem_item_optimizer::dump_cong_classes): Likewise.
14533
14534 2014-10-16  Tom de Vries  <tom@codesourcery.com>
14535
14536         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
14537         with SSA_NAME_IN_FREELIST.
14538
14539 2014-10-16  Richard Biener  <rguenther@suse.de>
14540
14541         PR middle-end/63554
14542         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
14543         (fold_builtin_strncat_chk): Move ...
14544         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
14545         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
14546
14547 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
14548
14549         PR target/59401
14550         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
14551         GBR to 0.
14552
14553 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14554             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14555             Anna Tikhonova  <anna.tikhonova@intel.com>
14556             Ilya Tocar  <ilya.tocar@intel.com>
14557             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14558             Ilya Verbin  <ilya.verbin@intel.com>
14559             Kirill Yukhin  <kirill.yukhin@intel.com>
14560             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14561
14562         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
14563         V64QI modes.
14564
14565 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14566             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14567             Anna Tikhonova  <anna.tikhonova@intel.com>
14568             Ilya Tocar  <ilya.tocar@intel.com>
14569             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14570             Ilya Verbin  <ilya.verbin@intel.com>
14571             Kirill Yukhin  <kirill.yukhin@intel.com>
14572             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14573
14574         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
14575         V16SI, V32HI, V64QI modes.
14576
14577 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
14578
14579         PR target/53513
14580         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
14581         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
14582
14583         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
14584         to match fp insn patterns.
14585         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
14586         list.
14587         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
14588         expand_df_unop, expand_df_binop): Remove.
14589         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
14590         FPSCR_STAT_REG as not call clobbered.
14591         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
14592         invoking fpscr_set_from_mem.
14593
14594         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
14595         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
14596         FPSCR_STAT_REG.
14597         (REGISTER_NAMES): Adjust.
14598         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14599         (FIRST_PSEUDO_REGISTER): Increase to 156.
14600         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
14601         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
14602         FPSCR_STAT_REG.
14603         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
14604         FPSCR_MODES_REG and FPSCR_STAT_REG.
14605         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14606
14607         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
14608         FPSCR_SZ): Add new constants.
14609         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
14610
14611         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
14612         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
14613         Use TARGET_FPU_ANY condition.
14614         (fpu_switch peephole2): Remove.
14615         (fpu_switch split): Use simple_mem_operand to capture the mem and
14616         adjust split implementation.
14617         (extend_psi_si, truncate_si_psi): New insns.
14618         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
14619         set of FPSCR_MODES_REG.
14620
14621         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
14622         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
14623         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
14624         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
14625         call_value_compact, call_value_compact_rettramp, call,
14626         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
14627         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
14628         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
14629         sibcall_value_compact, sibcall_value, call_value_pop_compact,
14630         call_value_pop_compact_rettramp, various unnamed splits):
14631         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
14632         function uses.
14633
14634         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
14635         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
14636         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
14637         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
14638         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
14639
14640         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
14641         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
14642         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
14643         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
14644         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
14645         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
14646         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
14647
14648 2014-10-16  Martin Liska  <mliska@suse.cz>
14649             Jan Hubicka  <hubicka@ucw.cz>
14650
14651         * Makefile.in: New object files included.
14652         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
14653         is printed.
14654         (verify_edge_corresponds_to_fndecl): More sensitive verification
14655         of nodes that are merged by IPA ICF.
14656         * cgraph.h (cgraph_node::num_references): New function.
14657         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
14658         * common.opt: New options ipa-icf, ipa-icf-functions and
14659         ipa-icf-variables introduced.
14660         * doc/invoke.texi: Documentation of new options introduced.
14661         * ipa-icf-gimple.c: New file.
14662         * ipa-icf-gimple.h: New file.
14663         * ipa-icf.c: New file.
14664         * ipa-icf.h: New file.
14665         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
14666         (input_overwrite_node): Likewise.
14667         * lto-section-in.c: New icf section added.
14668         * lto-streamer.h (enum lto_section_type): Likewise.
14669         * opts.c (common_handle_option): New option added.
14670         * passes.def: New pass included.
14671         * timevar.def: Time variable for IPA ICF added.
14672         * tree-pass.h: New IPA ICF pass entry point added.
14673
14674 2014-10-16  Richard Biener  <rguenther@suse.de>
14675
14676         PR tree-optimization/63168
14677         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
14678         latches if after merging they are no longer simple.
14679         * cfghooks.c (merge_blocks): Handle merging a latch block
14680         into another block.
14681
14682 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14683             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14684             Anna Tikhonova  <anna.tikhonova@intel.com>
14685             Ilya Tocar  <ilya.tocar@intel.com>
14686             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14687             Ilya Verbin  <ilya.verbin@intel.com>
14688             Kirill Yukhin  <kirill.yukhin@intel.com>
14689             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14690
14691         * config/i386/sse.md
14692         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
14693         support AVX-512VL instructions.
14694
14695 2014-10-16  DJ Delorie  <dj@redhat.com>
14696
14697         * tree-core.h: Fix comment to not assume pointers are multiples of
14698         bytes.
14699
14700 2014-10-15  Tom Tromey  <tromey@redhat.com>
14701
14702         * timevar.h (class auto_timevar): New class.
14703
14704 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
14705
14706         PR go/59432
14707         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14708         Remove the second alternative.
14709         (regprefix): Remove mode attribute.
14710         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
14711         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
14712
14713         Revert:
14714         2013-11-05  Ian Lance Taylor  <iant@google.com>
14715
14716         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14717         If possible, add .cfi directives to record change to bx.
14718         * config/i386/i386.c (ix86_emit_cfi): New function.
14719         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
14720
14721 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
14722
14723         PR lto/62026
14724         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
14725         to duplicate.
14726         * lto-streamer-out.c (lto_output): Handle correctly thunks that was
14727         born at WPA time.
14728
14729 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
14730
14731         PR rtl-optimization/63448
14732         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
14733         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
14734         (LRA_MAX_INHERITANCE_PASSES): Use it.
14735         (lra_constraint_iter_after_spill): Remove.
14736         (lra_assignment_iter): New.
14737         (lra_assignment_iter_after_spill): New.
14738         * lra-assigns.c (lra_assignment_iter): New.
14739         (lra_assignment_iter_after_spill): New.
14740         (former_reload_pseudo_spill_p): New.
14741         (spill_for): Set up former_reload_pseudo_spill_p.
14742         (setup_live_pseudos_and_spill_after_risky): Ditto.
14743         (assign_by_spills): Ditto.
14744         (lra_assign): Increment lra_assignment_iter.  Print the iteration
14745         number.  Reset former_reload_pseudo_spill_p.  Check
14746         lra_assignment_iter_after_spill.
14747         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
14748         lra_assignment_iter and lra_assignment_iter_after_spill.
14749         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
14750         (lra_constraints): Remove code with
14751         lra_assignment_iter_after_spill.
14752
14753 2014-10-15  Teresa Johnson  <tejohnson@google.com>
14754
14755         PR bootstrap/63432
14756         * tree-ssa-threadupdate.c (recompute_probabilities): Better
14757         overflow checking.
14758
14759 2014-10-15  Renlin Li <renlin.li@arm.com>
14760
14761         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
14762         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
14763         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
14764         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
14765
14766 2014-10-15  Richard Biener  <rguenther@suse.de>
14767
14768         * gimple-fold.c (gimple_fold_call): Properly keep virtual
14769         SSA form up-to-date when devirtualizing a call to
14770         __builtin_unreachable and avoid fixing up EH info here.
14771
14772 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14773             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14774             Anna Tikhonova  <anna.tikhonova@intel.com>
14775             Ilya Tocar  <ilya.tocar@intel.com>
14776             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14777             Ilya Verbin  <ilya.verbin@intel.com>
14778             Kirill Yukhin  <kirill.yukhin@intel.com>
14779             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14780
14781         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
14782         to support AVX-512BW.
14783         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
14784         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
14785         (define_insn "*<plusminus_insn><mode>3"): Ditto.
14786         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
14787         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14788         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
14789         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14790         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
14791         (define_insn "*andnot<mode>3"): Ditto.
14792         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
14793         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
14794         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
14795         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
14796         (define_insn "*abs<mode>2"): Remove masking support.
14797         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
14798         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
14799         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14800
14801 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14802             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14803             Anna Tikhonova  <anna.tikhonova@intel.com>
14804             Ilya Tocar  <ilya.tocar@intel.com>
14805             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14806             Ilya Verbin  <ilya.verbin@intel.com>
14807             Kirill Yukhin  <kirill.yukhin@intel.com>
14808             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14809
14810         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14811         * config/i386/sse.md
14812         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14813         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14814         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14815         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14816         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14817         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14818         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14819
14820 2014-10-15  Renlin Li <renlin.li@arm.com>
14821
14822         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14823
14824 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
14825
14826         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14827         MINUS_EXPR in unsigned type to avoid undefined behavior.
14828
14829 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
14830
14831         * stor-layout.c (self_referential_size): Do not promote arguments.
14832
14833 2014-10-15  Marek Polacek  <polacek@redhat.com>
14834
14835         * doc/invoke.texi: Update to reflect that GNU11 is the default
14836         mode for C.
14837         * c-common.h (c_language_kind): Update comment.
14838
14839 2014-10-15  Richard Biener  <rguenther@suse.de>
14840
14841         * hash-table.c: Include bconfig.h if building for the host.
14842         * hash-table.h: Do not include ggc.h on the host but just declare
14843         a few ggc allocation templates.
14844
14845 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14846             Jeff Law  <law@redhat.com>
14847
14848         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14849         multiple hard registers, use smaller mode derived from MODE.
14850
14851 2014-10-15  Andreas Schwab  <schwab@suse.de>
14852
14853         * explow.c (convert_memory_address_addr_space_1): Mark in_const
14854         as ATTRIBUTE_UNUSED.
14855
14856 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
14857
14858         * loop-unroll.c (decide_unrolling_and_peeling): Rename to
14859         (decide_unrolling): ... this one.
14860         (peel_loops_completely): Remove.
14861         (decide_peel_simple): Remove.
14862         (decide_peel_once_rolling): Remove.
14863         (decide_peel_completely): Remove.
14864         (peel_loop_simple): Remove.
14865         (peel_loop_completely): Remove.
14866         (unroll_and_peel_loops): Rename to ...
14867         (unroll_loops): ... this one; handle only unrolling.
14868         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and LPT_PEEL_SIMPLE.
14869         (UAP_PEEL): Remove.
14870         (unroll_and_peel_loops): Remove.
14871         (unroll_loops): New.
14872         * passes.def: Replace pass_rtl_unroll_and_peel_loops
14873         by pass_rtl_unroll_loops.
14874         * loop-init.c (gate_rtl_unroll_and_peel_loops,
14875         rtl_unroll_and_peel_loops): Rename to ...
14876         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14877         (pass_rtl_unroll_and_peel_loops): Rename to ...
14878         (pass_rtl_unroll_loops): ... this one.
14879         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14880         (make_pass_rtl_unroll_loops): New.
14881         * tree-ssa-loop-ivcanon.c (estimated_peeled_sequence_size,
14882         try_peel_loop): New.
14883         (canonicalize_loop_induction_variables): Update.
14884
14885 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14886
14887         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14888         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14889         !TARGET_HARD_FLOAT_POSTINC.
14890         (*lsip, *ssip): new instructions.
14891
14892 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14893
14894         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14895         remove.
14896
14897 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14898
14899         * explow.c (convert_memory_address_addr_space): Rename to ...
14900         (convert_memory_address_addr_space_1): This.  Add in_const argument.
14901         Inside a CONST RTL, permute the conversion and addition of constant
14902         for zero and sign extended pointers.
14903         (convert_memory_address_addr_space): New function.
14904
14905 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14906
14907         Revert:
14908         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14909
14910         PR middle-end/49721
14911         * explow.c (convert_memory_address_addr_space): Also permute the
14912         conversion and addition of constant for zero-extend.
14913
14914 2014-10-14  DJ Delorie  <dj@redhat.com>
14915
14916         * config/msp430/msp430-modes.def (PSI): Add.
14917
14918         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding):
14919         New.
14920         (msp430_hard_regno_nregs_with_padding): New.
14921         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14922         (msp430_hard_regno_nregs_has_padding): New.
14923         (msp430_hard_regno_nregs_with_padding): New.
14924         (msp430_unwind_word_mode): Use PSImode instead of SImode.
14925         (msp430_addr_space_legitimate_address_p): New.
14926         (msp430_asm_integer): New.
14927         (msp430_init_dwarf_reg_sizes_extra): New.
14928         (msp430_print_operand): Use X suffix for PSImode even in small model.
14929         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14930         (PTR_SIZE): ...but 4 bytes for EH.
14931         (SIZE_TYPE): Use __int20.
14932         (PTRDIFF_TYPE): Likewise.
14933         (INCOMING_FRAME_SP_OFFSET): Adjust.
14934         * config/msp430/msp430.md (movqi_topbyte): New.
14935         (movpsi): Use fixed suffixes.
14936         (movsipsi2): Enable for 430X, not large model.
14937         (extendhipsi2): Likewise.
14938         (zero_extendhisi2): Likewise.
14939         (zero_extendhisipsi2): Likewise.
14940         (extend_and_shift1_hipsi2): Likewise.
14941         (extendpsisi2): Likewise.
14942         (*bitbranch<mode>4_z): Fix suffix logic.
14943
14944 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
14945
14946         PR ada/62019
14947         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14948         do not choke on null node.
14949         <VAR_DECL>: Likewise.
14950
14951 2014-10-14  DJ Delorie  <dj@redhat.com>
14952
14953         * machmode.h (int_n_data_t): New.
14954         (int_n_enabled_p): New.
14955         (int_n_data): New.
14956         * tree.c (int_n_enabled_p): New.
14957         (int_n_trees): New.
14958         (make_or_reuse_type): Check for all __intN types, not just __int128.
14959         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
14960         entries.
14961         * tree.h (int128_integer_type_node): Remove.
14962         (int128_unsigned_type_node): Remove.
14963         (int_n_trees_t): New.
14964         (int_n_enabled_p): New.
14965         (int_n_trees): New.
14966         * toplev.c (standard_type_bitsize): New.
14967         (do_compile): Check which __intN types are enabled for the current run.
14968         * builtin-types.def (BT_INT128): Remove.
14969         (BT_UINT128): Remove.
14970         * machmode.def: Add macro to create __int128 for all targets.
14971         * stor-layout.c (mode_for_size): Support __intN types.
14972         (smallest_mode_for_size): Likewise.
14973         (initialize_sizetypes): Support __intN types.
14974         * genmodes.c (struct mode_data): Add int_n field.
14975         (blank_mode): Likewise.
14976         (INT_N): New.
14977         (make_int_n): New.
14978         (emit_insn_modes_h): Count __intN entries and define NUM_INT_N_ENTS.
14979         (emit_mode_int_n): New.
14980         (emit_insn_modes_c): Call it.
14981         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14982         types, not just __int128.
14983         * tree-core.h (integer_type_kind): Remove __int128-specific
14984         entries, reserve spots for __intN entries.
14985
14986         * config/msp430/msp430-modes.def (PSI): Add.
14987
14988 2014-10-14  Kito Cheng  <kito@0xlab.org>
14989
14990         * ira.c: Fix typo in comment.
14991         * ira.h: Ditto.
14992         * ira-build.c: Ditto.
14993         * ira-color.c: Ditto.
14994         * ira-emit.c: Ditto.
14995         * ira-int.h: Ditto.
14996         * ira-lives.c: Ditto.
14997
14998 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
14999
15000         PR rtl-optimization/63475
15001         * alias.c (true_dependence_1): Always use get_addr to extract
15002         true address operands from x_addr and mem_addr.  Use extracted
15003         address operands to check for references with alignment ANDs.
15004         Use extracted address operands with find_base_term and
15005         base_alias_check. For noncanonicalized operands call canon_rtx with
15006         extracted address operand.
15007         (write_dependence_1): Ditto.
15008         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
15009
15010 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
15011
15012         PR target/63534
15013         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
15014         __morestack local.
15015
15016 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15017             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15018             Anna Tikhonova  <anna.tikhonova@intel.com>
15019             Ilya Tocar  <ilya.tocar@intel.com>
15020             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15021             Ilya Verbin  <ilya.verbin@intel.com>
15022             Kirill Yukhin  <kirill.yukhin@intel.com>
15023             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15024
15025         * config/i386/i386.c
15026         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
15027         (ix86_expand_int_vcond): Ditto.
15028
15029 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15030             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15031             Anna Tikhonova  <anna.tikhonova@intel.com>
15032             Ilya Tocar  <ilya.tocar@intel.com>
15033             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15034             Ilya Verbin  <ilya.verbin@intel.com>
15035             Kirill Yukhin  <kirill.yukhin@intel.com>
15036             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15037
15038         * config/i386/i386.c
15039         (emit_reduc_half): Handle V64QI and V32HI mode.
15040         * config/i386/sse.md
15041         (define_mode_iterator VI_AVX512BW): New.
15042         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
15043
15044 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15045             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15046             Anna Tikhonova  <anna.tikhonova@intel.com>
15047             Ilya Tocar  <ilya.tocar@intel.com>
15048             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15049             Ilya Verbin  <ilya.verbin@intel.com>
15050             Kirill Yukhin  <kirill.yukhin@intel.com>
15051             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15052
15053         * config/i386/sse.md
15054         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
15055
15056 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15057             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15058             Anna Tikhonova  <anna.tikhonova@intel.com>
15059             Ilya Tocar  <ilya.tocar@intel.com>
15060             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15061             Ilya Verbin  <ilya.verbin@intel.com>
15062             Kirill Yukhin  <kirill.yukhin@intel.com>
15063             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15064
15065         * config/i386/i386.c
15066         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
15067         * config/i386/sse.md
15068         (define_mode_iterator VI): Add V64QI and V32HI modes.
15069
15070 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15071             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15072             Anna Tikhonova  <anna.tikhonova@intel.com>
15073             Ilya Tocar  <ilya.tocar@intel.com>
15074             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15075             Ilya Verbin  <ilya.verbin@intel.com>
15076             Kirill Yukhin  <kirill.yukhin@intel.com>
15077             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15078
15079         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
15080
15081 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15082             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15083             Anna Tikhonova  <anna.tikhonova@intel.com>
15084             Ilya Tocar  <ilya.tocar@intel.com>
15085             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15086             Ilya Verbin  <ilya.verbin@intel.com>
15087             Kirill Yukhin  <kirill.yukhin@intel.com>
15088             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15089
15090         * config/i386/sse.md
15091         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
15092         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
15093
15094 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15095             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15096             Anna Tikhonova  <anna.tikhonova@intel.com>
15097             Ilya Tocar  <ilya.tocar@intel.com>
15098             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15099             Ilya Verbin  <ilya.verbin@intel.com>
15100             Kirill Yukhin  <kirill.yukhin@intel.com>
15101             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15102
15103         * config/i386/sse.md
15104         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
15105         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
15106
15107 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15108             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15109             Anna Tikhonova  <anna.tikhonova@intel.com>
15110             Ilya Tocar  <ilya.tocar@intel.com>
15111             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15112             Ilya Verbin  <ilya.verbin@intel.com>
15113             Kirill Yukhin  <kirill.yukhin@intel.com>
15114             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15115
15116         * config/i386/sse.md
15117         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
15118         (define_mode_iterator VI2_AVX2): Add V32HI mode.
15119         (define_expand "mul<mode>3<mask_name>"): Add masking.
15120         (define_insn "*mul<mode>3<mask_name>"): Ditto.
15121         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
15122         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
15123         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
15124         (define_mode_attr SDOT_PMADD_SUF): Ditto.
15125         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
15126         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
15127         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
15128         (define_insn "avx2_packusdw"): Delete.
15129         (define_insn "sse4_1_packusdw"): Ditto.
15130         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
15131
15132 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15133             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15134             Anna Tikhonova  <anna.tikhonova@intel.com>
15135             Ilya Tocar  <ilya.tocar@intel.com>
15136             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15137             Ilya Verbin  <ilya.verbin@intel.com>
15138             Kirill Yukhin  <kirill.yukhin@intel.com>
15139             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15140
15141         * config/i386/sse.md
15142         (define_insn "vec_dup<mode>"): Update constraints.
15143
15144 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15145             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15146             Anna Tikhonova  <anna.tikhonova@intel.com>
15147             Ilya Tocar  <ilya.tocar@intel.com>
15148             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15149             Ilya Verbin  <ilya.verbin@intel.com>
15150             Kirill Yukhin  <kirill.yukhin@intel.com>
15151             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15152
15153         * config/i386/sse.md
15154         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
15155         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
15156         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
15157
15158 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15159             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15160             Anna Tikhonova  <anna.tikhonova@intel.com>
15161             Ilya Tocar  <ilya.tocar@intel.com>
15162             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15163             Ilya Verbin  <ilya.verbin@intel.com>
15164             Kirill Yukhin  <kirill.yukhin@intel.com>
15165             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15166
15167         * config/i386/sse.md
15168         (define_expand "mul<mode>3<mask_name>"): Add masking.
15169
15170 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15171             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15172             Anna Tikhonova  <anna.tikhonova@intel.com>
15173             Ilya Tocar  <ilya.tocar@intel.com>
15174             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15175             Ilya Verbin  <ilya.verbin@intel.com>
15176             Kirill Yukhin  <kirill.yukhin@intel.com>
15177             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15178
15179         * config/i386/sse.md
15180         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
15181         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
15182
15183 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15184             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15185             Anna Tikhonova  <anna.tikhonova@intel.com>
15186             Ilya Tocar  <ilya.tocar@intel.com>
15187             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15188             Ilya Verbin  <ilya.verbin@intel.com>
15189             Kirill Yukhin  <kirill.yukhin@intel.com>
15190             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15191
15192         * config/i386/sse.md
15193         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
15194         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
15195         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
15196         Ditto.
15197
15198 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15199             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15200             Anna Tikhonova  <anna.tikhonova@intel.com>
15201             Ilya Tocar  <ilya.tocar@intel.com>
15202             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15203             Ilya Verbin  <ilya.verbin@intel.com>
15204             Kirill Yukhin  <kirill.yukhin@intel.com>
15205             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15206
15207         * config/i386/sse.md
15208         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
15209         use VF_128_256 mode iterator and update assembler emit code.
15210         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
15211         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
15212         Add masking, use VF_128_256 mode iterator.
15213         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
15214         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
15215         Add masking, use VF_128_256 mode iterator and update assembler emit
15216         code.
15217         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
15218         (define_mode_attr avx512flogicsuff): Delete.
15219         (define_insn "avx512f_<logic><mode>"): Ditto.
15220         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
15221         MODE_TI.
15222         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
15223
15224 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15225             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15226             Anna Tikhonova  <anna.tikhonova@intel.com>
15227             Ilya Tocar  <ilya.tocar@intel.com>
15228             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15229             Ilya Verbin  <ilya.verbin@intel.com>
15230             Kirill Yukhin  <kirill.yukhin@intel.com>
15231             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15232
15233         * config/i386/sse.md
15234         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
15235         (define_expand "vashr<mode>3<mask_name>"): Add masking,
15236         use VI12_128 mode iterator.
15237         (define_expand "ashrv2di3<mask_name>"): New.
15238
15239 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15240             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15241             Anna Tikhonova  <anna.tikhonova@intel.com>
15242             Ilya Tocar  <ilya.tocar@intel.com>
15243             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15244             Ilya Verbin  <ilya.verbin@intel.com>
15245             Kirill Yukhin  <kirill.yukhin@intel.com>
15246             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15247
15248         * config/i386/i386.c
15249         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
15250         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
15251         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
15252         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
15253         CODE_FOR_avx512vl_ucmpv4si3_mask.
15254         * config/i386/sse.md
15255         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
15256         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
15257         (define_insn
15258         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
15259         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
15260         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
15261         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
15262         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
15263         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
15264
15265 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15266             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15267             Anna Tikhonova  <anna.tikhonova@intel.com>
15268             Ilya Tocar  <ilya.tocar@intel.com>
15269             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15270             Ilya Verbin  <ilya.verbin@intel.com>
15271             Kirill Yukhin  <kirill.yukhin@intel.com>
15272             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15273
15274         * config/i386/sse.md
15275         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
15276         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
15277         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
15278         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
15279         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
15280         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
15281         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
15282         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
15283         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
15284
15285 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15286             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15287             Anna Tikhonova  <anna.tikhonova@intel.com>
15288             Ilya Tocar  <ilya.tocar@intel.com>
15289             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15290             Ilya Verbin  <ilya.verbin@intel.com>
15291             Kirill Yukhin  <kirill.yukhin@intel.com>
15292             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15293
15294         * config/i386/sse.md
15295         (define_insn "avx512f_blendm<mode>"): Delete.
15296         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
15297         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
15298         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
15299         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
15300         (define_insn
15301         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
15302         Remove.
15303         (define_insn
15304         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
15305         New.
15306         (define_insn
15307         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
15308         Ditto.
15309         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
15310         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
15311         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
15312         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
15313         Delete.
15314         (define_insn
15315         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
15316         New.
15317         (define_insn
15318         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
15319         Ditto.
15320         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
15321         Delete.
15322         (define_insn
15323         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
15324         New.
15325         (define_insn
15326         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
15327         Ditto.
15328
15329 2014-10-14  Richard Biener  <rguenther@suse.de>
15330
15331         PR tree-optimization/63512
15332         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
15333         modified.
15334
15335 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
15336
15337         PR target/63260
15338         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
15339         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
15340         of FPSCR.
15341         (negsf2_i): Rename to *negsf2_i.
15342         (abssf2_i): Rename to *abssf2_i.
15343         (negdf2_i): Rename to *negdf2_i.
15344         (absdf2_i): Rename to *absdf2_i.
15345
15346 2014-10-14  Felix Yang  <felix.yang@huawei.com>
15347             Jeff Law  <law@redhat.com>
15348
15349         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
15350         "replace" into boolean bitfields; turn member "loop_depth" into a short
15351         integer; add new member "no_equiv" and "reserved".
15352         (no_equiv): Set no_equiv of struct equivalence if register is marked
15353         as having no known equivalence.
15354         (update_equiv_regs): Check all definitions for a multiple-set
15355         register to make sure that the RHS have the same value.
15356
15357 2014-10-13  Richard Henderson  <rth@redhat.com>
15358
15359         * combine-stack-adj.c (no_unhandled_cfa): New.
15360         (maybe_merge_cfa_adjust): New.
15361         (combine_stack_adjustments_for_block): Use them.
15362
15363 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
15364
15365         * Makefile.in (TAGS): Tag ../include files.
15366
15367 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15368
15369         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
15370         to rs6000_dbx_register_number.
15371         (DWARF_FRAME_REGNUM): Redefine as identity map.
15372         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
15373         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
15374         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
15375         argument to handle .debug_frame and .eh_frame directly.  Always
15376         translate SPE high register numbers.  Add special treatment for CR,
15377         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
15378
15379         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
15380         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
15381         (RS6000_USE_DWARF_NUMBERING): Define.
15382         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
15383         (RS6000_USE_DWARF_NUMBERING): Define.
15384         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
15385         (RS6000_USE_DWARF_NUMBERING): Define.
15386         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
15387         (RS6000_USE_DWARF_NUMBERING): Define.
15388         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
15389         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
15390
15391 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
15392
15393         * config/i386/i386.c (ix86_address_cost): Lower cost for
15394         when address contains GOT register.
15395
15396 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
15397             Vladimir Makarov  <vmakarov@redhat.com>
15398
15399         PR target/8340
15400         PR middle-end/47602
15401         PR rtl-optimization/55458
15402         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
15403         (ix86_init_pic_reg): New.
15404         (ix86_select_alt_pic_regnum): Add check on pseudo register.
15405         (ix86_save_reg): Likewise.
15406         (ix86_expand_prologue): Remove PIC register initialization
15407         now performed in ix86_init_pic_reg.
15408         (ix86_output_function_epilogue): Add check on pseudo register.
15409         (set_pic_reg_ever_alive): New.
15410         (legitimize_pic_address): Replace df_set_regs_ever_live with new
15411         set_pic_reg_ever_alive.
15412         (legitimize_tls_address): Likewise.
15413         (ix86_pic_register_p): New check.
15414         (ix86_delegitimize_address): Add check on pseudo register.
15415         (ix86_expand_call): Insert move from pseudo PIC register to ABI
15416         defined REAL_PIC_OFFSET_TABLE_REGNUM.
15417         (TARGET_INIT_PIC_REG): New.
15418         (TARGET_USE_PSEUDO_PIC_REG): New.
15419         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
15420         if pic_offset_table_rtx exists.
15421         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
15422         Document.
15423         * doc/tm.texi: Regenerate.
15424         * function.c (assign_parms): Generate pseudo register for PIC.
15425         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
15426         register.
15427         * ira-color.c (color_pass): Add check on pseudo register.
15428         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
15429         register.
15430         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
15431         register.
15432         (ira): Add target specific PIC register initialization.
15433         (do_reload): Keep PIC pseudo register.
15434         * lra-assigns.c (spill_for): Add checks on pseudo register.
15435         * lra-constraints.c (contains_symbol_ref_p): New.
15436         (lra_constraints): Enable lra risky transformations when PIC is pseudo
15437         register.
15438         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
15439         * target.def (use_pseudo_pic_reg): New.
15440         (init_pic_reg): New.
15441
15442 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
15443
15444         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
15445         Remove m_SILVERMONT and m_INTEL from the tune.
15446
15447 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15448
15449         PR libfortran/63471
15450         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
15451         when _HPUX_SOURCE is defined.
15452
15453 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
15454
15455         PR tree-optimization/62127
15456         * tree.c (remap_type_1): When remapping array, remap
15457         also its type.
15458
15459 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
15460
15461         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
15462         longer impact parallelization.
15463
15464 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
15465
15466         PR bootstrap/63496
15467         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
15468
15469 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
15470
15471         * asan.c (instrument_derefs): BIT_FIELD_REF added.
15472
15473 2014-10-13  Richard Biener  <rguenther@suse.de>
15474
15475         PR tree-optimization/63419
15476         * gimple-fold.h (gimple_convert): New function.
15477         * gimple-fold.c (gimple_convert): Likewise.
15478         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
15479         to split out required conversions early.
15480
15481 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
15482
15483         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
15484         Add the parts of an insn in reverse order, with the pattern at
15485         the top of the queue.  Detect when we're iterating over a SEQUENCE
15486         pattern and in that case just consider patterns of subinstructions.
15487
15488 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
15489
15490         PR target/59401
15491         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
15492         of rtx.
15493         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
15494         insn walking.
15495         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
15496         address.  Use def chains to handle GBR clobbering call insns.
15497
15498 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
15499
15500         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
15501         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
15502         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
15503         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
15504         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
15505         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
15506         * doc/gty.texi (for_user): Document new option.
15507         * gengtype.c (create_user_defined_type): Don't try to get a struct for
15508         char.
15509         (walk_type): Don't error out on for_user option.
15510         (write_func_for_structure): Emit user marking routines if requested by
15511         for_user option.
15512         (write_local_func_for_structure): Likewise.
15513         (main): Mark types with for_user option as used.
15514         * ggc.h (gt_pch_nx): Add overload for unsigned int.
15515         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
15516         * hash-table.h (ggc_hasher): New struct.
15517         (hash_table::create_ggc): New function.
15518         (gt_pch_nx): New overload for hash_table.
15519
15520 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
15521
15522         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
15523         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
15524         * config/sh/sh.c: Likewise.
15525         * config/sh/sh-mem.cc: Likewise.
15526         * config/sh/sh.md: Likewise.
15527         * config/sh/predicates.md: Likewise.
15528         * config/sh/sync.md: Likewise.
15529
15530 2014-10-11  Martin Liska  <mliska@suse.cz>
15531
15532         PR middle-end/63376
15533         * cgraphunit.c (symbol_table::process_new_functions): Missing call
15534         for call_cgraph_insertion_hooks added.
15535
15536 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
15537
15538         PR c/63495
15539         * stor-layout.c (min_align_of_type): Don't decrease alignment
15540         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
15541         TYPE_USER_ALIGN is set.
15542
15543 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
15544
15545         PR rtl-optimization/63483
15546         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
15547         references when alignment ANDs are involved.
15548         (write_dependence_p): Ditto.
15549         (may_alias_p): Ditto.
15550
15551 2014-10-10  Marek Polacek  <polacek@redhat.com>
15552
15553         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
15554         * doc/invoke.texi: Document -fsanitize=object-size.
15555         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
15556         or it into SANITIZE_UNDEFINED.
15557         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
15558         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
15559         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
15560         * opts.c (common_handle_option): Handle -fsanitize=object-size.
15561         * ubsan.c: Include tree-object-size.h.
15562         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
15563         (ubsan_expand_bounds_ifn): Use false instead of 0.
15564         (ubsan_expand_objsize_ifn): New function.
15565         (instrument_object_size): New function.
15566         (pass_ubsan::execute): Add object size instrumentation.
15567         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
15568
15569 2014-10-10  Richard Henderson  <rth@redhat.com>
15570
15571         PR target/63404
15572         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
15573         Restrict the set of expressions we're willing to move.
15574
15575 2014-10-10  Jeff Law  <law@redhat.com>
15576
15577         * ira.c (struct equivalence): Promote INIT_INSNs field to
15578         an rtx_insn_list.  Add comments.
15579         (no_equiv): Promote LIST to an rtx_insn_list.  Update
15580         testing for and creating the special marker.  Use methods
15581         to extract the insn and next pointers.  Promote INSN to an
15582         rtx_insn.
15583         (update_equiv_regs): Update test for special marker in the
15584         INIT_INSNs list.
15585
15586 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15587
15588         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
15589         * configure: Regenerate.
15590         * config/aarch64/aarch64.c (aarch64_override_options): Handle
15591         TARGET_FIX_ERR_A53_835769_DEFAULT.
15592         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
15593         value to 2.
15594         * doc/install.texi (aarch64*-*-*): Document
15595         new --enable-fix-cortex-a53-835769 option.
15596
15597 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15598             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15599
15600         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
15601         (ADJUST_INSN_LENGTH): Define.
15602         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
15603         * config/aarch64/aarch64.c (is_mem_p): New function.
15604         (is_memory_op): Likewise.
15605         (aarch64_prev_real_insn): Likewise.
15606         (is_madd_op): Likewise.
15607         (dep_between_memop_and_curr): Likewise.
15608         (aarch64_madd_needs_nop): Likewise.
15609         (aarch64_final_prescan_insn): Likewise.
15610         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
15611         and -mno-fix-cortex-a53-835769 options.
15612
15613 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
15614
15615         PR tree-optimization/63464
15616         * tree-switch-conversion.c (struct case_bit_test): Remove
15617         hi and lo fields, add wide_int mask field.
15618         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
15619         hi/lo fields into wide_int mask operations, optimize by pretending
15620         minval to be 0 if maxval is small enough.
15621         (process_switch): Adjust caller.
15622
15623 2014-10-10  Richard Biener  <rguenther@suse.de>
15624
15625         PR tree-optimization/63379
15626         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
15627         a neutral operand for min/max when it is not a reduction chain.
15628
15629 2014-10-10  Richard Biener  <rguenther@suse.de>
15630
15631         PR tree-optimization/63476
15632         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
15633         (BB_LIVE_VOP_ON_EXIT): New define.
15634         (create_expression_by_pieces): Assign VUSEs to stmts.
15635         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
15636         (pass_pre::execute): Assert virtual SSA form is up-to-date
15637         after insertion.
15638
15639 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
15640
15641         * lra-assigns.c (assign_by_spills): Error out on spill failure.
15642
15643 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
15644
15645         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
15646         assertion.
15647
15648 2014-10-09  Richard Biener  <rguenther@suse.de>
15649
15650         PR tree-optimization/63380
15651         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
15652         may trap.
15653
15654 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15655
15656         * config/avr/avr.opt (mmcu=): Change to have a string value.
15657         (mn-flash=, mskip-bug, march=, mrmw): New options.
15658         (HeaderInclude): New.
15659         (mmcu=): Remove Var / Init clauses.
15660         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
15661         -specs option.
15662         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
15663         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
15664         (SYMBOL_FLAG_IO_LOW): Define.
15665         (avr_device_to_as, avr_device_to_ld): Don't declare.
15666         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
15667         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
15668         (EXTRA_SPEC_FUNCTIONS): Don't define.
15669         (ASM_SPEC): Translate -arch= option to -mmcu= option.
15670         (LINK_SPEC): Translate -arch= option to -m= option.
15671         Don't use device_to_ld / device_to_data_start.
15672         (STARTFILE_SPEC): Now empty.
15673         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
15674         * config/avr/gen-avr-mmcu-specs.c: New file.
15675         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
15676         (s-device-specs): Likewise.
15677         (GCC_PASSES): Add s-device-specs.
15678         (install-driver): Depend on install-device-specs.
15679         (install-device-specs): New rule.
15680         * config/avr/avr.c (avr_option_override): Look up mcu arch by
15681         avr_arch_index and provide fallback initialization for avr_n_flash.
15682         (varasm.h): #include.
15683         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
15684         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
15685         (avr_attribute_table): Add "io", "address" and "io_low".
15686         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
15687         Add special handling for symbols with "io" and/or "address" attributes.
15688         (avr_asm_asm_output_aligned_bss): New function.
15689         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
15690         as appropriate.  Handle io_low attribute.
15691         (avr_out_sbxx_branch): Handle symbolic io addresses.
15692         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
15693         avr_n_flash instead of avr_current_device->n_flash.
15694         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
15695         (avr_emit_movmemhi): Likewise.
15696         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
15697         Use TARGET_RMW instead of avr_current_device->dev_attributes.
15698         Don't define avr_current_device->macro (that's the specfile's job).
15699         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
15700         * config/avr/avr.c (avr_2word_insn_p): Likewise.
15701         * config/avr/avr.md (*cpse.ne): Likewise.
15702         (mov<mode>): Use avr_eval_addr_attrib.
15703         (cbi): Change constraint for low_io_address_operand operand to "i".
15704         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
15705         * config/avr/predicates.md (io_address_operand):
15706         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
15707         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
15708         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
15709         Update prototype.
15710         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
15711         * config/avr/genmultilib.awk: Use -march=.
15712         Remove Multilib matches processing.
15713         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
15714         * config/avr/avr-arch.h: Add double include guard.
15715         (avr_mcu_t) <library_name>: Update comment.
15716         * config/avr/driver-avr.c (avr_device_to_as): Delete.
15717         (avr_device_to_ld, avr_device_to_data_start): Likewise.
15718         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
15719         (avr_device_to_sp8): Likewise.
15720         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
15721
15722         * doc/extend.texi (io, address): Document new AVR variable attributes.
15723         (io_low): Likewise.
15724
15725 2014-10-09  Marek Polacek  <polacek@redhat.com>
15726
15727         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
15728
15729 2014-10-08  Richard Biener  <rguenther@suse.de>
15730
15731         PR tree-optimization/61969
15732         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
15733         variables.
15734
15735 2014-10-09  Richard Biener  <rguenther@suse.de>
15736
15737         PR tree-optimization/63445
15738         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
15739         overflow for non-equality compares.
15740
15741 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
15742
15743         PR rtl-optimization/57003
15744         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15745         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
15746         killing regs_invalidated_by_call.
15747
15748 2014-10-08  Teresa Johnson  <tejohnson@google.com>
15749
15750         PR bootstrap/63432.
15751         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
15752         (ssa_fix_duplicate_block_edges): Invoke it.
15753         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
15754
15755 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
15756
15757         PR target/52941
15758         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
15759         atomic_fetch_<fetchop_name>si_hard,
15760         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
15761         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
15762         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
15763         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
15764
15765 2014-10-08  Rong Xu  <xur@google.com>
15766
15767         * gcov-tool.c (profile_overlap): New driver function
15768         to compute profile overlap.
15769         (print_overlap_usage_message): New.
15770         (overlap_usage): New.
15771         (do_overlap): New.
15772         (print_usage): Add calls to overlap function.
15773         (main): Ditto.
15774         * doc/gcov-tool.texi: Add documentation.
15775
15776 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15777
15778         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
15779         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
15780
15781 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
15782
15783         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
15784         pattern matching of MEM_REF.
15785         (check_stmt_for_type_change): Update.
15786
15787 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15788
15789         * config/mips/linux64.h: Remove.
15790         * config/mips/gnu-user64.h: Remove.
15791         * gcc.config (mips*-*-*): Remove references to linux64.h and
15792         gnu-user64.h
15793         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
15794         with modified version from gnu-user64.h.
15795         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
15796         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
15797         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15798         linux64.h.
15799         (GNU_USER_LINK_EMULATION64): Ditto.
15800         (GNU_USER_LINK_EMULATIONN32): Ditto.
15801         (GLIBC_DYNAMIC_LINKER32): Ditto.
15802         (GLIBC_DYNAMIC_LINKER64): Ditto.
15803         (GLIBC_DYNAMIC_LINKERN32): Ditto.
15804         (UCLIBC_DYNAMIC_LINKER32): Ditto.
15805         (UCLIBC_DYNAMIC_LINKER64): Ditto.
15806         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15807         (BIONIC_DYNAMIC_LINKERN32): Ditto.
15808         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15809         (GLIBC_DYNAMIC_LINKER): Delete.
15810         (UCLIBC_DYNAMIC_LINKER): Delete.
15811
15812 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15813             Richard Biener  <rguenther@suse.de>
15814
15815         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15816         Get address space from operand 0 (BASE).
15817
15818 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
15819
15820         PR target/61387
15821         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15822
15823 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
15824
15825         * dwarf2out.c: Remove current_function_has_inlines.
15826         (gen_subprogram_die): Same.
15827         (gen_inlined_subroutine_die): Same.
15828
15829 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
15830
15831         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15832         type.
15833         (_addcarry_u64): Ditto.
15834         (_addcarryx_u64): Ditto.
15835
15836 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15837
15838         * cgraph.h (cgraph_node::get_fun): Declare.
15839         * cgraph.c (cgraph_node::get_fun): New method.
15840         * ipa-inline.c (can_inline_edge_p): Use it.
15841
15842 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15843
15844         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15845         and -ftrapping-math.
15846         * lto-wrapper.c (merge_and_complain): Likewise.
15847         (run_gcc): Likewise.
15848
15849 2014-10-06  Rong Xu  <xur@google.com>
15850
15851         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15852         * tree-profile.c: (params.h): New include.
15853         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15854         and __gcov_indirect_call_topn_counters for
15855         indirect_call_topn_profile.
15856         (gimple_init_edge_profiler): New decls for
15857         __gcov_indirect_call_topn_profiler.
15858         (gimple_gen_ic_profiler): Generate the correct profiler call.
15859         (gimple_gen_ic_func_profiler): Fix format.
15860         * value-prof.c (params.h): New include.
15861         (dump_histogram_value): Hanlde indirect_call_topn counters.
15862         (stream_in_histogram_value): Ditto.
15863         (gimple_indirect_call_to_profile): Use indirect_call_topn
15864         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15865         (gimple_find_values_to_profile): Hanlde indirect_call_topn
15866         counters.
15867         * value-prof.h (enum hist_type): Histrogram type for
15868         indirect_call_topn counters.
15869         * profile.c (instrument_values): Instrument
15870         indirect_call_topn counters.
15871
15872 2014-10-06  Rong Xu  <xur@google.com>
15873
15874         * Makefile.in: Fix dependence.
15875         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15876         indirect call topn profiler.
15877         * gcov-io.h: Ditto.
15878
15879 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15880
15881         * calls.c (expand_call): Do not use the target as the return slot if
15882         it is not sufficiently aligned.
15883
15884 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15885
15886         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15887         discussion of permutes and why we don't handle them.
15888
15889 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15890
15891         * config/sparc/predicates.md (int_register_operand): Delete.
15892
15893 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15894
15895         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15896
15897 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
15898
15899         * ubsan.h (ubsan_get_source_location): New prototype.
15900         * ubsan.c (ubsan_source_location_type): New variable.
15901         Function renamed to ...
15902         (ubsan_get_source_location_type): ... this.  Cache
15903         return value in ubsan_source_location_type variable.
15904         (ubsan_source_location, ubsan_create_data): Use
15905         ubsan_get_source_location_type instead of
15906         ubsan_source_location_type.
15907         * asan.c (asan_protect_global): Don't protect globals
15908         with ubsan_get_source_location_type () type.
15909         (asan_add_global): Provide global decl location info
15910         if possible.
15911
15912 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15913
15914         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15915         sanity check.
15916
15917 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15918
15919         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15920         on size.
15921         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15922         into vptr pointer.
15923         (ipa_polymorphic_call_context::dump): Fix formating.
15924         (walk_ssa_copies): Add logic avoiding loops; update uses.
15925         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15926
15927 2014-10-02  Mark Wielaard  <mjw@redhat.com>
15928
15929         PR debug/63239
15930         * dwarf2out.c (gen_subprogram_die): When a member function is
15931         explicitly deleted then add a DW_AT_GNU_deleted attribute.
15932         * langhooks.h (struct lang_hooks_for_decls): Add
15933         function_decl_deleted_p langhook.
15934         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15935         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15936
15937 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15938
15939         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15940         NULL pointer checks.
15941         (ipa_polymorphic_call_context::get_dynamic_type): Return true
15942         if type doesn't change.
15943         * cgraph.h (cgraph_indirect_call_info): New flag.
15944         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15945         (cgraph_node::dump): Dump it.
15946         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
15947         of context.get_dynamic_type.
15948         (ipa_make_edge_direct_to_target): Do not speculate
15949         edge that is already speuclative.
15950         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15951         speculate to __builtin_unreachable
15952         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15953         vptr_changed.
15954         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15955
15956 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15957
15958         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15959         get_dynamic_type; drop TODO.
15960         * ipa-polymorphic-call.c
15961         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15962         for otr_type to be unknown.
15963
15964 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15965
15966         * common/config/score/score-common.c: Remove.
15967         * config.gcc: Remove support for score-*.
15968         * config/score/constraints.md: Remove.
15969         * config/score/elf.h: Remove.
15970         * config/score/predicates.md: Remove.
15971         * config/score/score-conv.h: Remove.
15972         * config/score/score-generic.md: Remove.
15973         * config/score/score-modes.def: Remove.
15974         * config/score/score-protos.h: Remove.
15975         * config/score/score.c: Remove.
15976         * config/score/score.h: Remove.
15977         * config/score/score.md: Remove.
15978         * config/score/score.opt: Remove.
15979         * doc/md.texi: Don't document score-*.
15980
15981 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15982
15983         PR pch/63429
15984         * genconditions.c: Directly include ggc.h before rtl.h.
15985
15986 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15987
15988         * ipa-polymorphic-call.c
15989         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15990         code determining speculative type.
15991         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15992
15993 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15994
15995         * altivec.md (altivec_lvsl): New define_expand.
15996         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15997         (altivec_lvsr): New define_expand.
15998         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15999         * rs6000.c (rs6000_expand_builtin): Change to use
16000         altivec_lvs[lr]_direct; remove commented-out code.
16001
16002 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16003
16004         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16005         Issue a warning message when vec_lvsl or vec_lvsr is used with a
16006         little endian target.
16007
16008 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16009
16010         * tree-pretty-print.c (dump_location): Make it extern. Dump also
16011         the column.
16012         * tree-pretty-print.h (dump_location): Declare.
16013         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
16014         (pp_gimple_stmt_1): Likewise.
16015         (dump_implicit_edges): Likewise.
16016         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
16017         LOCATION_LINE.
16018
16019
16020 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
16021
16022         * gcc.c (driver::global_initializations): Remove "const" so
16023         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
16024         and decoded_options_count.
16025
16026 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
16027
16028         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
16029         macro.
16030         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
16031         TARGET_E500_DOUBLE case here.
16032
16033 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
16034
16035         PR c++/54427
16036         PR c++/57198
16037         PR c++/58845
16038         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
16039
16040 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
16041
16042         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
16043         * lto-cgraph.c (lto_output_edge, input_edge): Stream
16044         in_polymorphic_cdtor
16045         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
16046         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
16047         * cgraphclones.c (cgraph_edge::clone): Likewise.
16048         * ipa-prop.c (update_jump_functions_after_inlining,
16049         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
16050         to possible_dynamic_type_change.
16051         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
16052         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
16053         IN_POLY_CDOTR argument.
16054
16055         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
16056         for BASE and OUTER_TYPE being NULL.
16057         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
16058         in_poly_cdtor parameter.
16059
16060 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
16061
16062         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
16063         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
16064         TARGET_AVX512F.
16065         (expand_vec_perm_1): Likewise.
16066
16067 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
16068             Uros Bizjak  <ubizjak@gmail.com>
16069
16070         PR tree-optimization/61403
16071         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
16072         error in comment.  Also optimize 256-bit vectors for AVX2
16073         or AVX (floating vectors only), provided the first permutation
16074         can be performed in one insn.
16075
16076 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
16077
16078         * gcc.c (class driver): New class.
16079         (main): Reimplement in terms of driver::main, moving most of the
16080         locals to be locals within individual methods of class driver.
16081         The remaining locals "explicit_link_files", "decoded_options" and
16082         "decoded_options_count" are used by multiple driver:: methods, and
16083         so become member data.  Doing so isolates the argc/argv reads and
16084         writes.  Replace "goto out" with a special exit code from
16085         new method driver::prepare_infiles.  Split out the old
16086         implementation of main into the following...
16087         (driver::main): New function, corresponding to the old "main"
16088         implementation.
16089         (driver::set_progname): New function, taken from the old
16090         "main" implementation.
16091         (driver::expand_at_files): Likewise.
16092         (driver::decode_argv): Likewise.
16093         (driver::global_initializations): Likewise.
16094         (driver::build_multilib_strings): Likewise.
16095         (driver::set_up_specs): Likewise.
16096         (driver::putenv_COLLECT_GCC): Likewise.
16097         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
16098         (driver::handle_unrecognized_options): Likewise.
16099         (driver::maybe_print_and_exit): Likewise.
16100         (driver::prepare_infiles): Likewise.
16101         (driver::do_spec_on_infiles): Likewise.
16102         (driver::maybe_run_linker): Likewise.
16103         (driver::final_actions): Likewise.
16104         (driver::get_exit_code): Likewise.
16105
16106 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
16107
16108         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
16109         don't emit empty ctors.
16110
16111 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
16112
16113         * convert.c (convert_to_integer): Do not introduce useless conversions
16114         between integral types.
16115
16116 2014-10-03  David Sherwood  <david.sherwood@arm.com>
16117
16118         * ira-int.h (ira_allocno): Mark hard_regno as signed.
16119
16120 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
16121
16122         * lra-constraints.c (inherit_in_ebb): Handle calls with
16123         multiple return values.
16124         * caller-save.c (save_call_clobbered_regs): Likewise.
16125
16126 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
16127
16128         * tree-vect-data-refs.c (vect_permute_load_chain,
16129         vect_shift_permute_load_chain): Fix a typo in temporary var names,
16130         suffle3 to shuffle3.
16131
16132         PR libgomp/61200
16133         * omp-low.c (taskreg_contexts): New variable.
16134         (scan_omp_parallel): Push newly created context into taskreg_contexts
16135         vector and move record layout code to finish_taskreg_scan.
16136         (scan_omp_task): Likewise.
16137         (finish_taskreg_scan): New function.
16138         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
16139         vector elements and release it.
16140
16141         PR target/62128
16142         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
16143         of palignr arguments can't be used due to min 0 or max - min
16144         too high, try also op0, op1 order of palignr arguments.
16145
16146 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
16147
16148         * cgraph.h (ipa_polymorphic_call_context):
16149         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
16150         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
16151         * ipa-polymorphic-call.c
16152         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
16153         past end of dynamic types.
16154         (ipa_polymorphic_call_context::stream_out,
16155         speculative_outer_type): Stream dynamic flag.
16156         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
16157         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
16158         Clear DYNAMIC.
16159         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
16160         set it.
16161         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
16162         * ipa-prop.c (update_jump_functions_after_inlining,
16163         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
16164
16165 2014-10-02  Teresa Johnson  <tejohnson@google.com>
16166
16167         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
16168         up when synthesizing counts to avoid rounding errors.
16169
16170 2014-10-02  Teresa Johnson  <tejohnson@google.com>
16171
16172         PR middle-end/63422
16173         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
16174         asserts to handle incoming insanities.
16175
16176 2014-10-02  Martin Jambor  <mjambor@suse.cz>
16177
16178         PR tree-optimization/63375
16179         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
16180         references.
16181
16182 2014-10-02  Olivier Hainque  <hainque@adacore.com>
16183
16184         * Makefile.in (CROSS): Define, to @CROSS.
16185
16186 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
16187
16188         PR target/62128
16189         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
16190         if it expands to a single insn only.
16191         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
16192         fail unless in_order is true.  Add forward declaration.
16193         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
16194         is useful for one_operand_p.
16195         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
16196
16197 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
16198
16199         * cgraphclones.c (build_function_type_skip_args): Do not make new
16200         type variant of old.
16201
16202 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
16203
16204         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
16205         when speculation is added.
16206         (ipa_edge_args): Add polymorphic_call_contexts.
16207         (ipa_get_ith_polymorhic_call_context): New accesor.
16208         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
16209         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
16210         (ipa_compute_jump_functions_for_edge): Compute contexts.
16211         (update_jump_functions_after_inlining): Update contexts.
16212         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
16213         update dumping; add speculative edge creation.
16214         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
16215         context updating.
16216         (update_indirect_edges_after_inlining): Pass down context.
16217         (ipa_edge_duplication_hook): Duplicate contexts.
16218         (ipa_write_node_info): Stream out contexts.
16219         (ipa_read_node_info): Stream in contexts.
16220         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
16221         types.
16222         (try_speculative_devirtualization): New function.
16223         * ipa-utils.h (try_speculative_devirtualization): Declare.
16224
16225 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
16226
16227         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
16228         dumping during WPA.
16229
16230 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
16231
16232         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
16233         type variants.
16234
16235 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
16236
16237         * ipa-polymorphic-call.c
16238         (ipa_polymorphic_call_context::restrict_to_inner_class):
16239         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
16240         use speculation_consistent_p to do so; Add CONSDER_BASES
16241         and CONSIDER_PLACEMENT_NEW parameters.
16242         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
16243         short circuit obvious cases.
16244         (ipa_polymorphic_call_context::dump): Improve formatting.
16245         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
16246         combine_speculation_with to record speculations; Do not ICE when
16247         object is located in pointer type decl; do not ICE for methods
16248         of UNION_TYPE; do not record nonpolymorphic types.
16249         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
16250         (ipa_polymorphic_call_context::combine_speculation_with): New method.
16251         (ipa_polymorphic_call_context::combine_with): New method.
16252         (ipa_polymorphic_call_context::make_speculative): Move here; use
16253         combine speculation.
16254         * cgraph.h (ipa_polymorphic_call_context): Update
16255         restrict_to_inner_class prototype; add offset_by, make_speculative,
16256         combine_with, useless_p, combine_speculation_with and
16257         speculation_consistent_p methods.
16258         (ipa_polymorphic_call_context::offset_by): New method.
16259         (ipa_polymorphic_call_context::useless_p): New method.
16260
16261 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
16262
16263         PR rtl-optimization/62151
16264         * combine.c (can_combine_p): Allow the destination register of INSN
16265         to be clobbered in I3.
16266         (subst): Do not substitute into clobbers of registers.
16267
16268 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
16269
16270         PR debug/63342
16271         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
16272         offset, TARGET_MEM_REF and SSA_NAME.
16273
16274         * config/i386/i386.c (expand_vec_perm_palignr): Handle
16275         256-bit vectors for TARGET_AVX2.
16276
16277         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
16278         dfirst permutation.
16279
16280         PR target/63428
16281         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
16282         argument to avx2_permv2ti.
16283
16284 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16285
16286         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
16287
16288 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
16289
16290         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
16291         (fmod<mode>3): Ditto.
16292         (fpremxf4_i387): Ditto.
16293         (reminderxf3): Ditto.
16294         (reminder<mode>3): Ditto.
16295         (fprem1xf4_i387): Ditto.
16296
16297 2014-09-30  Teresa Johnson  <tejohnson@google.com>
16298
16299         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
16300         duplicate_blocks bitmap.
16301         (remove_ctrl_stmt_and_useless_edges): Ditto.
16302         (create_block_for_threading): Ditto.
16303         (compute_path_counts): New function.
16304         (update_profile): Ditto.
16305         (recompute_probabilities): Ditto.
16306         (update_joiner_offpath_counts): Ditto.
16307         (freqs_to_counts_path): Ditto.
16308         (clear_counts_path): Ditto.
16309         (ssa_fix_duplicate_block_edges): Update profile info.
16310         (ssa_create_duplicates): Pass new parameter.
16311         (ssa_redirect_edges): Remove old profile update.
16312         (thread_block_1): New duplicate_blocks bitmap,
16313         remove old profile update.
16314         (thread_single_edge): Pass new parameter.
16315
16316 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
16317
16318         PR middle-end/62120
16319         * varasm.c (decode_reg_name_and_count): Check availability for
16320         registers from ADDITIONAL_REGISTER_NAMES.
16321
16322 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
16323
16324         PR plugins/63410
16325         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
16326         (PLUGIN_HEADERS): Add pass-instances.def.
16327
16328 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
16329
16330         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
16331         iterator.
16332         * config/aarch64/aarch64-simd.md
16333         (aarch64_sqdmull_laneq<mode>): Expand iterator.
16334         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
16335         (vqdmulls_lane_s32): Fix return type.
16336         (vqdmulls_laneq_s32): New.
16337
16338 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
16339
16340         PR inline-asm/63282
16341         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
16342         or invert_jump_1 if jump isn't any_condjump_p.
16343
16344 2014-09-30  Terry Guo  <terry.guo@arm.com>
16345
16346         * config/arm/arm-cores.def (cortex-m7): New core name.
16347         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
16348         (fpv5-d16): Ditto.
16349         * config/arm/arm-tables.opt: Regenerated.
16350         * config/arm/arm-tune.md: Regenerated.
16351         * config/arm/arm.h (TARGET_VFP5): New macro.
16352         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
16353         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
16354         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
16355         * doc/invoke.texi: Document new cpu and fpu names.
16356
16357 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
16358
16359         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
16360         before sinking insn.
16361
16362 2014-09-30  David Sherwood  <david.sherwood@arm.com>
16363
16364         * ira-int.h (ira_allocno): Add "wmode" field.
16365         * ira-build.c (create_insn_allocnos): Add new "parent" function
16366         parameter.
16367         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
16368         that cannot be accessed in wmode.
16369
16370 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
16371
16372         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
16373         integer overflow.
16374
16375 2014-09-29  Andi Kleen  <ak@linux.intel.com>
16376
16377         * opts.c (print_filtered_help): Print --param min/max/default
16378         with -Q.
16379
16380 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
16381
16382         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
16383
16384 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
16385
16386         * tree-vrp.c (get_single_symbol): New function.
16387         (build_symbolic_expr): Likewise.
16388         (symbolic_range_based_on_p): New predicate.
16389         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
16390         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
16391         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
16392         operand is symbolic and based on the other operand.
16393
16394 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
16395
16396         * config/microblaze/microblaze.md (call_internal1): Use VOID
16397         instead of SI to fix "((void (*)(void)) 0)()" issue
16398
16399 2014-09-29  Nick Clifton  <nickc@redhat.com>
16400
16401         * config/msp430/msp430.c (msp430_expand_prologue): Return a
16402         CLOBBER rtx for naked functions.
16403         (msp430_expand_epilogue): Likewise.
16404         (msp430_use_f5_series_hwmult): Cache result.
16405         (use_32bit_hwmult): Cache result.
16406         (msp430_no_hwmult): New function.
16407         (msp430_output_labelref): Use it.
16408
16409 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
16410
16411         PR middle-end/63247
16412         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
16413         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
16414         use the alignment of avar rather than ovar.
16415
16416 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
16417
16418         * config/pa/pa.c (pa_output_function_epilogue): Only update
16419         last_address when a nonnote insn is found.
16420
16421 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
16422
16423         PR ipa/60665
16424         * ipa-devirt.c (possible_polymorphic_call_targets): Silence
16425         clang warning.
16426
16427 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
16428
16429         PR ipa/62121
16430         * ipa-polymorphic-call.c
16431         (ipa_polymorphic_call_context::restrict_to_inner_class): Fix pasto
16432         in checking array size.
16433
16434 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
16435
16436         PR middle-end/35545
16437         * passes.def (pass_tracer): Move before last dominator pass.
16438
16439 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
16440
16441         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
16442         users.
16443         (run_attempt): Handle errors of "pex_run" invocation.
16444
16445 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
16446
16447         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
16448         (CC1_SPEC): Define.
16449         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
16450         (TARGET_ASAN_SHADOW_OFFSET): Define.
16451
16452 2014-09-26  Martin Liska  <mliska@suse.cz>
16453
16454         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
16455         introduced.
16456         * cgraph.h: Likewise.
16457         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new
16458         argument introduced.
16459         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos
16460         created by Java.
16461         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function
16462         transformed to global.
16463         * tree-ssa-alias.h: Likewise.
16464
16465 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
16466             Max Ostapenko  <m.ostapenko@partner.samsung.com>
16467
16468         * common.opt: New option.
16469         * doc/invoke.texi: Describe new option.
16470         * gcc.c (execute): Don't free first string early, but at the end
16471         of the function.  Call retry_ice if compiler exited with
16472         ICE_EXIT_CODE.
16473         (main): Factor out common code.
16474         (print_configuration): New function.
16475         (files_equal_p): Likewise.
16476         (check_repro): Likewise.
16477         (run_attempt): Likewise.
16478         (do_report_bug): Likewise.
16479         (append_text): Likewise.
16480         (try_generate_repro): Likewise
16481
16482 2014-09-25  Andi Kleen  <ak@linux.intel.com>
16483
16484         * config/i386/i386.c (x86_print_call_or_nop): New function.
16485         (x86_function_profiler): Support -mnop-mcount and
16486         -mrecord-mcount.
16487         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
16488         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
16489
16490 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
16491
16492         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
16493         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
16494         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
16495         Remove.
16496
16497 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
16498
16499         * ipa-utils.h (subbinfo_with_vtable_at_offset,
16500         type_all_derivations_known_p, type_known_to_have_no_deriavations_p,
16501         types_must_be_same_for_odr, types_odr_comparable): Declare.
16502         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
16503         * ipa-polymorphic-call.c: New file.
16504         (contains_polymorphic_type_p, possible_placement_new,
16505         ipa_polymorphic_call_context::restrict_to_inner_class,
16506         contains_type_p, decl_maybe_in_construction_p,
16507         ipa_polymorphic_call_context::stream_out,
16508         ipa_polymorphic_call_context::debug,
16509         ipa_polymorphic_call_context::stream_in,
16510         ipa_polymorphic_call_context::set_by_decl,
16511         ipa_polymorphic_call_context::set_by_invariant,
16512         walk_ssa_copies,
16513         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16514         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
16515         extr_type_from_vtbl_ptr_store, record_known_type
16516         check_stmt_for_type_change,
16517         ipa_polymorphic_call_context::get_dynamic_type): Move here from
16518         ipa-devirt.c
16519         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
16520         and streamer-hooks.h
16521         (contains_polymorphic_type_p, possible_placement_new,
16522         ipa_polymorphic_call_context::restrict_to_inner_class,
16523         contains_type_p, decl_maybe_in_construction_p,
16524         ipa_polymorphic_call_context::stream_out,
16525         ipa_polymorphic_call_context::debug,
16526         ipa_polymorphic_call_context::stream_in,
16527         ipa_polymorphic_call_context::set_by_decl,
16528         ipa_polymorphic_call_context::set_by_invariant,
16529         walk_ssa_copies,
16530         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16531         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
16532         extr_type_from_vtbl_ptr_store, record_known_type
16533         check_stmt_for_type_change,
16534         ipa_polymorphic_call_context::get_dynamic_type): Move to
16535         ipa-polymorphic-call.c
16536         (type_all_derivations_known_p, types_odr_comparable,
16537         types_must_be_same_for_odr): Export.
16538         (type_known_to_have_no_deriavations_p): New function.
16539         * Makefile.in: Add ipa-polymorphic-call.c
16540
16541 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
16542
16543         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
16544         for better storage.
16545         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
16546         (possible_polymorphic_call_targets): Instead of computing both
16547         speculative and non-speculative answers, do just one at a time.
16548         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
16549         (dump_targets): Break out from ...
16550         (dump_possible_polymorphic_call_targets): ... here; dump both
16551         speculative and non-speculative lists.
16552         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
16553         * ipa-utils.h (possible_polymorphic_call_targets): Update.
16554
16555 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
16556
16557         PR rtl-optimization/63348
16558         * emit-rtl.c (try_split): Do not emit extra barrier.
16559
16560 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
16561
16562         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
16563         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
16564         new predicates.
16565         (aarch64_<sur>shll2_n<mode>): Likewise.
16566         (aarch64_<sur>shr_n<mode>): Likewise.
16567         (aarch64_<sur>sra_n<mode>: Likewise.
16568         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
16569         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
16570         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
16571         * config/aarch64/iterators.md (ve_mode): New.
16572         (offsetlr): Remap to infix text for use in new predicates.
16573         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
16574         (aarch64_simd_shift_imm_hi): Likewise.
16575         (aarch64_simd_shift_imm_si): Likewise.
16576         (aarch64_simd_shift_imm_di): Likewise.
16577         (aarch64_simd_shift_imm_offset_qi): Likewise.
16578         (aarch64_simd_shift_imm_offset_hi): Likewise.
16579         (aarch64_simd_shift_imm_offset_si): Likewise.
16580         (aarch64_simd_shift_imm_offset_di): Likewise.
16581         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
16582         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
16583         (aarch64_simd_shift_imm_bitsize_si): Likewise.
16584         (aarch64_simd_shift_imm_bitsize_di): Likewise.
16585
16586 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
16587
16588         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
16589         new created BB as the intersection of live-in from "old_dest" and
16590         live-out from "bb".
16591
16592 2014-09-25  Felix Yang  <felix.yang@huawei.com>
16593
16594         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
16595         * genautomata.c (merge_states): Ditto.
16596
16597 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
16598
16599         PR target/62218
16600         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
16601         in instruction sequence.
16602
16603 2014-09-25  Nick Clifton  <nickc@redhat.com>
16604
16605         PR target/62218
16606         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
16607         in instruction sequence.
16608
16609 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16610
16611         PR target/63335
16612         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
16613         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
16614
16615 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16616             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16617             Anna Tikhonova  <anna.tikhonova@intel.com>
16618             Ilya Tocar  <ilya.tocar@intel.com>
16619             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16620             Ilya Verbin  <ilya.verbin@intel.com>
16621             Kirill Yukhin  <kirill.yukhin@intel.com>
16622             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16623
16624         * config/i386/sse.md
16625         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
16626         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
16627         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
16628         (define_expand "<avx512>_perm<mode>_mask"): ... this.
16629         Use VI8F_256_512 mode iterator.
16630         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
16631         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
16632
16633 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16634             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16635             Anna Tikhonova  <anna.tikhonova@intel.com>
16636             Ilya Tocar  <ilya.tocar@intel.com>
16637             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16638             Ilya Verbin  <ilya.verbin@intel.com>
16639             Kirill Yukhin  <kirill.yukhin@intel.com>
16640             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16641
16642         * config/i386/sse.md
16643         (define_insn "avx_movshdup256<mask_name>"): Add masking.
16644         (define_insn "sse3_movshdup<mask_name>"): Ditto.
16645         (define_insn "avx_movsldup256<mask_name>"): Ditto.
16646         (define_insn "sse3_movsldup<mask_name>"): Ditto.
16647         (define_insn "vec_dupv2df<mask_name>"): Ditto.
16648         (define_insn "*vec_concatv2df"): Add EVEX version.
16649
16650 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16651             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16652             Anna Tikhonova  <anna.tikhonova@intel.com>
16653             Ilya Tocar  <ilya.tocar@intel.com>
16654             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16655             Ilya Verbin  <ilya.verbin@intel.com>
16656             Kirill Yukhin  <kirill.yukhin@intel.com>
16657             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16658
16659         * config/i386/sse.md
16660         (define_insn "vec_set<mode>_0"): Add EVEX version.
16661
16662 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16663             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16664             Anna Tikhonova  <anna.tikhonova@intel.com>
16665             Ilya Tocar  <ilya.tocar@intel.com>
16666             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16667             Ilya Verbin  <ilya.verbin@intel.com>
16668             Kirill Yukhin  <kirill.yukhin@intel.com>
16669             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16670
16671         * config/i386/sse.md
16672         (define_insn
16673         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
16674         New.
16675         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
16676         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
16677         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
16678         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
16679         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
16680         (define_expand "sse2_cvtpd2ps_mask): New.
16681         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
16682         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
16683
16684 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16685             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16686             Anna Tikhonova  <anna.tikhonova@intel.com>
16687             Ilya Tocar  <ilya.tocar@intel.com>
16688             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16689             Ilya Verbin  <ilya.verbin@intel.com>
16690             Kirill Yukhin  <kirill.yukhin@intel.com>
16691             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16692
16693         * config/i386/i386.c
16694         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
16695         (ufix_notruncv8dfv8si2_mask_round): ... this.
16696         * config/i386/sse.md
16697         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
16698         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
16699         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
16700         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
16701         (define_expand "sse2_cvtpd2dq"): Delete.
16702         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
16703         make 2nd operand const0 vector.
16704         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
16705         Delete.
16706         (define_mode_attr pd2udqsuff): New.
16707         (define_insn
16708         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
16709         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
16710         (define_insn "*avx_cvttpd2dq256_2"): Delete.
16711         (define_expand "sse2_cvttpd2dq"): Ditto.
16712         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
16713         make 2nd operand const0 vector.
16714
16715 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
16716
16717         PR tree-optimization/63341
16718         * tree-vectorizer.h (vect_create_data_ref_ptr,
16719         vect_create_addr_base_for_vector_ref): Add another tree argument
16720         defaulting to NULL_TREE.
16721         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
16722         argument, pass it down to vect_create_addr_base_for_vector_ref.
16723         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
16724         add that to base_offset too if non-NULL.
16725         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
16726         for dr_explicit_realign_optimized set it to vector byte size
16727         - 1 instead of setting offset, pass byte_offset down to
16728         vect_create_data_ref_ptr.
16729
16730 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16731
16732         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
16733         forgotten debug output; canonicalize querries more wtih LTO.
16734
16735 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16736
16737         * cgraph.h (class ipa_polymorphic_call_context): Move here from
16738         ipa-utils.h; add stream_int and stream_out methods.
16739         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
16740         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
16741         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
16742         add CONTEXT.
16743         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16744         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16745         ipa_polymorphic_call_context::clear_speculation,
16746         ipa_polymorphic_call_context::clear_outer_type): Move here from
16747         ipa-utils.h
16748         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
16749         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16750         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16751         ipa_polymorphic_call_context::clear_speculation,
16752         ipa_polymorphic_call_context::clear_outer_type): Likewise.
16753         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
16754         streamer-hooks.h
16755         (ipa_polymorphic_call_context::stream_out): New method.
16756         (ipa_polymorphic_call_context::stream_in): New method.
16757         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
16758         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
16759         OUTER_TYPE.
16760         (ipa_analyze_call_uses): Simplify.
16761         (update_indirect_edges_after_inlining): Do not care about outer_type.
16762         (ipa_write_indirect_edge_info): Update.
16763         (ipa_write_indirect_edge_info): Likewise.
16764         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
16765         (dump_edge_flags): Break out from ...
16766         (cgraph_node::dump): ... here; dump indirect edges.
16767
16768 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16769
16770         * ipa-utils.h (polymorphic_call_context): Add
16771         metdhos dump, debug and clear_outer_type.
16772         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16773         (ipa_polymorphic_call_context::clear_outer_type): New method.
16774         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
16775         * ipa-devirt.c (types_odr_comparable): New function.
16776         (types_must_be_same_for_odr): New function.
16777         (odr_subtypes_equivalent_p): Simplify.
16778         (possible_placement_new): Break out from ...
16779         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
16780         be more cuatious about returning false in cases the context may be
16781         valid in derived type or via placement new.
16782         (contains_type_p): Clear maybe_derived_type
16783         (ipa_polymorphic_call_context::dump): New method.
16784         (ipa_polymorphic_call_context::debug): New method.
16785         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
16786         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
16787         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16788         (possible_polymorphic_call_targets): Trust
16789         context.restrict_to_inner_class to suceed on all valid cases;
16790         remove confused sanity check.
16791         (dump_possible_polymorphic_call_targets): Simplify.
16792
16793 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
16794
16795         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
16796         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
16797         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
16798         varpool.c: Rename all instances of DECL_ABSTRACT to
16799         DECL_ABSTRACT_P.
16800
16801 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16802
16803         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16804         special handling for stores whose SET_SRC is an UNSPEC (such as
16805         UNSPEC_STVE).
16806
16807 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
16808
16809         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16810         !REG_P (src) to release more instruction sink opportunities.
16811
16812 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16813
16814         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16815         move costs for 128-bit types.
16816
16817 2014-09-24  Martin Jambor  <mjambor@suse.cz>
16818
16819         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16820         when duplicating a PASS_THROUGH jump function when creating a
16821         speculative edge.
16822
16823 2014-09-24  Marek Polacek  <polacek@redhat.com>
16824
16825         PR c/61405
16826         PR c/53874
16827         * asan.c (maybe_instrument_call): Add default case.
16828         * ipa-pure-const.c (special_builtin_state): Likewise.
16829         * predict.c (expr_expected_value_1): Likewise.
16830         * lto-streamer-out.c (write_symbol): Initialize variable.
16831
16832 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16833
16834         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16835         the lane.
16836         (vmuld_laneq_f64): Likewise.
16837         (vmuls_lane_f32): Likewise.
16838         (vmuls_laneq_f32): Likewise.
16839
16840 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
16841
16842         PR bootstrap/63235
16843         * varpool.c (varpool_node::add): Pass decl attributes
16844         to lookup_attribute.
16845
16846 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
16847
16848         PR sanitizer/63316
16849         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16850
16851 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16852
16853         PR tree-optimization/63266
16854         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16855         marker for unknown byte value.
16856         (MARKER_MASK): New macro.
16857         (MARKER_BYTE_UNKNOWN): New macro.
16858         (HEAD_MARKER): New macro.
16859         (do_shift_rotate): Mark bytes with unknown values due to sign
16860         extension when doing an arithmetic right shift. Replace hardcoded
16861         mask for marker by new MARKER_MASK macro.
16862         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16863         numbers accordingly.
16864
16865 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16866             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16867             Anna Tikhonova  <anna.tikhonova@intel.com>
16868             Ilya Tocar  <ilya.tocar@intel.com>
16869             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16870             Ilya Verbin  <ilya.verbin@intel.com>
16871             Kirill Yukhin  <kirill.yukhin@intel.com>
16872             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16873
16874         * config/i386/sse.md
16875         (define_insn
16876         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16877         Add masking.
16878         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16879         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16880
16881 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16882             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16883             Anna Tikhonova  <anna.tikhonova@intel.com>
16884             Ilya Tocar  <ilya.tocar@intel.com>
16885             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16886             Ilya Verbin  <ilya.verbin@intel.com>
16887             Kirill Yukhin  <kirill.yukhin@intel.com>
16888             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16889
16890         * config/i386/sse.md
16891         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16892         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16893         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16894         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16895         (define_expand "avx512vl_pshuflw_mask"): New.
16896         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16897         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16898         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16899         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16900         (define_expand "avx512vl_pshufhw_mask"): New.
16901         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16902
16903 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16904             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16905             Anna Tikhonova  <anna.tikhonova@intel.com>
16906             Ilya Tocar  <ilya.tocar@intel.com>
16907             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16908             Ilya Verbin  <ilya.verbin@intel.com>
16909             Kirill Yukhin  <kirill.yukhin@intel.com>
16910             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16911
16912         * config/i386/i386.c
16913         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16914         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16915         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16916         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16917         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16918         * config/i386/sse.md
16919         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16920         (define_insn
16921         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16922         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16923         (define_insn
16924         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16925         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16926         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16927         (define_expand "avx512vl_pshufd_mask"): New.
16928         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16929
16930 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16931             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16932             Anna Tikhonova  <anna.tikhonova@intel.com>
16933             Ilya Tocar  <ilya.tocar@intel.com>
16934             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16935             Ilya Verbin  <ilya.verbin@intel.com>
16936             Kirill Yukhin  <kirill.yukhin@intel.com>
16937             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16938
16939         * config/i386/i386.c
16940         (CODE_FOR_avx2_extracti128): Rename to ...
16941         (CODE_FOR_avx_vextractf128v4di): this.
16942         (CODE_FOR_avx2_inserti128): Rename to ...
16943         (CODE_FOR_avx_vinsertf128v4di): this.
16944         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16945         CODE_FOR_avx_vextractf128v4di.
16946         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16947         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16948         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16949         CODE_FOR_avx512vl_vinsertv8si.
16950         * config/i386/sse.md
16951         (define_expand
16952         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16953         AVX512_VEC mode iterator.
16954         (define_insn
16955         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16956         Ditto.
16957         (define_expand
16958         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16959         AVX512_VEC_2 mode iterator.
16960         (define_insn "vec_set_lo_<mode><mask_name>"): New.
16961         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16962         (define_expand "avx512vl_vinsert<mode>"): Ditto.
16963         (define_insn "avx2_vec_set_lo_v4di"): Delete.
16964         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16965         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16966         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16967         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16968         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16969         (define_expand "avx2_extracti128"): Delete.
16970         (define_expand "avx2_inserti128"): Ditto.
16971
16972 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16973             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16974             Anna Tikhonova  <anna.tikhonova@intel.com>
16975             Ilya Tocar  <ilya.tocar@intel.com>
16976             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16977             Ilya Verbin  <ilya.verbin@intel.com>
16978             Kirill Yukhin  <kirill.yukhin@intel.com>
16979             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16980
16981         * config/i386/sse.md
16982         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16983         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16984         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16985         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16986         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16987         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16988         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16989         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16990         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16991         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16992         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16993         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16994         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16995
16996 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16997
16998         PR rtl-optimization/63210
16999         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
17000         HARD_REGNO is not available for CONFLICT_A.
17001
17002 2014-09-23  Andi Kleen  <ak@linux.intel.com>
17003
17004         * cgraph.h (symtab_node): Add no_reorder attribute.
17005         (symbol_table::output_asm_statements): Remove.
17006         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
17007         (cgraph_node::create_version_clone): Dito.
17008         (symbol_table::output_asm_statements): Remove.
17009         * trans-mem.c (ipa_tm_create_version_alias): Dito.
17010         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
17011         (output_in_order): Add no_reorder flag. Only handle no_reorder
17012         nodes when set.
17013         (symbol_table::compile): Add separate pass for no_reorder nodes.
17014         (process_common_attributes): Set no_reorder flag in symtab node.
17015         Add node argument.
17016         (process_function_and_variable_attributes): Pass symtab nodes to
17017         process_common_attributes.
17018         * doc/extend.texi (no_reorder): Document no_reorder attribute.
17019         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
17020         (lto_output_varpool_node): Dito.
17021         (input_overwrite_node): Dito.
17022         (input_varpool_node): Dito.
17023         * varpool.c (varpool_node::add): Set no_reorder attribute.
17024         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
17025         (symbol_table::output_variables): Dito.
17026         * symtab.c (symtab_node::dump_base): Print no_reorder.
17027
17028 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
17029
17030         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM
17031         not be INVALID_REGNUM.
17032
17033 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
17034
17035         * configure: Regenerate.
17036
17037 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
17038
17039         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
17040         when result_mode == shift_mode.
17041
17042 2014-09-23  Kostya Serebryany  <kcc@google.com>
17043
17044         Update to match the changed asan API.
17045         * asan.c (asan_global_struct): Update the __asan_global definition
17046         to match the new API.
17047         (asan_add_global): Ditto.
17048         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
17049         to __asan_init_v4.
17050
17051 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
17052
17053         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
17054         refine the constraints used on 32/64-bit floating point moves.
17055         (f32_av): Likewise.
17056         (f64_vsx): Likewise.
17057         (f64_dm): Likewise.
17058         (f64_av): Likewise.
17059         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
17060         (BOOL_REGS_OP1): Likewise.
17061         (BOOL_REGS_OP2): Likewise.
17062         (BOOL_REGS_UNARY): Likewise.
17063         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
17064         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
17065         for moves involving VSX registers.  Do not use constraints that
17066         target VSX registers for decimal types.
17067         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
17068         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
17069
17070 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
17071
17072         * tree.h (int_bit_position): Turn into inline function;
17073         implement using wide int.
17074         * tree.c (int_bit_position): Remove.
17075
17076 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
17077
17078         PR bootstrap/63280
17079         * target-globals.c (target_globals::~target_globals): Fix location
17080         of ira_int destruction.
17081
17082 2014-09-23  Renlin Li  <renlin.li@arm.com>
17083
17084         * config/aarch64/aarch64.md (return): New.
17085         (simple_return): Likewise.
17086         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
17087         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
17088
17089 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
17090
17091         * common/config/aarch64/aarch64-common.c:
17092         (default_options aarch_option_optimization_table):
17093         Default to -fsched-pressure.
17094
17095 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
17096
17097         * cfgcleanup.c (try_optimize_cfg): Do not remove label
17098         with LABEL_PRESERVE_P flag set.
17099
17100 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17101             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17102             Anna Tikhonova  <anna.tikhonova@intel.com>
17103             Ilya Tocar  <ilya.tocar@intel.com>
17104             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17105             Ilya Verbin  <ilya.verbin@intel.com>
17106             Kirill Yukhin  <kirill.yukhin@intel.com>
17107             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17108
17109         * config/i386/sse.md
17110         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
17111         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
17112         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
17113         (define_insn "sse2_shufpd_v2df_mask"): New.
17114
17115 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17116             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17117             Anna Tikhonova  <anna.tikhonova@intel.com>
17118             Ilya Tocar  <ilya.tocar@intel.com>
17119             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17120             Ilya Verbin  <ilya.verbin@intel.com>
17121             Kirill Yukhin  <kirill.yukhin@intel.com>
17122             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17123
17124         * config/i386/sse.md
17125         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
17126         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
17127         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
17128         (define_insn "sse_shufps_v4sf_mask"): New.
17129
17130 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17131             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17132             Anna Tikhonova  <anna.tikhonova@intel.com>
17133             Ilya Tocar  <ilya.tocar@intel.com>
17134             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17135             Ilya Verbin  <ilya.verbin@intel.com>
17136             Kirill Yukhin  <kirill.yukhin@intel.com>
17137             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17138
17139         * config/i386/sse.md
17140         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
17141         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
17142         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
17143         (define_insn "unpcklps128_mask"): New.
17144
17145 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17146             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17147             Anna Tikhonova  <anna.tikhonova@intel.com>
17148             Ilya Tocar  <ilya.tocar@intel.com>
17149             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17150             Ilya Verbin  <ilya.verbin@intel.com>
17151             Kirill Yukhin  <kirill.yukhin@intel.com>
17152             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17153
17154         * config/i386/sse.md
17155         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
17156         (define_insn "avx512vl_unpckhpd128_mask"): New.
17157         (define_expand "avx_movddup256<mask_name>"): Add masking.
17158         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
17159         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
17160         (define_insn "avx512vl_unpcklpd128_mask"): New.
17161
17162 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
17163
17164         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17165         * doc/tm.texi: Regenerate.
17166         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
17167         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17168         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
17169         Remove.
17170         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17171         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17172         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17173         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17174         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
17175         Remove.
17176         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17177         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17178         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17179         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17180         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17181         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17182         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17183         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17184         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17185         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
17186         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
17187         Remove.
17188
17189 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
17190
17191         * tree-ssa-ccp.c (prop_value_d): Rename to ...
17192         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
17193         * ipa-prop.c (struct type_change_info): Rename to ...
17194         (prop_type_change_info): ... this; update uses.
17195         * ggc-page.c (globals): Rename to ...
17196         (static struct ggc_globals): ... this; update uses.
17197         * tree-ssa-loop-im.c (mem_ref): Rename to ...
17198         (im_mem_ref): ... this; update uses.
17199         * ggc-common.c (loc_descriptor): Rename to ...
17200         (ggc_loc_descriptor): ... this; update uses.
17201         * lra-eliminations.c (elim_table): Rename to ...
17202         (lra_elim_table): ... this; update uses.
17203         * bitmap.c (output_info): Rename to ...
17204         (bitmap_output_info): ... this; update uses.
17205         * gcse.c (expr): Rename to ...
17206         (gcse_expr) ... this; update uses.
17207         (occr): Rename to ...
17208         (gcse_occr): .. this; update uses.
17209         * tree-ssa-copy.c (prop_value_d): Rename to ...
17210         (prop_value_t): ... this.
17211         * predict.c (block_info_def): Rename to ...
17212         (block_info): ... this; update uses.
17213         (edge_info_def): Rename to ...
17214         (edge_info): ... this; update uses.
17215         * profile.c (bb_info): Rename to ...
17216         (bb_profile_info): ... this; update uses.
17217         * alloc-pool.c (output_info): Rename to ...
17218         (pool_output_info): ... this; update uses.
17219         * ipa-cp.c (topo_info): Rename to ..
17220         (ipa_topo_info): ... this; update uses.
17221         * tree-nrv.c (nrv_data): Rename to ...
17222         (nrv_data_t): ... this; update uses.
17223         * ipa-split.c (bb_info): Rename to ...
17224         (split_bb_info): ... this one.
17225         * profile.h (edge_info): Rename to ...
17226         (edge_profile_info): ... this one; update uses.
17227         * dse.c (bb_info): Rename to ...
17228         (dse_bb_info): ... this one; update uses.
17229         * cprop.c (occr): Rename to ...
17230         (cprop_occr): ... this one; update uses.
17231         (expr): Rename to ...
17232         (cprop_expr): ... this one; update uses.
17233
17234 2014-09-22  Jason Merrill  <jason@redhat.com>
17235
17236         * Makefile.in (check-parallel-%): Add @.
17237
17238 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
17239
17240         * config/aarch64/geniterators.sh: New.
17241         * config/aarch64/iterators.md (VDQF_DF): New.
17242         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
17243         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
17244
17245 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
17246
17247         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
17248         -lnosys when -msim absent.
17249
17250 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
17251
17252         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
17253
17254 2014-09-22  Richard Biener  <rguenther@suse.de>
17255
17256         * gimplify.c (gimplify_init_constructor): Do not leave
17257         non-GIMPLE vector constructors around.
17258         * tree-cfg.c (verify_gimple_assign_single): Verify that
17259         CONSTRUCTORs have gimple elements.
17260
17261 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
17262
17263         PR debug/63328
17264         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
17265         insert a debug source bind stmt setting DEBUG_EXPR_DECL
17266         instead of a normal gimple assignment stmt.
17267
17268 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
17269
17270         * config/bfin/bfin.md: Fix use of constraints in define_split.
17271
17272 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17273
17274         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
17275         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
17276
17277 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17278
17279         * hard-reg-set.h: Include hash-table.h.
17280         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
17281         field.
17282         * target-globals.c (target_globals::~target_globals): Call
17283         hard_regs->finalize.
17284         * rtl.h (subreg_shape): New structure.
17285         (shape_of_subreg): New function.
17286         (simplifiable_subregs): Declare.
17287         * reginfo.c (simplifiable_subreg): New structure.
17288         (simplifiable_subregs_hasher): Likewise.
17289         (simplifiable_subregs): New function.
17290         (invalid_mode_changes): Delete.
17291         (alid_mode_changes, valid_mode_changes_obstack): New variables.
17292         (record_subregs_of_mode): Remove subregs_of_mode parameter.
17293         Record valid mode changes in valid_mode_changes.
17294         (find_subregs_of_mode): Remove subregs_of_mode parameter.
17295         Update calls to record_subregs_of_mode.
17296         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
17297         handling.  Initialize new variables.  Update call to
17298         find_subregs_of_mode.
17299         (invalid_mode_change_p): Check new variables instead of
17300         invalid_mode_changes.
17301         (finish_subregs_of_mode): Finalize new variables instead of
17302         invalid_mode_changes.
17303         (target_hard_regs::finalize): New function.
17304         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
17305         even when CLASS_CANNOT_CHANGE_MODE is undefined.
17306
17307 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17308
17309         * combine.c (subst): Use simplify_subreg_regno rather than
17310         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
17311
17312 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17313
17314         * rtl.h (subreg_info): Expand commentary
17315         * rtlanal.c (subreg_get_info): Likewise.
17316
17317 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
17318
17319         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
17320         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
17321         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
17322
17323 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
17324
17325         * config/arm/arm.c: #include "tm-constrs.h"
17326         (thumb1_size_rtx_costs): Adjust rtx costs.
17327
17328 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
17329
17330         * configure.ac (target_header_dir): Move block defining
17331         this to before the block setting inhibit_libc.
17332         (inhibit_libc): When considering $with_headers, just
17333         check it it's explicitly "no".  If not, also check if
17334         $target_header_dir/stdio.h is present.  If not, set
17335         inhibit_libc=true.
17336         * configure: Regenerate.
17337
17338 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
17339
17340         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
17341
17342 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17343
17344         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
17345         insn for divides by integer powers of two.
17346         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
17347         (mod<mode>3): Fix formatting.
17348         (three anonymous define_insn and two define_split): Delete.
17349
17350 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17351
17352         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
17353         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
17354         (floatdisf2_internal2): Ditto.
17355         (ashrdi3_no_power): Ditto.  Fix formatting.
17356
17357 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17358
17359         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
17360         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
17361         Tidy.
17362
17363 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17364
17365         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
17366         constant, use addsi3 directly.
17367         (three anonymous define_insn, two define_split): Delete.
17368         (sub<mode>3): Move.  Do not allow constant second operand.
17369         Generate different insn for constant first operand.
17370         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
17371         (subf<mode>3_imm): New.
17372         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
17373         (*plus_ltu<mode>): Only handle registers.
17374         (*plus_ltu<mode>_1): New.  Handle integer third operand.
17375         (*plus_gtu<mode>): Only handle registers.
17376         (*plus_gtu<mode>_1): New.  Handle integer third operand.
17377
17378 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17379
17380         * config/rs6000/rs6000.md (iorxor): New code_iterator.
17381         (iorxor): New code_attr.
17382         (IORXOR): New code_attr.
17383         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
17384         (ior<mode>3, xor<mode>3): Delete.
17385         (<iorxor><mode>3): New.
17386         (splitter for "big" integer ior, xor): New.
17387         (*bool<mode>3): Move.  Also handle AND.
17388         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
17389         (splitter for "big" integer ior, xor): Delete.
17390
17391 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17392
17393         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
17394         (two anonymous define_insn and two define_split): Delete.
17395         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
17396
17397 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17398
17399         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
17400         (two anonymous define_insn and two define_split): Delete.
17401         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
17402
17403 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17404
17405         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
17406
17407 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
17408
17409         * config/rs6000/predicates.md (ca_operand): Allow subregs.
17410         (input_operand): Do not allow ca_operand.
17411         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
17412         carry bit, allow SImode and Pmode.
17413         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
17414
17415 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
17416
17417         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
17418         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
17419         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
17420         (*call_rex64_ms_sysv): Remove.
17421         (*call_value_rex64_ms_sysv): Ditto.
17422         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
17423
17424 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
17425
17426         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
17427         operand 3 to "CnL".
17428
17429 2014-09-20  Andreas Schwab  <schwab@suse.de>
17430
17431         * config/ia64/ia64.md: Remove constraints from define_split
17432         patterns.
17433
17434 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17435
17436         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class;
17437         add ctors.
17438         (possible_polymorphic_call_targets,
17439         dump_possible_polymorphic_call_targets,
17440         possible_polymorphic_call_target_p,
17441         possible_polymorphic_call_target_p): Simplify.
17442         (get_dynamic_type): Remove.
17443         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
17444         (clear_speculation): Bring to ipa-deivrt.h
17445         (get_class_context): Rename to ...
17446         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
17447         (contains_type_p): Update.
17448         (get_dynamic_type): Rename to ...
17449         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
17450         (possible_polymorphic_call_targets): UPdate.
17451         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
17452         * ipa-prop.c (ipa_analyze_call_uses): Update.
17453
17454 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17455
17456         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
17457         privatize dynamic TLS variables.
17458
17459 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17460
17461         * diagnostic.c (warning_n): New function.
17462         * diagnostic-core.h (warning_n): Declare.
17463         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
17464         output dynamic counts when available.
17465
17466 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17467
17468         PR tree-optimization/63255
17469         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
17470         issue in setting body_removed flag.
17471
17472 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17473
17474         PR c++/61825
17475         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
17476         that visibility change is possible
17477         (handle_weakref_attribute): Likewise.
17478         * cgraph.h (symtab_node): Add method get_create and
17479         field refuse_visibility_changes.
17480         (symtab_node::get_create): New method.
17481         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
17482         * varasm.c (mark_weak): Verify that visibility change is possible.
17483
17484 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
17485
17486         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
17487         for base_reg_operand to be common between LO_SUM and PLUS.
17488         (fusion_gpr_mem_combo): New predicate to match a fused address
17489         that combines the addis and memory offset address.
17490
17491         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
17492         calling signature.
17493         (emit_fusion_gpr_load): Likewise.
17494
17495         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
17496         signature to pass each argument separately, rather than
17497         using an operands array.  Rewrite the insns found by peephole2 to
17498         be a single insn, rather than hoping the insns will still be
17499         together when the peephole pass is done.  Drop being called via a
17500         normal peephole.
17501         (emit_fusion_gpr_load): Change calling signature to be called from
17502         the fusion_gpr_load_<mode> insns with a combined memory address
17503         instead of the peephole pass passing the addis and offset
17504         separately.
17505
17506         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
17507         fusion.
17508         (power8 fusion peephole): Drop support for doing power8 via a
17509         normal peephole that was created by the peephole2 pass.
17510         (power8 fusion peephole2): Create a new insn with the fused
17511         address, so that the fused operation is kept together after
17512         register allocation is done.
17513         (fusion_gpr_load_<mode>): Likewise.
17514
17515 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
17516
17517         PR lto/63286
17518         * tree.c (need_assembler_name_p): Do not mangle variadic types.
17519
17520 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
17521
17522         * recog.c (scratch_operand): Do not simply allow all hard registers:
17523         only allow those that are allocatable.
17524
17525 2014-09-19  Felix Yang  <felix.yang@huawei.com>
17526
17527         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
17528         comments and fix spacing to conform to coding style.
17529
17530 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17531
17532         * genrecog.c (validate_pattern): Allow empty constraints in
17533         a match_scratch.
17534
17535 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
17536
17537         * dwarf2out.c (decl_ultimate_origin): Update comment.
17538         * tree.c (block_ultimate_origin): Same.
17539
17540 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17541
17542         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
17543         Update GCC version name to GCC 5.
17544         (rs6000_function_arg_boundary): Likewise.
17545         (rs6000_function_arg): Likewise.
17546
17547 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17548
17549         * config/sh/sh.md: Fix use of constraints in define_split.
17550
17551 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
17552
17553         PR ipa/61998
17554         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
17555
17556 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17557
17558         * doc/md.texi (Modifiers): Consistently use "read/write"
17559         nomenclature rather than "input/output".
17560         * genrecog.c (constraints_supported_in_insn_p): New.
17561         (validate_pattern): If needed, also check constraints on
17562         MATCH_SCRATCH operands.
17563         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
17564         operands with no '=' or '+' modifier.
17565
17566 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
17567
17568         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
17569         scratch register as written.
17570
17571 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17572
17573         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
17574         assignment.
17575
17576 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17577
17578         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
17579         expanders.
17580
17581 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17582
17583         PR target/62662
17584         * config/s390/s390.c (s390_emit_epilogue): When doing the return
17585         address load optimization force s390_optimize_prologue to leave it
17586         that way.  Only do the optimization if we already decided to push
17587         r14 into a stack slot.
17588
17589 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
17590
17591         * asan.c (build_check_stmt): Alignment arg was added.
17592         (asan_expand_check_ifn): Optimization for alignment >= 8.
17593
17594 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17595
17596         * config/i386/vxworksae.h: Remove obsolete definitions.
17597         (STACK_CHECK_PROTECT): Define.
17598         * config/i386/vx-common.h: Remove.  Merge contents within
17599         config/i386/vxworks.h.
17600         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
17601         i386/vx-common.h.
17602
17603 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17604
17605         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
17606         * config/rs6000/t-vxworksmils: New file.
17607         * config/rs6000/vxworksmils.h: New file.
17608
17609 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17610
17611         * varasm.c (default_section_type_flags): Flag .persistent.bss
17612         sections as SECTION_BSS.
17613
17614 2014-09-19  Nick Clifton  <nickc@redhat.com>
17615
17616         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
17617         pop'ed registers so that DCE does not eliminate them.
17618
17619 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
17620
17621         PR lto/63298
17622         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
17623
17624 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
17625
17626         * system.h (LIBGCC2_TF_CEXT): Poison.
17627         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
17628         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
17629         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
17630         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
17631         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
17632         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
17633         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
17634         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
17635         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
17636
17637 2014-09-19  Kito Cheng  <kito@0xlab.org>
17638
17639         * except.h: Fix header guard.
17640         * addresses.h: Add missing header guard.
17641         * cfghooks.h: Likewise.
17642         * collect-utils.h: Likewise.
17643         * collect2-aix.h: Likewise.
17644         * conditions.h: Likewise.
17645         * cselib.h: Likewise.
17646         * dwarf2asm.h: Likewise.
17647         * graphds.h: Likewise.
17648         * graphite-scop-detection.h: Likewise.
17649         * gsyms.h: Likewise.
17650         * hw-doloop.h: Likewise.
17651         * incpath.h: Likewise.
17652         * ipa-inline.h: Likewise.
17653         * ipa-ref.h: Likewise.
17654         * ira-int.h: Likewise.
17655         * ira.h: Likewise.
17656         * lra-int.h: Likewise.
17657         * lra.h: Likewise.
17658         * lto-section-names.h: Likewise.
17659         * read-md.h: Likewise.
17660         * reload.h: Likewise.
17661         * rtl-error.h: Likewise.
17662         * sdbout.h: Likewise.
17663         * targhooks.h: Likewise.
17664         * tree-affine.h: Likewise.
17665         * xcoff.h: Likewise.
17666         * xcoffout.h: Likewise.
17667
17668 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17669
17670         PR debug/63285
17671         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
17672         if advance != 0.
17673
17674 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17675
17676         PR target/61360
17677         * lra.c (lra): Call recog_init.
17678
17679 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
17680
17681         PR c++/62017
17682         * asan.c (transform_statements): Don't instrument clobber statements.
17683
17684 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17685
17686         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
17687         to neon_load1_1reg<q>.
17688
17689 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
17690
17691         PR debug/63284
17692         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
17693         if there are only debug stmts after the noreturn call, instead
17694         remove the debug stmts.
17695
17696 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
17697
17698         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
17699         (odr_types_equivalent_p): Use pair hash.
17700         (odr_subtypes_equivalent_p): Likewise, do structural compare
17701         on ODR types that may be mismatched.
17702         (warn_odr): Support warning when only one field is given.
17703         (odr_types_equivalent_p): Strenghten comparsions made;
17704         support VOIDtype.
17705         (add_type_duplicate): Update VISITED hash set.
17706
17707 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17708
17709         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
17710         Enable selection of 'posix' or no thread model.
17711
17712 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
17713
17714         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
17715         when architecture is older than ARMv7.
17716
17717 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
17718
17719         PR target/61853
17720         * config/pa/pa.c (pa_function_value): Directly handle aggregates
17721         that fit exactly in a word or double word.
17722
17723 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
17724
17725         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
17726         zmm/k regs support.
17727
17728 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17729             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17730             Anna Tikhonova  <anna.tikhonova@intel.com>
17731             Ilya Tocar  <ilya.tocar@intel.com>
17732             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17733             Ilya Verbin  <ilya.verbin@intel.com>
17734             Kirill Yukhin  <kirill.yukhin@intel.com>
17735             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17736
17737         * config/i386/i386.c
17738         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
17739         * config/i386/sse.md
17740         (define_mode_iterator VI48F_256): New.
17741         (define_mode_attr extract_type): Ditto.
17742         (define_mode_attr extract_suf): Ditto.
17743         (define_mode_iterator AVX512_VEC): Ditto.
17744         (define_expand
17745         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
17746         AVX512_VEC.
17747         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
17748         (define_insn
17749         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
17750         Ditto.
17751         (define_mode_attr extract_type_2): Ditto.
17752         (define_mode_attr extract_suf_2): Ditto.
17753         (define_mode_iterator AVX512_VEC_2): Ditto.
17754         (define_expand
17755         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
17756         AVX512_VEC_2 mode iterator.
17757         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17758         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
17759         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17760         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17761         (define_split for V16FI mode): Ditto.
17762         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17763         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17764         (define_split for VI8F_256 mode): Ditto.
17765         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17766         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17767         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17768         (define_split for VI4F_256 mode): Ditto.
17769         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
17770         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17771         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17772         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
17773         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
17774         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
17775         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
17776         Update `type' attribute, remove explicit `memory' attribute calculation.
17777
17778 2014-09-16  Kito Cheng  <kito@0xlab.org>
17779
17780         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
17781         ira_spilled_reg_stack_slots_num if using lra.
17782         (do_reload): Remove release ira_spilled_reg_stack_slots part.
17783         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
17784         make sure not using lra.
17785         (ira_reuse_stack_slot): Likewise.
17786         (ira_mark_new_stack_slot): Likewise.
17787
17788 2014-09-15  Andi Kleen  <ak@linux.intel.com>
17789
17790         * function.c (allocate_struct_function): Force
17791         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
17792         profiling is disabled.
17793
17794 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17795
17796         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
17797         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
17798         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
17799         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
17800         macro with statically checked member functions.
17801         * rtl.h (rtx_insn::deleted): New method.
17802         (rtx_insn::set_deleted): Likewise.
17803         (rtx_insn::set_undeleted): Likewise.
17804         (INSN_DELETED_P): Remove.
17805
17806 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17807
17808         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17809         result of emit_jump_insn_before to a new variable.
17810         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17811         (mark_jump_label_1): Likewise.
17812         (mark_jump_label_asm): Likewise.
17813         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17814         * rtl.h (mark_jump_label): Adjust.
17815
17816 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
17817
17818         * Makefile.in (dg_target_exps): Remove.
17819         (check_gcc_parallelize): Change to just an upper bound number.
17820         (check-%-subtargets): Always print the non-parallelized goals.
17821         (check_p_vars, check_p_comma, check_p_subwork): Remove.
17822         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17823         check_p_numbers3, check_p_numbers4, check_p_numbers5,
17824         check_p_numbers6): New variables.
17825         (check_p_numbers): Set to sequence from 1 to 9999.
17826         (check_p_subdirs): Set to sequence from 1 to minimum of
17827         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17828         or 128.
17829         (check-%, check-parallel-%): Rewritten so that for parallelized
17830         testing each job runs all the *.exp files, with
17831         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17832
17833 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17834
17835         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17836         rtx to rtx_insn *.
17837         (arc_sets_cc_p): Likewise.
17838         * config/arc/arc.c (arc_print_operand): Use methods of
17839         "final_sequence" for clarity, and to enable strengthening of
17840         locals "jump" and "delay" from rtx to rtx_insn *.
17841         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17842         rtx_insn *; use method of rtx_sequence for typesafety.
17843         (arc_get_insn_variants): Use insn method of rtx_sequence for
17844         typesafety.
17845         (arc_pad_return): Likewise.
17846         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17847         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
17848         dyn_cast to rtx_sequence *, using insn method for typesafety.
17849         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17850         rtx_sequence * and use insn method when invoking get_attr_length.
17851         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17852         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
17853         rtx_sequence *, introducing a local "seq", using its insn method
17854         from typesafety and clarity.
17855         (add_sched_insns_for_speculation): Strengthen local "next" from
17856         rtx to rtx_insn *.
17857         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17858         (predicate_insn): Likewise.
17859         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17860         second param.
17861         * config/cris/cris.c (cris_notice_update_cc): Likewise.
17862         * config/epiphany/epiphany-protos.h
17863         (extern void epiphany_insert_mode_switch_use): Likewise for param
17864         "insn".
17865         (get_attr_sched_use_fpu): Likewise for param.
17866         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17867         Likewise for param "insn".
17868         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17869         param "insn" of "target_insert_mode_switch_use" callback.
17870         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17871         (frv_issues_to_branch_unit_p): Likewise.
17872         (frv_pack_insn_p): Likewise.
17873         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17874         const rtx * (i.e. mutable rtx_def * const *) to
17875         rtx_insn * const *.
17876         * config/i386/i386-protos.h (standard_sse_constant_opcode):
17877         Strengthen first param from rtx to rtx_insn *.
17878         (output_fix_trunc): Likewise.
17879         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17880         (output_fix_trunc): Likewise.
17881         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17882         local "insn".
17883         (min_insn_size): Likewise for param "insn".
17884         (get_mem_group): Likewise.
17885         (is_cmp): Likewise.
17886         (get_insn_path): Likewise.
17887         (get_insn_group): Likewise.
17888         (count_num_restricted): Likewise.
17889         (fits_dispatch_window): Likewise.
17890         (add_insn_window): Likewise.
17891         (add_to_dispatch_window): Likewise.
17892         (debug_insn_dispatch_info_file): Likewise.
17893         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17894         first param.
17895         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17896         "cmp" and local "prev".
17897         (m32c_output_compare): Likewise for param "insn".
17898         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17899         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17900         (define_predicate "large_insn_p"): Likewise.
17901         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17902         param from rtx to rtx_insn *.
17903         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17904         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17905         (m68k_sched_attr_size): Likewise.
17906         (sched_get_opxy_mem_type): Likewise for param "insn".
17907         (m68k_sched_attr_op_mem): Likewise.
17908         (sched_mem_operand_p): Likewise.
17909         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17910         * config/mep/mep.c (mep_multi_slot): Likewise.
17911         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17912         first param.
17913         (mips_sync_loop_insns): Likewise.
17914         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17915         method of "final_sequence" for typesafety.
17916         (mips_process_sync_loop): Strengthen param "insn" from rtx to
17917         rtx_insn *.
17918         (mips_output_sync_loop): Likewise.
17919         (mips_sync_loop_insns): Likewise.
17920         (mips_74k_agen_init): Likewise.
17921         (mips_sched_init): Use NULL rather than NULL_RTX when working with
17922         insns.
17923         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17924         Strengthen param "insn" from rtx to rtx_insn *.
17925         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17926         local "insn".
17927         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for param.
17928         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17929         "insn".  Use method of rtx_sequence for typesafety.
17930         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17931         rtx_insn *.
17932         (branch_needs_nop_p): Likewise.
17933         (use_skip_p): Likewise.
17934         (pa_insn_refs_are_delayed): Likewise.
17935         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17936         for locals "insn", "ninsn".
17937         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17938         "insn".
17939         (is_cracked_insn): Likewise.
17940         (is_branch_slot_insn): Likewise.
17941         (is_nonpipeline_insn): Likewise.
17942         (insn_terminates_group_p): Likewise.
17943         (insn_must_be_first_in_group): Likewise.
17944         (insn_must_be_last_in_group): Likewise.
17945         (force_new_group): Likewise for param "next_insn".
17946         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17947         "insn".
17948         (s390_sched_score): Likewise.
17949         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17950         (rtx sfunc_uses_reg): Likewise for sole param.
17951         * config/sh/sh.c (sh_print_operand): Use insn method of
17952         final_sequence for typesafety.
17953         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17954         Use insn method of final_sequence for typesafety.
17955         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17956         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17957         for param.
17958         (eligible_for_return_delay): Likewise.
17959         (eligible_for_sibcall_delay): Likewise.
17960         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17961         (eligible_for_return_delay): Likewise.
17962         (eligible_for_sibcall_delay): Likewise.
17963         * config/stormy16/stormy16-protos.h
17964         (xstormy16_output_cbranch_hi): Likewise for final param.
17965         (xstormy16_output_cbranch_si): Likewise.
17966         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17967         (xstormy16_output_cbranch_si): Likewise.
17968         * config/v850/v850-protos.h (notice_update_cc): Likewise.
17969         * config/v850/v850.c (notice_update_cc): Likewise.
17970
17971         * final.c (get_attr_length_1): Strengthen param "insn" and param
17972         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17973         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17974         (get_attr_min_length): Likewise.
17975         (shorten_branches): Likewise for signature of locals "length_fun"
17976         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
17977         from a checked cast and use its methods for clarity and to enable
17978         strengthening local "inner_insn" from rtx to rtx_insn *.
17979         * genattr.c (gen_attr): When writing out the prototypes of the
17980         various generated "get_attr_" functions, strengthen the params of
17981         the non-const functions from rtx to rtx_insn *.
17982         Similarly, strengthen the params of insn_default_length,
17983         insn_min_length, insn_variable_length_p, insn_current_length.
17984         (main): Similarly, strengthen the param of num_delay_slots,
17985         internal_dfa_insn_code, insn_default_latency, bypass_p,
17986         insn_latency, min_issue_delay, print_reservation,
17987         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17988         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
17989         to hook_int_rtx_insn_unreachable.
17990         * genattrtab.c (write_attr_get): When writing out the generated
17991         "get_attr_" functions, strengthen the param "insn" from rtx to
17992         rtx_insn *, eliminating a checked cast.
17993         (make_automaton_attrs): When writing out prototypes of
17994         "internal_dfa_insn_code_", "insn_default_latency_" functions
17995         and the "internal_dfa_insn_code" and "insn_default_latency"
17996         callbacks, strengthen their params from rtx to rtx_insn *
17997         * genautomata.c (output_internal_insn_code_evaluation): When
17998         writing out code, add a checked cast from rtx to rtx_insn * when
17999         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
18000         (output_dfa_insn_code_func): Strengthen param of generated
18001         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
18002         (output_trans_func): Likewise for generated function
18003         "state_transition".
18004         (output_internal_insn_latency_func): When writing out generated
18005         function "internal_insn_latency", rename params from "insn" and
18006         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
18007         locals "insn" and "insn2" as rtx_insn * with checked casts once
18008         we've proven that we're not dealing with const0_rtx.
18009         (output_insn_latency_func):  Strengthen param of generated
18010         function "insn_latency" from rtx to rtx_insn *.
18011         (output_print_reservation_func): Likewise for generated function
18012         "print_reservation".
18013         (output_insn_has_dfa_reservation_p): Likewise for generated
18014         function "insn_has_dfa_reservation_p".
18015         * hooks.c (hook_int_rtx_unreachable): Rename to...
18016         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
18017         from rtx to rtx_insn *.
18018         * hooks.h (hook_int_rtx_unreachable): Likewise.
18019         (extern int hook_int_rtx_insn_unreachable): Likewise.
18020         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
18021         (get_attr_min_length): Likewise.
18022         * recog.c (get_enabled_alternatives): Likewise.
18023         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
18024         * reorg.c (find_end_label): Introduce local rtx "pat" and
18025         strengthen local "insn" from rtx to rtx_insn *.
18026         (redundant_insn): Use insn method of "seq" rather than element for
18027         typesafety; strengthen local "control" from rtx to rtx_insn *.
18028         * resource.c (mark_referenced_resources): Add checked cast to
18029         rtx_insn * within INSN/JUMP_INSN case.
18030         (mark_set_resources): Likewise.
18031         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
18032         rtx to rtx_insn *.
18033
18034 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
18035
18036         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
18037         param "label" from rtx to rtx_insn *.
18038         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
18039         and local "op".
18040         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
18041         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
18042         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
18043         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
18044         * final.c (default_label_align_after_barrier_max_skip): Strengthen
18045         param from rtx to rtx_insn *.
18046         (default_loop_align_max_skip): Likewise.
18047         (default_label_align_max_skip): Likewise.
18048         (default_jump_align_max_skip): Likewise.
18049         * target.def (label_align_after_barrier_max_skip): Likewise.
18050         (loop_align_max_skip): Likewise.
18051         (label_align_max_skip): Likewise.
18052         (jump_align_max_skip): Likewise.
18053         * targhooks.h (default_label_align_after_barrier_max_skip): Likewise.
18054         (default_loop_align_max_skip): Likewise.
18055         (default_label_align_max_skip): Likewise.
18056         (default_jump_align_max_skip): Likewise.
18057
18058 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
18059
18060         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
18061         from const_rtx to const rtx_insn *.  Update union members from rtx
18062         to rtx_insn *.
18063         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
18064         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
18065         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
18066         strengthen both params from const_rtx to const rtx_insn *.
18067         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
18068         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
18069         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
18070         rtx_insn *.
18071         * target.def (can_follow_jump): Strengthen both params from
18072         const_rtx to const rtx_insn *, and update default implementation
18073         from hook_bool_const_rtx_const_rtx_true to
18074         hook_bool_const_rtx_insn_const_rtx_insn_true.
18075
18076 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
18077
18078         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
18079         "insn" from rtx to rtx_insn *.
18080         * sched-int.h (deps_start_bb): Likewise for 2nd param.
18081
18082 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18083             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18084             Anna Tikhonova  <anna.tikhonova@intel.com>
18085             Ilya Tocar  <ilya.tocar@intel.com>
18086             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18087             Ilya Verbin  <ilya.verbin@intel.com>
18088             Kirill Yukhin  <kirill.yukhin@intel.com>
18089             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18090
18091         * config/i386/sse.md
18092         (define_insn "vcvtph2ps<mask_name>"): Add masking.
18093         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
18094         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
18095         (define_expand "vcvtps2ph_mask"): New.
18096         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
18097         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
18098         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
18099
18100 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18101             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18102             Anna Tikhonova  <anna.tikhonova@intel.com>
18103             Ilya Tocar  <ilya.tocar@intel.com>
18104             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18105             Ilya Verbin  <ilya.verbin@intel.com>
18106             Kirill Yukhin  <kirill.yukhin@intel.com>
18107             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18108
18109         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
18110         New.
18111         (define_mode_iterator VI24_AVX512BW_1): Ditto.
18112         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
18113         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
18114         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
18115         also for TARGET_AVX512VL.
18116         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
18117
18118 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
18119
18120         * doc/install.texi (Options specification): add
18121         --disable-libsanitizer item.
18122
18123 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
18124             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18125
18126         PR target/61407
18127         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
18128         and above.
18129         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
18130         kernel version check to avoid incrementing it after every major OS X
18131         release.
18132         (darwin_default_min_version): Avoid static memory buffer.
18133
18134 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
18135
18136         * tree.c (need_assembler_name_p): Store C++ type mangling only
18137         for aggregates.
18138
18139 2014-09-13  Marek Polacek  <polacek@redhat.com>
18140
18141         * tree.c (protected_set_expr_location): Don't check whether T is
18142         non-null here.
18143
18144 2014-09-12  DJ Delorie  <dj@redhat.com>
18145
18146         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
18147         (extend_and_shift1_hipsi2): Likewise.
18148         (extend_and_shift2_hipsi2): Likewise.
18149
18150 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
18151
18152         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
18153         with NULL when dealing with an insn.
18154         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
18155         from rtx to rtx_insn *.
18156         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
18157         const_rtx to const rtx_insn *.
18158         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
18159
18160 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
18161
18162         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
18163         assert.
18164
18165 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
18166
18167         * target.def (libgcc_floating_mode_supported_p): New hook.
18168         * targhooks.c (default_libgcc_floating_mode_supported_p): New
18169         function.
18170         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
18171         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
18172         (LIBGCC2_HAS_TF_MODE): Remove.
18173         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
18174         * doc/tm.texi: Regenerate.
18175         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
18176         machine mode.
18177         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
18178         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
18179         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
18180         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
18181         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18182         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
18183         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
18184         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
18185         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
18186         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
18187         function.
18188         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
18189         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18190         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18191         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18192         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18193         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18194         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18195         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
18196         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
18197         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
18198         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
18199         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
18200         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
18201         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
18202         Remove.
18203         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
18204         New macro.
18205         (ia64_libgcc_floating_mode_supported_p): New function.
18206         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
18207         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
18208         (IA64_NO_LIBGCC_TFMODE): Define.
18209         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
18210         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
18211         (pdp11_scalar_mode_supported_p): New function.
18212         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
18213         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
18214
18215 2014-09-12  Richard Biener  <rguenther@suse.de>
18216
18217         PR middle-end/63237
18218         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
18219
18220 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
18221
18222         * tree.c (integer_each_onep): New function.
18223         * tree.h (integer_each_onep): Declare it.
18224         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
18225         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
18226         (X & 1) == 0 for vector and complex.
18227
18228 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
18229
18230         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
18231         for A57.
18232         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
18233         cost to spilling from integer to FP registers.
18234
18235 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
18236
18237         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
18238         move handling.
18239         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
18240         are now handled correctly.
18241
18242 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
18243
18244         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
18245         handling of CALLER_SAVE_REGS and POINTER_REGS.
18246
18247 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
18248
18249         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
18250         the number of hard registers.
18251
18252 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18253             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18254             Anna Tikhonova  <anna.tikhonova@intel.com>
18255             Ilya Tocar  <ilya.tocar@intel.com>
18256             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18257             Ilya Verbin  <ilya.verbin@intel.com>
18258             Kirill Yukhin  <kirill.yukhin@intel.com>
18259             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18260
18261         * config/i386/sse.md
18262         (define_mode_iterator VI48_AVX512VL): New.
18263         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
18264         "avx512f_vternlog<mode>_maskz" and update mode iterator.
18265         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
18266         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
18267         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
18268         "avx512f_vternlog<mode>_mask" and update mode iterator.
18269         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
18270         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
18271         iterator.
18272         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
18273         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
18274         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
18275         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
18276         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
18277         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
18278
18279 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18280             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18281             Anna Tikhonova  <anna.tikhonova@intel.com>
18282             Ilya Tocar  <ilya.tocar@intel.com>
18283             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18284             Ilya Verbin  <ilya.verbin@intel.com>
18285             Kirill Yukhin  <kirill.yukhin@intel.com>
18286             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18287
18288         * config/i386/sse.md (VI128_256): Delete.
18289         (define_mode_iterator VI124_256): New.
18290         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
18291         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
18292         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
18293         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
18294         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
18295         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
18296         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
18297         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
18298         iterator.
18299         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
18300         in presence of AVX-512.
18301
18302 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18303             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18304             Anna Tikhonova  <anna.tikhonova@intel.com>
18305             Ilya Tocar  <ilya.tocar@intel.com>
18306             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18307             Ilya Verbin  <ilya.verbin@intel.com>
18308             Kirill Yukhin  <kirill.yukhin@intel.com>
18309             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18310
18311         * config/i386/sse.md
18312         (define_expand "<avx512>_gathersi<mode>"): Rename from
18313         "avx512f_gathersi<mode>".
18314         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
18315         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
18316         (define_expand "<avx512>_gatherdi<mode>"): Rename from
18317         "avx512f_gatherdi<mode>".
18318         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
18319         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
18320         wide versions.
18321         (define_expand "<avx512>_scattersi<mode>"): Rename from
18322         "avx512f_scattersi<mode>".
18323         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
18324         (define_expand "<avx512>_scatterdi<mode>"): Rename from
18325         "avx512f_scatterdi<mode>".
18326         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
18327
18328 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
18329
18330         * ira.h (ira_finish_once): Delete.
18331         * ira-int.h (target_ira_int::~target_ira_int): Declare.
18332         (target_ira_int::free_ira_costs): Likewise.
18333         (target_ira_int::free_register_move_costs): Likewise.
18334         (ira_finish_costs_once): Delete.
18335         * ira.c (free_register_move_costs): Replace with...
18336         (target_ira_int::free_register_move_costs): ...this new function.
18337         (target_ira_int::~target_ira_int): Define.
18338         (ira_init): Call free_register_move_costs as a member function rather
18339         than a global function.
18340         (ira_finish_once): Delete.
18341         * ira-costs.c (free_ira_costs): Replace with...
18342         (target_ira_int::free_ira_costs): ...this new function.
18343         (ira_init_costs): Call free_ira_costs as a member function rather
18344         than a global function.
18345         (ira_finish_costs_once): Delete.
18346         * target-globals.c (target_globals::~target_globals): Call the
18347         target_ira_int destructor.
18348         * toplev.c: Include lra.h.
18349         (finalize): Call lra_finish_once rather than ira_finish_once.
18350
18351 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
18352
18353         * common.opt (flto-odr-type-merging): New flag.
18354         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
18355         (types_same_for_odr): Likewise.
18356         (odr_subtypes_equivalent_p): Likewise.
18357         (add_type_duplicate): Do not walk type variants.
18358         (register_odr_type): New function.
18359         * ipa-utils.h (register_odr_type): Declare.
18360         (odr_type_p): New function.
18361         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
18362         TYPE_DECLs
18363         * doc/invoke.texi (-flto-odr-type-merging): Document.
18364         * tree.c (need_assembler_name_p): Compute ODR names when asked
18365         for it.
18366         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
18367
18368 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
18369
18370         PR target/63228
18371         * config/i386/i386.c (ix86_option_override_internal): Also turn
18372         off OPTION_MASK_ABI_X32 for -m16.
18373
18374 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
18375
18376         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
18377         GPR instead of P.
18378
18379 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
18380
18381         PR target/58757
18382         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
18383         Directly forward to __*_DENORM_MIN__.
18384
18385 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
18386
18387         * rtl.h (LABEL_REF_LABEL): New macro.
18388
18389         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
18390         of XEXP (, 0), where we know that we have a LABEL_REF.
18391         * cfgbuild.c (make_edges): Likewise.
18392         (purge_dead_tablejump_edges): Likewise.
18393         * cfgexpand.c (convert_debug_memory_address): Likewise.
18394         * cfgrtl.c (patch_jump_insn): Likewise.
18395         * combine.c (distribute_notes): Likewise.
18396         * cse.c (hash_rtx_cb): Likewise.
18397         (exp_equiv_p): Likewise.
18398         (fold_rtx): Likewise.
18399         (check_for_label_ref): Likewise.
18400         * cselib.c (rtx_equal_for_cselib_1): Likewise.
18401         (cselib_hash_rtx): Likewise.
18402         * emit-rtl.c (mark_label_nuses): Likewise.
18403         * explow.c (convert_memory_address_addr_space): Likewise.
18404         * final.c (output_asm_label): Likewise.
18405         (output_addr_const): Likewise.
18406         * gcse.c (add_label_notes): Likewise.
18407         * genconfig.c (walk_insn_part): Likewise.
18408         * genrecog.c (validate_pattern): Likewise.
18409         * ifcvt.c (cond_exec_get_condition): Likewise.
18410         (noce_emit_store_flag): Likewise.
18411         (noce_get_alt_condition): Likewise.
18412         (noce_get_condition): Likewise.
18413         * jump.c (maybe_propagate_label_ref): Likewise.
18414         (mark_jump_label_1): Likewise.
18415         (redirect_exp_1): Likewise.
18416         (rtx_renumbered_equal_p): Likewise.
18417         * lra-constraints.c (operands_match_p): Likewise.
18418         * reload.c (operands_match_p): Likewise.
18419         (find_reloads): Likewise.
18420         * reload1.c (set_label_offsets): Likewise.
18421         * reorg.c (get_branch_condition): Likewise.
18422         * rtl.c (rtx_equal_p_cb): Likewise.
18423         (rtx_equal_p): Likewise.
18424         * rtlanal.c (reg_mentioned_p): Likewise.
18425         (rtx_referenced_p): Likewise.
18426         (get_condition): Likewise.
18427         * sched-vis.c (print_value): Likewise.
18428         * varasm.c (const_hash_1): Likewise.
18429         (compare_constant): Likewise.
18430         (const_rtx_hash_1): Likewise.
18431         (output_constant_pool_1): Likewise.
18432
18433 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
18434
18435         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
18436         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
18437         instead of minus.
18438         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
18439         cr6_test_for_lt_reverse): Ditto.
18440
18441 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
18442
18443         PR c++/61489
18444         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
18445
18446 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
18447
18448         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
18449         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
18450         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
18451         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
18452         Delete.
18453
18454         (aarch64_fold_builtin): Remove all reinterpret cases.
18455
18456         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
18457
18458         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
18459
18460         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
18461         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
18462         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
18463         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
18464         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
18465         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
18466         aarch64_reinterpretv2df<mode>): Delete.
18467
18468         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
18469
18470         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
18471         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
18472         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
18473         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
18474         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
18475         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
18476         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
18477         vreinterpret_u32_f64): Use cast.
18478
18479         * config/aarch64/iterators.md (VD_RE): Delete.
18480
18481 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
18482
18483         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
18484         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
18485         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
18486         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
18487         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
18488         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
18489         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
18490         Replace inline assembler with __aarch64_vset_lane_any.
18491
18492 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
18493
18494         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
18495         types.
18496         (vmull_high_lane_s32): Likewise.
18497         (vmull_high_lane_u16): Likewise.
18498         (vmull_high_lane_u32): Likewise.
18499
18500 2014-09-11  Jason Merrill  <jason@redhat.com>
18501
18502         PR c++/58678
18503         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
18504
18505 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
18506
18507         PR target/63223
18508         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
18509         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
18510         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
18511
18512 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18513             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18514             Anna Tikhonova  <anna.tikhonova@intel.com>
18515             Ilya Tocar  <ilya.tocar@intel.com>
18516             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18517             Ilya Verbin  <ilya.verbin@intel.com>
18518             Kirill Yukhin  <kirill.yukhin@intel.com>
18519             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18520
18521         * config/i386/sse.md
18522         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
18523         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
18524         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
18525         New.
18526         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
18527         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
18528         iterator.
18529         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
18530         New.
18531         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
18532         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
18533         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
18534         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
18535         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
18536         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
18537         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
18538         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
18539         iterator.
18540         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
18541         New.
18542         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
18543         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
18544         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
18545
18546 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18547
18548         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
18549         to access removed nodes.
18550
18551 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18552
18553         PR tree-optimization/63186
18554         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
18555         (mark_nonssa_use): Likewise.
18556         (verify_non_ssa_vars): Verify all header blocks for label
18557         definitions.
18558
18559 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18560             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18561             Anna Tikhonova  <anna.tikhonova@intel.com>
18562             Ilya Tocar  <ilya.tocar@intel.com>
18563             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18564             Ilya Verbin  <ilya.verbin@intel.com>
18565             Kirill Yukhin  <kirill.yukhin@intel.com>
18566             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18567
18568         * config/i386/sse.md
18569         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
18570         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
18571         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
18572         "<avx2_avx512f>_permvar<mode><mask_name>".
18573         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
18574         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
18575         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
18576         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
18577         Ditto.
18578         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
18579         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
18580         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
18581         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
18582
18583 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
18584
18585         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
18586         V2DF, V4SF, DF, and DI modes.
18587         (vsx_fmav2df2): Likewise.
18588         (vsx_float_fix_<mode>2): Likewise.
18589         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
18590
18591 2014-09-10  Xinliang David Li  <davidxl@google.com>
18592
18593         PR target/63209
18594         * config/arm/arm.md (movcond_addsi): Handle case where source
18595         and target operands are the same.
18596
18597 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
18598
18599         * final.c (this_is_asm_operands): Strengthen this variable from
18600         rtx to const rtx_insn *.
18601         * output.h (this_is_asm_operands): Likewise.
18602         * rtl-error.c (location_for_asm): Strengthen param "insn" from
18603         const_rtx to const rtx_insn *.
18604         (diagnostic_for_asm): Likewise.
18605         * rtl-error.h (error_for_asm): Likewise.
18606         (warning_for_asm): Likewise.
18607
18608 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
18609
18610         * genextract.c (print_header): When writing out insn_extract to
18611         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
18612         * recog.h (insn_extract): Strengthen the param from rtx to
18613         rtx_insn *.
18614
18615 2014-09-10  Mike Stump  <mikestump@comcast.net>
18616
18617         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
18618         8.6.1.
18619
18620 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18621
18622         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
18623         (analyze): Do not set analyze flag if expand_thunk returns false;.
18624         (create_wrapper): Likewise.
18625         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
18626
18627 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18628
18629         PR ipa/61654
18630         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
18631         new decl properly.  Analyze the new thunk if it is expanded.
18632
18633 2014-09-10  Andreas Schwab  <schwab@suse.de>
18634
18635         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
18636         [USED_FOR_TARGET]: Define.
18637
18638 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
18639
18640         * config/mips/mips.c (mips_secondary_reload_class): Handle
18641         regno < 0 case.
18642
18643 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
18644
18645         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
18646         assignment.
18647
18648 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
18649
18650         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
18651         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
18652         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
18653         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
18654         flag_delete_null_pointer_checks for them.
18655         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
18656         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
18657         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
18658         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
18659         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
18660         stmt's iterator.
18661         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
18662         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
18663         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
18664         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
18665         * doc/invoke.texi (-fsanitize=nonnull-attribute,
18666         -fsanitize=returns-nonnull-attribute): Document.
18667
18668         * ubsan.h (struct ubsan_mismatch_data): Removed.
18669         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18670         * ubsan.c (ubsan_source_location): For unknown locations,
18671         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
18672         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18673         Allow more than one location and arbitrary extra arguments passed
18674         in ... instead of through MISMATCH pointer.
18675         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
18676         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
18677         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
18678         callers.
18679
18680 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18681             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18682             Anna Tikhonova  <anna.tikhonova@intel.com>
18683             Ilya Tocar  <ilya.tocar@intel.com>
18684             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18685             Ilya Verbin  <ilya.verbin@intel.com>
18686             Kirill Yukhin  <kirill.yukhin@intel.com>
18687             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18688
18689         * config/i386/sse.md
18690         (define_mode_iterator VI48F): New.
18691         (define_insn "<avx512>_compress<mode>_mask"): Rename from
18692         "avx512f_compress<mode>_mask" and update mode iterator.
18693         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
18694         "avx512f_compressstore<mode>_mask" and update mode iterator.
18695         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
18696         "avx512f_expand<mode>_maskz" and update mode iterator.
18697         (define_insn "<avx512>_expand<mode>_mask"): Rename from
18698         "avx512f_expand<mode>_mask" and update mode iterator.
18699
18700 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18701             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18702             Anna Tikhonova  <anna.tikhonova@intel.com>
18703             Ilya Tocar  <ilya.tocar@intel.com>
18704             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18705             Ilya Verbin  <ilya.verbin@intel.com>
18706             Kirill Yukhin  <kirill.yukhin@intel.com>
18707             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18708
18709         * config/i386/i386.c
18710         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
18711         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
18712         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
18713         avx512dq_rangepv4sf_mask.
18714         * config/i386/sse.md
18715         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
18716         UNSPEC_RANGE.
18717         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
18718         (define_insn "reduces<mode>"): Ditto.
18719         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
18720         Ditto.
18721         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
18722         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
18723         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
18724
18725 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18726             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18727             Anna Tikhonova  <anna.tikhonova@intel.com>
18728             Ilya Tocar  <ilya.tocar@intel.com>
18729             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18730             Ilya Verbin  <ilya.verbin@intel.com>
18731             Kirill Yukhin  <kirill.yukhin@intel.com>
18732             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18733
18734         * config/i386/i386.c
18735         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
18736         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
18737         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
18738         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
18739         avx512vl_getmantv2df_mask.
18740         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
18741         avx512f_vgetmantv4sf_round.
18742         * config/i386/sse.md
18743         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
18744         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
18745         mode iterator.
18746         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
18747         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
18748         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
18749         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
18750         iterator..
18751         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
18752         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
18753         update mode iterator.
18754         (define_expand
18755         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
18756         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
18757         mode iterator.
18758         (define_insn
18759         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
18760         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
18761         update mode iterator.
18762         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
18763         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
18764         iterator..
18765         (define_insn
18766         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
18767         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
18768         mode iterator..
18769         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
18770         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
18771         update mode iterator.
18772         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
18773         "avx512f_getmant<mode><round_saeonly_name>".
18774
18775 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18776
18777         PR ipa/63166
18778         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
18779
18780 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18781             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18782             Anna Tikhonova  <anna.tikhonova@intel.com>
18783             Ilya Tocar  <ilya.tocar@intel.com>
18784             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18785             Ilya Verbin  <ilya.verbin@intel.com>
18786             Kirill Yukhin  <kirill.yukhin@intel.com>
18787             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18788
18789         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
18790         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
18791         (define_mode_iterator FMAMODE_AVX512): New.
18792         (define_mode_iterator FMAMODE): Remove conditions.
18793         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
18794         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
18795         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
18796         mode iterator.
18797         (define_mode_iterator FMAMODE_NOVF512): Remove.
18798         (define_insn "*fma_fmadd_<mode>"): Rename from
18799         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
18800         FMAMODE mode iterator.
18801         (define_mode_iterator VF_SF_AVX512VL): New.
18802         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18803         Use VF_SF_AVX512VL mode iterator.
18804         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18805         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18806         iterator.
18807         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18808         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18809         iterator.
18810         (define_insn "*fma_fmsub_<mode>"): Rename from
18811         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18812         FMAMODE mode iterator.
18813         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18814         Use VF_SF_AVX512VL mode iterator.
18815         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18816         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18817         iterator.
18818         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18819         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18820         iterator.
18821         (define_insn "*fma_fnmadd_<mode>"): Rename from
18822         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18823         use FMAMODE mode iterator.
18824         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18825         Use VF_SF_AVX512VL mode iterator.
18826         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18827         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18828         iterator.
18829         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18830         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18831         iterator.
18832         (define_insn "*fma_fnmsub_<mode>"): Rename from
18833         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18834         FMAMODE mode iterator.
18835         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18836         Use VF_SF_AVX512VL mode iterator.
18837         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18838         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18839         iterator.
18840         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18841         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18842         iterator.
18843         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18844         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18845         use VF_AVX512VL mode iterator.
18846         (define_insn "*fma_fmaddsub_<mode>"): Rename from
18847         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18848         remove subst usage.
18849         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18850         Use VF_SF_AVX512VL mode iterator.
18851         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18852         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18853         iterator.
18854         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18855         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18856         iterator.
18857         (define_insn "*fma_fmsubadd_<mode>"): Rename from
18858         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18859         remove usage of subst.
18860         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18861         Use VF_SF_AVX512VL mode iterator.
18862         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18863         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18864         iterator.
18865         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18866         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18867         iterator.
18868
18869 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
18870
18871         Revert r213751:
18872         * calls.c (precompute_arguments): Check
18873          promoted_for_signed_and_unsigned_p and set the promoted mode.
18874         (promoted_for_signed_and_unsigned_p): New function.
18875         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18876         and set the promoted mode.
18877         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18878         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18879         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18880
18881 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18882
18883         * opth-gen.awk: Generate mapping from cpp message reasons to the
18884         options that enable them.
18885         * doc/options.texi (CppReason): Document.
18886
18887 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18888
18889         * doc/invoke.texi (Wnormalized=): Update.
18890
18891 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
18892
18893         PR target/63195
18894         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18895         operands.  Split off the constant operand alternative to ...
18896         (*bool<mode>3_imm): New.
18897
18898 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18899
18900         * rtl.h (single_set_2): Strengthen first param from const_rtx to
18901         const rtx_insn *, and move prototype to above...
18902         (single_set): ...this.  Convert this from a macro to an inline
18903         function, enforcing the requirement that the param is a const
18904         rtx_insn *.
18905         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18906
18907         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18908         Strengthen both params from rtx to rtx_insn *.
18909         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18910         Likewise; introduce locals "producer_set", "consumer_set", using
18911         them in place of "producer" and "consumer" when dealing with SET
18912         rather than insn.
18913         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18914         when invoking single_set in region guarded by INSN_P.
18915         (avr_out_bitop): Likewise.
18916         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18917         region guarded by GET_CODE check, using methods to strengthen
18918         local "this_insn" from rtx to rtx_insn *, and for clarity.
18919         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18920         Strengthen local "insn" from rtx to rtx_insn *.
18921         (define_insn_and_split "xload<mode>_A"): Likewise.
18922         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18923         "insn".
18924         (find_load): Likewise for return type.
18925         (workaround_speculation): Likewise for both locals named
18926         "load_insn".
18927         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18928         local "cc0_user".
18929         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18930         for local "prev".
18931         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18932         param 2.
18933         * config/h8300/h8300.c (notice_update_cc): Likewise.
18934         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18935         "insn" and "dep_insn".
18936         (exact_store_load_dependency): Likewise for both params.
18937         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18938         since this now clashes with inline function.  Instead, delay
18939         calling single_set until the point where its needed, and then
18940         assign the result to "compare_set" and rework the conditional that
18941         follows.
18942         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18943         local "last" from rtx to rtx_insn *.
18944         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18945         second param.
18946         (mips_store_data_bypass_p): Likewise for both params.
18947         * config/mips/mips.c (mips_load_store_insns): Likewise for second
18948         param.
18949         (mips_store_data_bypass_p): Likewise for both params.
18950         (mips_orphaned_high_part_p): Likewise for param "insn".
18951         * config/mn10300/mn10300.c (extract_bundle): Likewise.
18952         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18953         Introduce local rtx "insn2_pat".
18954         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18955         "ninsn".
18956         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18957         Introduce local rtx "set", using it in place of "insn" for the
18958         result of single_set.  This appears to fix a bug, since the call
18959         to find_regno_note on a SET does nothing.
18960         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18961         params from rtx to rtx_insn *.
18962         (set_to_load_agen): Likewise.
18963         * config/s390/s390.c (s390_label_align): Likewise for local
18964         "prev_insn".  Introduce new rtx locals "set" and "src", using
18965         them in place of "prev_insn" for the results of single_set
18966         and SET_SRC respectively.
18967         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18968         Introduce new rtx local "set" using in place of "jump" for the
18969         result of single_set.  Use SET_SRC (set) rather than plain
18970         XEXP (set, 1).
18971         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18972         rtx to rtx_insn *.
18973         (noncall_uses_reg): Likewise.
18974         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18975         guarded by GET_CODE check, using its methods for clarity, and to
18976         enable strengthening local "this_insn" from rtx to rtx_insn *.
18977         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18978         "insn" from rtx to rtx_insn *.
18979         (define_expand "umulhisi3"): Likewise.
18980         (define_expand "smulsi3_highpart"): Likewise.
18981         (define_expand "umulsi3_highpart"): Likewise.
18982         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18983         local "after".  Replace GET_CODE check with a dyn_cast,
18984         introducing new local rtx_sequence * "seq", using insn method for
18985         typesafety.
18986
18987         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18988         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
18989         place of "insn" once we're dealing with patterns rather than the
18990         input insn.
18991         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18992         (scan_trace): Likewise for local "elt", updating lookups within
18993         sequence to use insn method rather than element method.
18994         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18995         to rtx_insn *.
18996         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18997         * ifcvt.c (noce_try_abs): Likewise for local "insn".
18998         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18999         invoking single_set.
19000         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
19001         "insn" from rtx to rtx_insn *.
19002         (skip_usage_debug_insns): Likewise for return type, adding a
19003         checked cast.
19004         (check_secondary_memory_needed_p): Likewise for local "insn".
19005         (inherit_reload_reg): Likewise.
19006         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
19007         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
19008         checked casts.
19009         (store_data_bypass_p): Likewise for both params.
19010         (if_test_bypass_p): Likewise.
19011         * recog.h (store_data_bypass_p): Likewise for both params.
19012         (if_test_bypass_p): Likewise.
19013         * reload.c (find_equiv_reg): Likewise for local "where".
19014         * reorg.c (delete_jump): Likewise for param "insn".
19015         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
19016         to const rtx_insn *.
19017         * store-motion.c (replace_store_insn): Likewise for param "del".
19018         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
19019         and use its methods for clarity, and to strengthen local "del"
19020         from rtx to rtx_insn *.
19021         (build_store_vectors): Use insn method of "st" when calling
19022         replace_store_insn for typesafety and clarity.
19023
19024 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19025
19026         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
19027         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
19028         on how to make it legal in future.
19029
19030 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19031
19032         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
19033         to rtx_insn *.
19034         (restinsn): Likewise.
19035         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
19036         Likewise for param.
19037         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
19038         Likewise.
19039         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
19040         first param.
19041         (arc_hazard): Likewise for both params.
19042         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
19043         checked casts to rtx_sequence * and uses of the insn method for
19044         type-safety.
19045         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
19046         (arc_adjust_insn_length): Likewise for param "insn".
19047         (struct insn_length_parameters_s): Likewise for first param of
19048         "get_variants" callback field.
19049         (arc_get_insn_variants): Likewise for first param and local
19050         "inner".  Replace a check of GET_CODE with a dyn_cast to
19051         rtx_sequence *, using methods for type-safety and clarity.
19052         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
19053         rtx_sequence * and uses of the insn method for type-safety when
19054         invoking arc_adjust_insn_length.
19055         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
19056         for param.
19057         (arm_address_offset_is_imm): Likewise.
19058         (struct tune_params): Likewise for params 1 and 3 of the
19059         "sched_adjust_cost" callback field.
19060         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
19061         params 1 and 3 ("insn" and "dep").
19062         (xscale_sched_adjust_cost): Likewise.
19063         (fa726te_sched_adjust_cost): Likewise.
19064         (cortexa7_older_only): Likewise for param "insn".
19065         (cortexa7_younger): Likewise.
19066         (arm_attr_length_move_neon): Likewise.
19067         (arm_address_offset_is_imm): Likewise.
19068         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
19069         * config/avr/avr.c (avr_notice_update_cc): Likewise.
19070         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
19071         (workaround_speculation): Likewise for local "last_condjump".
19072         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
19073         (shadow_or_blockage_p): Likewise.
19074         (get_unit_reqs): Likewise.
19075         (get_unit_operand_masks): Likewise.
19076         (c6x_registers_update): Likewise.
19077         (returning_call_p): Likewise.
19078         (can_use_callp): Likewise.
19079         (convert_to_callp): Likewise.
19080         (find_last_same_clock): Likwise for local "t".
19081         (reorg_split_calls): Likewise for local "shadow".
19082         (hwloop_pattern_reg): Likewise for param "insn".
19083         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
19084         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
19085         (frv_extract_membar): Likewise.
19086         (frv_optimize_membar_local): Strengthen param "last_membar" from
19087         rtx * to rtx_insn **.
19088         (frv_optimize_membar_global): Strengthen param "membar" from rtx
19089         to rtx_insn *.
19090         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
19091         to rtx_insn **.
19092         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
19093         both params from rtx to rtx_insn *.
19094         (ia64_ld_address_bypass_p): Likewise.
19095         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
19096         "insn".
19097         (ia64_safe_type): Likewise.
19098         (group_barrier_needed): Likewise.
19099         (safe_group_barrier_needed): Likewise.
19100         (ia64_single_set): Likewise.
19101         (is_load_p): Likewise.
19102         (record_memory_reference): Likewise.
19103         (get_mode_no_for_insn): Likewise.
19104         (important_for_bundling_p): Likewise.
19105         (unknown_for_bundling_p): Likewise.
19106         (ia64_st_address_bypass_p): Likewise for both params.
19107         (ia64_ld_address_bypass_p): Likewise.
19108         (expand_vselect): Introduce new local rtx_insn * "insn", using it
19109         in place of rtx "x" after the emit_insn call.
19110         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
19111         Strengthen param from rtx to rtx_insn *.
19112         (ix86_agi_dependent): Likewise for both params.
19113         (ix86_attr_length_immediate_default): Likewise for param 1.
19114         (ix86_attr_length_address_default): Likewise for param.
19115         (ix86_attr_length_vex_default): Likewise for param 1.
19116         * config/i386/i386.c (ix86_attr_length_immediate_default):
19117         Likewise for param "insn".
19118         (ix86_attr_length_address_default): Likewise.
19119         (ix86_attr_length_vex_default): Likewise.
19120         (ix86_agi_dependent): Likewise for both params.
19121         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
19122         (vselect_insn): Likewise for this variable.
19123         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
19124         for param 1.
19125         (m68k_sched_attr_opy_type): Likewise.
19126         * config/m68k/m68k.c (sched_get_operand): Likewise.
19127         (sched_attr_op_type): Likewise.
19128         (m68k_sched_attr_opx_type): Likewise.
19129         (m68k_sched_attr_opy_type): Likewise.
19130         (sched_get_reg_operand): Likewise.
19131         (sched_get_mem_operand): Likewise.
19132         (m68k_sched_address_bypass_p): Likewise for both params.
19133         (sched_get_indexed_address_scale): Likewise.
19134         (m68k_sched_indexed_address_bypass_p): Likewise.
19135         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
19136         (m68k_sched_indexed_address_bypass_p): Likewise.
19137         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
19138         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
19139         removing another.
19140         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
19141         params from rtx to rtx_insn *.
19142         (mips_fmadd_bypass): Likewise.
19143         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
19144         (mips_linked_madd_p): Likewise.
19145         (mips_macc_chains_last_hilo): Likewise for this variable.
19146         (mips_macc_chains_record): Likewise for param.
19147         (vr4130_last_insn): Likewise for this variable.
19148         (vr4130_swap_insns_p): Likewise for both params.
19149         (mips_ls2_variable_issue): Likewise for param.
19150         (mips_need_noat_wrapper_p): Likewise for param "insn".
19151         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
19152         in place of "x" after the emit_insn.
19153         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
19154         params from rtx to rtx_insn *.
19155         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
19156         (pa_combine_instructions): Introduce local "par" for result of
19157         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
19158         to make_insn_raw.
19159         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
19160         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
19161         (rl78_alloc_physical_registers_op1): Likewise.
19162         (rl78_alloc_physical_registers_op2): Likewise.
19163         (rl78_alloc_physical_registers_ro1): Likewise.
19164         (rl78_alloc_physical_registers_cmp): Likewise.
19165         (rl78_alloc_physical_registers_umul): Likewise.
19166         (rl78_alloc_address_registers_macax): Likewise.
19167         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
19168         * config/s390/predicates.md (execute_operation): Likewise for
19169         local "insn".
19170         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
19171         params.
19172         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
19173         (addr_generation_dependency_p): Likewise for param "insn".
19174         (s390_agen_dep_p): Likewise for both params.
19175         (s390_fpload_toreg): Likewise for param "insn".
19176         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
19177         * config/sh/sh.c (sh_loop_align): Likewise for param and local
19178         "next".
19179         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
19180         * config/sh/sh_treg_combine.cc
19181         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
19182         and local "i".
19183         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
19184         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
19185         "and_insn", "load", "shift".
19186         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
19187         "insn".
19188         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
19189         for XEXP (note, 0) of the REG_CC_SETTER note.
19190         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
19191         rtx_insn *, eliminating a checked cast made redundant by this.
19192         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
19193         to rtx_insn *.
19194         * genattr.c (main): When writing out the prototype to
19195         const_num_delay_slots, strengthen the param from rtx to
19196         rtx_insn *.
19197         * genattrtab.c (write_const_num_delay_slots): Likewise when
19198         writing out the implementation of const_num_delay_slots.
19199         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
19200         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
19201         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
19202         favor of new rtx locals "src" and "set" and new local rtx_insn *
19203         "insn" and "seq".
19204         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
19205         to rtx_insn *.
19206         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
19207         locals "cond", "if_then_else", "set" and new rtx_insn * locals
19208         "insn" and "seq".
19209         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
19210         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
19211         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
19212         the top-level scope, replacing with new more tightly-scoped rtx
19213         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
19214         "new_insn", "copy_of_insn_b", and make local rtx "set" more
19215         tightly-scoped.
19216         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
19217         rtx_insn *.
19218         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
19219         "move_insn".
19220         (ira_setup_alts): Likewise for param "insn".
19221         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
19222         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
19223         and an rtx_insn *.
19224         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
19225         new more-tightly scoped rtx locals "add3_insn", "insn",
19226         "add2_insn" and rtx_insn * "move_insn".
19227         * postreload-gcse.c (eliminate_partially_redundant_load): Add
19228         checked cast on result of gen_move_insn when invoking
19229         extract_insn.
19230         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
19231         rtx_insn *.
19232         (verify_changes): Add a checked cast on "object" when invoking
19233         insn_invalid_p.
19234         (extract_insn_cached): Strengthen param "insn" from rtx to
19235         rtx_insn *.
19236         (extract_constrain_insn_cached): Likewise.
19237         (extract_insn): Likewise.
19238         * recog.h (insn_invalid_p): Likewise for param 1.
19239         (recog_memoized): Likewise for param.
19240         (extract_insn): Likewise.
19241         (extract_constrain_insn_cached): Likewise.
19242         (extract_insn_cached): Likewise.
19243         * reload.c (can_reload_into): Likewise for local "test_insn".
19244         * reload.h (cleanup_subreg_operands): Likewise for param.
19245         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
19246         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
19247         result of emit_insn.  Remove a checked cast made redundant by this
19248         change.
19249         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
19250         rtx to rtx_insn *.
19251         * sel-sched.c (get_reg_class): Likewise.
19252
19253 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19254             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19255
19256         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
19257         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
19258         Define.
19259         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
19260
19261 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19262
19263         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
19264         const rtx_insn *, and from rtx to rtx_insn * for the other
19265         overloaded variant.
19266         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
19267         INSN_LOCATION, since we know INSN_P holds.
19268         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
19269         (insn_file): Likewise.
19270         (insn_scope): Likewise.
19271         (insn_location): Likewise.
19272
19273         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
19274         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
19275         for the result of gen_load_const_gp.
19276         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
19277         param from rtx to rtx_insn *.
19278         * config/rs6000/rs6000.c (output_call): Likewise.
19279         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
19280         introducing a checked cast to rtx_sequence * and use of the insn
19281         method.
19282         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
19283         from rtx to rtx_insn *.
19284         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
19285         (insn_line): Likewise.
19286         (insn_file): Likewise.
19287         (insn_location): Likewise.
19288         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
19289         from rtx to rtx_insn *.
19290         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
19291         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
19292         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
19293         via a checked cast.
19294         * reorg.c (relax_delay_slots): Strengthen locals named "after"
19295         from rtx to rtx_insn *; use methods of "pat" for type-safety.
19296
19297 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19298
19299         * combine.c (try_combine): Eliminate checked cast on result of
19300         gen_rtx_INSN.
19301         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
19302         autogenerated one by strengthening the return type and params 2 and 3
19303         from rtx to rtx_insn *, and by naming the params.
19304         * gengenrtl.c (special_rtx): Add INSN to those that are
19305         special-cased.
19306         * rtl.h (gen_rtx_INSN): New prototype.
19307
19308 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
19309
19310         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
19311         than NULL_RTX.
19312         (no_equiv): Likewise.
19313         (update_equiv_regs): Likewise.
19314         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
19315         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
19316         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
19317         clarity.
19318         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
19319         from rtx to rtx_insn_list *.
19320         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
19321         rtx_insn_list * and use methods for clarity and typesafety.
19322         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
19323         "list".
19324         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
19325         redundant check on INSN_P (insns): this cannot hold, as "insns" is
19326         an INSN_LIST, not an insn.
19327         (reverse_equiv_p): Strengthen local "insns" from rtx to
19328         rtx_insn_list * and use methods for clarity and typesafety.
19329         (contains_reloaded_insn_p): Likewise for local "list".
19330
19331 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
19332
19333         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
19334         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
19335         (arm_builtin_vectorized_function): Likewise.
19336         * config/arm/arm_neon_builtins.def: New macro for copysignf.
19337         * config/arm/neon.md (neon_copysignf<mode>): New pattern for
19338         vector copysignf.
19339
19340 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
19341
19342         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
19343         * builtins.h (default_target_builtins): Likewise.
19344         * gcse.h (default_target_gcse): Likewise.
19345         * target-globals.h (target_globals): Add a destructor.  Convert
19346         void-pointer fields back to their real type and change from
19347         GTY((atomic)) to GTY((skip)).
19348         (restore_target_globals): Remove casts accordingly.
19349         * target-globals.c (save_target_globals): Use XCNEW rather than
19350         ggc_internal_cleared_alloc to allocate non-GC structures.
19351         Use ggc_cleared_alloc to allocate the target_globals structure
19352         itself.
19353         (target_globals::~target_globals): Define.
19354
19355 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19356
19357         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
19358         mnemonic instead of fldmfdd.
19359         * config/arm/arm.c (vfp_output_fstmd): Rename to...
19360         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
19361         Output vpush when address register is SP.
19362         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
19363         (vfp_output_vstmd): ... This.
19364         * config/arm/vfp.md (push_multi_vfp): Update call to
19365         vfp_output_vstmd.
19366
19367 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19368
19369         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
19370
19371 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19372
19373         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
19374         (*sqrtdf2_vfp): Likewise.
19375         (*cmpsf_vfp): Likewise.
19376         (*cmpsf_trap_vfp): Likewise.
19377         (*cmpdf_vfp): Likewise.
19378         (*cmpdf_trap_vfp): Likewise.
19379
19380 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19381
19382         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
19383         (*truncdfsf2_vfp): Likewise.
19384         (*truncsisf2_vfp): Likewise.
19385         (*truncsidf2_vfp): Likewise.
19386         (fixuns_truncsfsi2): Likewise.
19387         (fixuns_truncdfsi2): Likewise.
19388         (*floatsisf2_vfp): Likewise.
19389         (*floatsidf2_vfp): Likewise.
19390         (floatunssisf2): Likewise.
19391         (floatunssidf2): Likewise.
19392
19393 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19394
19395         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
19396         (*muldf3_vfp): Likewise.
19397         (*mulsf3negsf_vfp): Likewise.
19398         (*muldf3negdf_vfp): Likewise.
19399         (*mulsf3addsf_vfp): Likewise.
19400         (*muldf3adddf_vfp): Likewise.
19401         (*mulsf3subsf_vfp): Likewise.
19402         (*muldf3subdf_vfp): Likewise.
19403         (*mulsf3negsfaddsf_vfp): Likewise.
19404         (*fmuldf3negdfadddf_vfp): Likewise.
19405         (*mulsf3negsfsubsf_vfp): Likewise.
19406         (*muldf3negdfsubdf_vfp): Likewise.
19407
19408 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19409
19410         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
19411         (*absdf2_vfp): Likewise.
19412         (*negsf2_vfp): Likewise.
19413         (*negdf2_vfp): Likewise.
19414         (*addsf3_vfp): Likewise.
19415         (*adddf3_vfp): Likewise.
19416         (*subsf3_vfp): Likewise.
19417         (*subdf3_vfp): Likewise.
19418         (*divsf3_vfp): Likewise.
19419         (*divdf3_vfp): Likewise.
19420
19421 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19422
19423         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
19424         multiple.
19425         (arm_print_operand): Don't convert real values to decimal
19426         representation in default case.
19427         (fp_immediate_constant): Delete.
19428         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
19429         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
19430         syntax.
19431         (*thumb2_movsi_vfp): Likewise.
19432         (*movdi_vfp): Likewise.
19433         (*movdi_vfp_cortexa8): Likewise.
19434         (*movhf_vfp_neon): Likewise.
19435         (*movhf_vfp): Likewise.
19436         (*movsf_vfp): Likewise.
19437         (*thumb2_movsf_vfp): Likewise.
19438         (*movdf_vfp): Likewise.
19439         (*thumb2_movdf_vfp): Likewise.
19440         (*movsfcc_vfp): Likewise.
19441         (*thumb2_movsfcc_vfp): Likewise.
19442         (*movdfcc_vfp): Likewise.
19443         (*thumb2_movdfcc_vfp): Likewise.
19444
19445 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
19446
19447         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
19448         (-mtune): Likewise.
19449         (-mcpu): Likewise.
19450
19451 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19452
19453         PR target/61749
19454         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
19455         Use qualifier_immediate for last operand.  Rename to...
19456         (aarch64_types_ternop_lane_qualifiers): ... This.
19457         (TYPES_QUADOP): Rename to...
19458         (TYPES_TERNOP_LANE): ... This.
19459         (aarch64_simd_expand_args): Return const0_rtx when encountering user
19460         error.  Change return of 0 to return of NULL_RTX.
19461         (aarch64_crc32_expand_builtin): Likewise.
19462         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
19463         ICE when expanding unknown builtin.
19464         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
19465         TERNOP_LANE qualifiers.
19466         (sqdmlsl_lane): Likewise.
19467         (sqdmlal_laneq): Likewise.
19468         (sqdmlsl_laneq): Likewise.
19469         (sqdmlal2_lane): Likewise.
19470         (sqdmlsl2_lane): Likewise.
19471         (sqdmlal2_laneq): Likewise.
19472         (sqdmlsl2_laneq): Likewise.
19473
19474 2014-09-09  Nick Clifton  <nickc@redhat.com>
19475
19476         * doc/invoke.texi (Optimization Options): Add missing @gol to the
19477         end of a line.
19478         (S/390 and zSeries Options): Remove superfluous word from the
19479         description of the -mhotpatch option.
19480
19481 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
19482
19483         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
19484         * ira.c: #include "shrink-wrap.h"
19485         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
19486         * ifcvt.c: #include "shrink-wrap.h"
19487         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
19488
19489 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
19490
19491         * common/config/picochip/picochip-common.c: Remove.
19492         * config.gcc: Remove support for picochip.
19493         * config/picochip/constraints.md: Remove.
19494         * config/picochip/dfa_space.md: Remove.
19495         * config/picochip/dfa_speed.md: Remove.
19496         * config/picochip/picochip-protos.h: Remove.
19497         * config/picochip/picochip.c: Remove.
19498         * config/picochip/picochip.h: Remove.
19499         * config/picochip/picochip.md: Remove.
19500         * config/picochip/picochip.opt: Remove.
19501         * config/picochip/predicates.md: Remove.
19502         * config/picochip/t-picochip: Remove.
19503         * doc/md.texi: Don't document picochi.
19504
19505 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
19506
19507         * basic-block.h (control_flow_insn_p): Strengthen param from
19508         const_rtx to const rtx_insn *.
19509         * cfgbuild.c (control_flow_insn_p): Likewise.
19510
19511 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
19512
19513         * gcse.c (modify_mem_list): Strengthen this variable from
19514         vec<rtx> * to vec<rtx_insn *> *.
19515         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
19516         vec<rtx_insn *>.
19517         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
19518         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
19519         (record_last_mem_set_info): Strengthen param "insn" from rtx to
19520         rtx_insn *.
19521         (record_last_set_info): Likewise for local "last_set_insn".
19522
19523 2014-09-08  DJ Delorie  <dj@redhat.com>
19524
19525         * doc/invoke.texi (MSP430 Options): Add -minrt.
19526
19527 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19528
19529         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
19530         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
19531         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
19532         handling SH_SPLAT.
19533         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
19534         of extracted lane.
19535         (adjust_splat): New function.
19536         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
19537         (dump_swap_insn_table): Add case for SH_SPLAT.
19538
19539 2014-09-08  Richard Biener  <rguenther@suse.de>
19540
19541         PR ipa/63196
19542         * tree-inline.c (copy_loops): The source loop header should
19543         always be non-NULL.
19544         (tree_function_versioning): If loops need fixup after removing
19545         unreachable blocks fix them.
19546         * omp-low.c (simd_clone_adjust): Do not add incr block to
19547         loop under construction.
19548
19549 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
19550
19551         * config/aarch64/aarch64-builtins.c
19552         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
19553
19554 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
19555
19556         * config/i386/cygming.h (TF_SIZE): Remove.
19557         * config/i386/darwin.h (TF_SIZE): Remove.
19558         * config/i386/dragonfly.h (TF_SIZE): Remove.
19559         * config/i386/freebsd.h (TF_SIZE): Remove.
19560         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
19561         * config/i386/openbsdelf.h (TF_SIZE): Remove.
19562         * config/i386/sol2.h (TF_SIZE): Remove.
19563         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
19564         * config/ia64/linux.h (TF_SIZE): Remove.
19565         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
19566         * doc/tm.texi: Regenerate.
19567         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
19568
19569 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
19570
19571         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
19572         Remove.
19573         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
19574         Remove.
19575         * doc/tm.texi: Regenerate.
19576         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
19577         Poison.
19578         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
19579         * config/cris/cris.h (__make_dp): Remove.
19580
19581 2014-09-08  Richard Biener  <rguenther@suse.de>
19582
19583         PR bootstrap/63204
19584         * cfgloop.c (mark_loop_for_removal): Track former header
19585         unconditionally.
19586         * cfgloop.h (struct loop): Add former_header member unconditionally.
19587         * loop-init.c (fix_loop_structure): Enable bogus loop removal
19588         diagnostic unconditionally.
19589
19590 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
19591
19592         PR target/63190
19593         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
19594         constraint for operand0 and remove write only modifier from operand3.
19595
19596 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
19597
19598         PR rtl-optimization/62208
19599         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
19600         rather than const0_rtx in eq/ne-xor simplifications.
19601
19602 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
19603
19604         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
19605         (arc_output_mi_thunk): Likewise.
19606
19607         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
19608         arguments to silence bogus warning.
19609
19610 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
19611
19612         PR middle-end/63171
19613         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
19614
19615 2014-09-06  Tom de Vries  <tom@codesourcery.com>
19616
19617         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
19618         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
19619         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
19620
19621 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
19622
19623         PR target/63188
19624         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
19625         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
19626
19627 2014-09-05  Easwaran Raman  <eraman@google.com>
19628
19629         PR rtl-optimization/62146
19630         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
19631         hoisted instruction unconditional.
19632
19633 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
19634
19635         PR target/63187
19636         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
19637         Do not allow any_mask_operand for operands[2].
19638         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
19639
19640 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19641
19642         * config/arc/arc.c (arc_print_operand): Use insn method of
19643         final_sequence for type-safety.
19644         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
19645         "insn" from rtx to rtx_insn *.
19646         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
19647         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
19648         Likewise for locals "branch", "label".
19649         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
19650         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
19651         (same_cmp_following_p): Likewise for locals "i2", "i3".
19652         * config/sh/sh_optimize_sett_clrt.cc
19653         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
19654         param "cbranch_insn".
19655         * function.c (convert_jumps_to_returns): Likewis for local "jump".
19656         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
19657         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
19658         const rtx_insn *.
19659         (condjump_p): Likewise.
19660         (condjump_in_parallel_p): Likewise.
19661         (pc_set): Likewise.
19662         (any_uncondjump_p): Likewise.
19663         (any_condjump_p): Likewise.
19664         (condjump_label): Likewise.
19665         (returnjump_p): Strengthen param "insn" from rtx to
19666         const rtx_insn *.
19667         (onlyjump_p): Strengthen param "insn" from const_rtx to
19668         const rtx_insn *.
19669         (jump_to_label_p): Likewise.
19670         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
19671         (invert_jump): Likewise.
19672         * reorg.c (simplejump_or_return_p): Add checked cast when calling
19673         simplejump_p.
19674         (get_jump_flags): Strengthen param "insn" from rtx to
19675         const rtx_insn *.
19676         (get_branch_condition): Likewise.
19677         (condition_dominates_p): Likewise.
19678         (make_return_insns): Move declaration of local "pat" earlier, to
19679         after we've handled NONJUMP_INSN_P and non-sequences, using its
19680         methods to simplify the code and for type-safety.
19681         * rtl.h (find_constant_src): Strengthen param from const_rtx to
19682         const rtx_insn *.
19683         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
19684         (condjump_p): Strengthen param from const_rtx to
19685         const rtx_insn *.
19686         (any_condjump_p): Likewise.
19687         (any_uncondjump_p): Likewise.
19688         (pc_set): Likewise.
19689         (condjump_label): Likewise.
19690         (simplejump_p): Likewise.
19691         (returnjump_p): Likewise.
19692         (onlyjump_p): Likewise.
19693         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
19694         (invert_jump): Likewise.
19695         (condjump_in_parallel_p): Strengthen param from const_rtx to
19696         const rtx_insn *.
19697         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
19698         to const rtx_insn *.
19699         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
19700         to const rtx_insn *.
19701         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
19702
19703 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19704
19705         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
19706         above the conditional, and convert the check on GET_CODE to a
19707         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
19708         the conditional.  Simplify the conditional by using methods of
19709         "trial_seq".
19710
19711 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19712
19713         * haifa-sched.c (check_clobbered_conditions): Strengthen local
19714         "link" from rtx to rtx_insn_list *, and use its methods for
19715         clarity and type-safety.
19716         (toggle_cancelled_flags): Likewise.
19717         (restore_last_backtrack_point): Likewise.
19718         (queue_to_ready): Use insn method of "link" in one place.
19719         (schedule_block): Strengthen local "link" from rtx to
19720         rtx_insn_list *, and use its methods for clarity and type-safety.
19721
19722 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19723
19724         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
19725         param "insn" from const_rtx to const rtx_insn *.
19726         (sched_get_reverse_condition_uncached): Likewise.
19727         (sched_get_condition_with_rev): Likewise.
19728         (sched_has_condition_p): Likewise.
19729         (sched_insns_conditions_mutex_p): Likewise for both params.
19730         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
19731         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
19732         (setup_insn_reg_uses): Move local "list" to be more tightly
19733         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
19734         its methods for clarity and type-safety.
19735         (sched_analyze_1): Strengthen local "pending" from rtx to
19736         rtx_insn_list *, and local "pending_mem" from rtx to
19737         rtx_expr_list *.  Use methods of each for clarity and type-safety.
19738         (sched_analyze_2): Likewise.
19739         (sched_analyze_insn): Likewise.
19740
19741         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
19742         param from const_rtx to const rtx_insn *.
19743         (sched_insns_conditions_mutex_p): Likewise for both params.
19744         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
19745         param.
19746
19747         * system.h (CONST_CAST_RTX_INSN): New macro.
19748
19749 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19750
19751         * recog.c (peep2_attempt): Strengthen return type from rtx to
19752         rtx_insn *.
19753         (peep2_update_life): Likewise for params "last", "prev", removing
19754         a checked cast made redundant by this.
19755         (peephole2_optimize): Likewise for local "last".
19756
19757 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19758
19759         * basic-block.h (set_block_for_insn): Eliminate this macro in
19760         favor of...
19761         * rtl.h (set_block_for_insn): New inline function, imposing the
19762         requirement that the "insn" param is an rtx_insn *.
19763
19764 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19765
19766         * caller-save.c (setup_save_areas): Strengthen local "insn" from
19767         rtx to rtx_insn *.
19768         * final.c (get_call_reg_set_usage): Likewise for first param,
19769         eliminating a checked cast.
19770         * regs.h (get_call_reg_set_usage): Likewise for first param.
19771         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
19772         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
19773         cast, replacing references to "x" with "call_insn" where
19774         appropriate.
19775         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
19776         rtx_insn *, adding a checked cast.
19777
19778 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19779
19780         * output.h (final_scan_insn): Strengthen first param from rtx to
19781         rtx_insn *.
19782
19783         * final.c (final_scan_insn): Likewise, renaming it back from
19784         "uncast_insn" to "insn", eliminating the checked cast.
19785
19786         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
19787         "vec" with an rtx_sequence * "seq", taking a copy of
19788         "final_sequence", and using methods of "seq" for clarity, and for
19789         type-safety in the calls to final_scan_insn.
19790         * config/mips/mips.c (mips_output_conditional_branch): Use methods
19791         of "final_sequence" for clarity, and for type-safety in the call to
19792         final_scan_insn.
19793         * config/sh/sh.c (print_slot): Strengthen param from rtx to
19794         rtx_sequence * and rename from "insn" to "seq".
19795
19796 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19797
19798         * jump.c (delete_related_insns): Introduce a new local "table" by
19799         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
19800         get_labels method of "table" to simplify access to the labels in
19801         the jump table.
19802
19803 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19804
19805         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19806         f_minmaxs, f_minmaxd types.
19807
19808 2014-09-05  Richard Biener  <rguenther@suse.de>
19809
19810         * cfgloop.c (mark_loop_for_removal): Record former header
19811         when ENABLE_CHECKING.
19812         * cfgloop.h (strut loop): Add former_header member when
19813         ENABLE_CHECKING.
19814         * loop-init.c (fix_loop_structure): Sanity check loops
19815         marked for removal if they re-appeared.
19816
19817 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19818
19819         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19820         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19821
19822         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19823         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19824         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19825         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19826         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19827         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19828         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19829         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19830         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19831         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19832         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19833         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19834         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19835         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19836         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19837         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19838         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19839         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19840         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19841         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19842         with int{32,16,8}_t.
19843
19844 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19845
19846         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19847         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19848         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19849         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19850         Remove temporary __asm__ and reimplement.
19851
19852 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19853
19854         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19855         handling cmge, cmgt, cmeq, cmtst.
19856
19857         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19858         cmlt, cmgeu, cmgtu, cmtst): Remove.
19859
19860         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19861         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19862         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19863         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19864
19865 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19866
19867         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19868         TYPES_TST): Define.
19869         (aarch64_fold_builtin): Update pattern for cmtst.
19870
19871         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19872         Declare.
19873
19874         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19875
19876         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19877         Switch operands, separate out more cases, refactor.
19878
19879         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19880
19881         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19882         argument; rename old version to...
19883         (aarch64_const_vec_all_same_in_range_p): ...this.
19884         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19885
19886         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19887
19888 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19889
19890         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19891         Remove qualifier_const_pointer, update comment.
19892
19893 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19894
19895         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19896
19897 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19898
19899         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19900         varargs with pointer parameter.
19901         (aarch64_simd_expand_builtin): pass pointer into previous.
19902
19903 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19904
19905         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19906         alus_ext.
19907
19908 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19909
19910         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19911         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19912         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19913         Replace temporary asm with call to builtin.
19914         (vrbit_p8, vrbitq_p8): New functions.
19915
19916 2014-09-05  Richard Biener  <rguenther@suse.de>
19917
19918         * cfgloop.c (mark_loop_for_removal): New function.
19919         * cfgloop.h (mark_loop_for_removal): Declare.
19920         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19921         (merge_blocks): Likewise.
19922         (duplicate_block): Likewise.
19923         * except.c (sjlj_emit_dispatch_table): Likewise.
19924         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19925         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19926         (thread_through_loop_header): Likewise.
19927
19928 2014-09-05  Richard Biener  <rguenther@suse.de>
19929
19930         PR middle-end/63148
19931         * fold-const.c (try_move_mult_to_index): Remove.
19932         (fold_binary_loc): Do not call it.
19933         * tree-data-ref.c (dr_analyze_indices): Strip conversions
19934         from the base object again.
19935
19936 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
19937
19938         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19939         DImode.
19940
19941 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19942
19943         PR target/55701
19944         * config/arm/arm.md (setmem): New pattern.
19945         * config/arm/arm-protos.h (struct tune_params): New fields.
19946         (arm_gen_setmem): New prototype.
19947         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19948         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19949         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19950         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19951         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19952         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19953         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19954         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19955         (arm_const_inline_cost): New function.
19956         (arm_block_set_max_insns): New function.
19957         (arm_block_set_non_vect_profit_p): New function.
19958         (arm_block_set_vect_profit_p): New function.
19959         (arm_block_set_unaligned_vect): New function.
19960         (arm_block_set_aligned_vect): New function.
19961         (arm_block_set_unaligned_non_vect): New function.
19962         (arm_block_set_aligned_non_vect): New function.
19963         (arm_block_set_vect, arm_gen_setmem): New functions.
19964
19965 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19966
19967         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19968
19969 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19970
19971         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19972
19973 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19974
19975         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19976         an rtx.
19977         * valtrack.h: Adjust.
19978
19979 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19980
19981         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19982         an rtx.
19983         (emit_jump_insn_before_noloc): Likewise.
19984         (emit_call_insn_before_noloc): Likewise.
19985         (emit_label_before): Likewise.
19986         (emit_label_after): Likewise.
19987         (emit_insn_before_setloc): Likewise.
19988         (emit_jump_insn_before_setloc): Likewise.
19989         (emit_call_insn_before_setloc): Likewise.
19990         (emit_call_insn_before): Likewise.
19991         * rtl.h: Adjust.
19992
19993 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19994
19995         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19996         rtx_insn *, eliminating a checked cast.
19997
19998 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19999
20000         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
20001         const_rtx to const rtx_insn *.
20002         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
20003         cast.
20004
20005 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
20006
20007         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
20008         fixup_args_size_notes.
20009         * expr.c (fixup_args_size_notes): Strengthen first two params from
20010         rtx to rtx_insn *, eliminating a checked cast.
20011         * rtl.h (fixup_args_size_notes): Strengthen first two params from
20012         rtx to rtx_insn *.
20013
20014 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
20015
20016         * haifa-sched.c (get_ready_element): Strengthen return type from
20017         rtx to rtx_insn *.
20018         * sched-int.h (get_ready_element): Likewise.
20019
20020 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
20021
20022         PR target/63165
20023         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
20024         indexed_or_indirect_operand instead of memory_operand.
20025         (floatsi<mode>2_lfiwzx_mem): Ditto.
20026
20027 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
20028
20029         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
20030         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
20031         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
20032
20033 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
20034
20035         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
20036         rtx.
20037         (get_last_nonnote_insn): Likewise.
20038         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
20039         * resource.c (find_basic_block): Likewise.
20040         * rtl.h: Adjust.
20041         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
20042         const_rtx.
20043
20044 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
20045
20046         * genattr.c (main): Within the prototype of insn_latency written
20047         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
20048         * genautomata.c (output_internal_maximal_insn_latency_func):
20049         Within the implementation of insn_latency written out to
20050         insn-automata.c, strengthen both params from rtx to rtx_insn *,
20051         eliminating a pair of checked casts.
20052
20053 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
20054
20055         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
20056         rtx_insn *.
20057
20058         * rtl.h (eh_returnjump_p): Likewise.
20059
20060 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
20061
20062         * Makefile.in (TAGS): Handle constructs in timevar.def.
20063
20064 2014-09-04  Guozhi Wei  <carrot@google.com>
20065
20066         PR target/62040
20067         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
20068         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
20069         it into two patterns.
20070         (move_lo_quad_internal_be_<mode>): Likewise.
20071
20072 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20073
20074         * doc/options.texi: Document that Var and Init are required if CPP
20075         is given.
20076         * optc-gen.awk: Require Var and Init if CPP is given.
20077         * common.opt (Wpedantic): Use Init.
20078
20079 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20080
20081         * config/rs6000/rs6000.c (special_handling_values): Add
20082         SH_EXTRACT.
20083         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
20084         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
20085         as swappable with special handling SH_EXTRACT.  Remove
20086         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
20087         optimization.
20088         (adjust_extract): New function.
20089         (handle_special_swappables): Add default to case statement; add
20090         case for SH_EXTRACT that calls adjust_extract.
20091         (dump_swap_insn_table): Handle SH_EXTRACT.
20092
20093 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20094
20095         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
20096         selection of 0th memory doubleword, regardless of endianness.
20097
20098 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20099
20100         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
20101
20102 2014-09-04  Alan Modra  <amodra@gmail.com>
20103
20104         PR debug/60655
20105         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
20106         can't be output.
20107
20108 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
20109
20110         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
20111         * targhooks.c (default_dwarf_frame_reg_mode): New function.
20112         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
20113         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
20114         * doc/tm.texi: Regenerate.
20115         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
20116         selection logic to default_dwarf_frame_reg_mode.
20117
20118 2014-09-03  Marek Polacek  <polacek@redhat.com>
20119
20120         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
20121         by -Wall.
20122
20123 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
20124
20125         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
20126         the automodified register.
20127
20128 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
20129
20130         * output.h (get_some_local_dynamic_name): Declare.
20131         * final.c (some_local_dynamic_name): New variable.
20132         (get_some_local_dynamic_name): New function.
20133         (final_end_function): Clear some_local_dynamic_name.
20134         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
20135         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
20136         (print_operand): Report an error if '%&' is used inappropriately.
20137         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
20138         (get_some_local_dynamic_name_1): Delete.
20139         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
20140         (rs6000_get_some_local_dynamic_name): Delete.
20141         (rs6000_get_some_local_dynamic_name_1): Delete.
20142         (print_operand): Report an error if '%&' is used inappropriately.
20143         * config/s390/s390.c (machine_function): Remove some_ld_name.
20144         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
20145         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
20146         * config/sparc/sparc.c: Include rtl-iter.h.
20147         (machine_function): Remove some_ld_name.
20148         (sparc_print_operand): Report an error if '%&' is used inappropriately.
20149         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
20150
20151 2014-09-03  Richard Henderson  <rth@redhat.com>
20152
20153         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
20154         (aarch64_popwb_pair_reg): Remove.
20155         (aarch64_set_frame_expr): Remove.
20156         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
20157         the restore ops performed by the insns generated.
20158         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
20159         insn.  Perform the calls_eh_return addition later; do not attempt to
20160         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
20161         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
20162         special markup at all.  Load cfun->machine->frame.hard_fp_offset
20163         into a local variable.
20164         (aarch64_frame_pointer_required): Don't check calls_alloca.
20165
20166 2014-09-03  Richard Biener  <rguenther@suse.de>
20167
20168         * opts.c (default_options_optimization): Adjust
20169         max-combine-insns to 2 for -Og.
20170
20171 2014-09-03  Martin Jambor  <mjambor@suse.cz>
20172
20173         PR ipa/62015
20174         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
20175         pass-trough jump functions correctly.
20176
20177 2014-09-03  Martin Jambor  <mjambor@suse.cz>
20178
20179         PR ipa/61986
20180         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
20181         created replacements in ascending order of offsets.
20182         (known_aggs_to_agg_replacement_list): Likewise.
20183
20184 2014-09-03  Martin Liska  <mliska@suse.cz>
20185
20186         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
20187         is set to set uninitialized value for vnresult.
20188
20189 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20190
20191         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
20192         for TARGET_MUST_PASS_IN_STACK.
20193
20194 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20195
20196         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
20197         for TARGET_ARG_PARTIAL_BYTES.
20198
20199 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20200
20201         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
20202         instructions for varargs implementation.
20203         (nds32_expand_epilogue): Emit stack adjustment instructions for
20204         varargs implementation.
20205
20206 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20207
20208         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
20209         optimization detection.
20210
20211 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20212
20213         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
20214         arguments.
20215         (nds32_function_arg_advance): Deal with nameless arguments.
20216         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
20217         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
20218         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
20219
20220 2014-09-03  Richard Biener  <rguenther@suse.de>
20221
20222         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
20223         (struct bb_bitmap_sets): Remove deferred member.
20224         (BB_DEFERRED): Remove.
20225         (defer_or_phi_translate_block): Remove.
20226         (compute_antic_aux): Remove deferring of blocks, assert
20227         proper iteration order.
20228         (compute_antic): Do not set BB_DEFERRED.
20229         (eliminate): Allocate el_avail of proper size initially.
20230
20231 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20232
20233         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
20234         according to the value of crtl->args.pretend_args_size.
20235
20236 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20237
20238         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
20239         varargs information.
20240
20241 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20242
20243         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
20244         implementation for TARGET_SETUP_INCOMING_VARARGS.
20245         (nds32_strict_argument_naming): Refine comment.
20246         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
20247         Define for future implementation.
20248
20249 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
20250
20251         * config/i386/adxintrin.h (_subborrow_u32): New.
20252         (_addcarry_u32): Ditto.
20253         (_subborrow_u64): Ditto.
20254         (_addcarry_u64): Ditto.
20255         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
20256         IX86_BUILTIN_SBB64.
20257         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
20258         __builtin_ia32_sbb_u64
20259
20260 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20261
20262         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
20263         GPR-specific stuff.
20264         (nds32_function_arg_advance): Likewise.
20265         (nds32_init_cumulative_args): Likewise.
20266         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
20267         (NDS32_FIRST_GPR_REGNUM): Define.
20268         (NDS32_LAST_GPR_REGNUM): Define.
20269         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
20270         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
20271         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
20272         (machine_function): Use GRP-specific stuff.
20273
20274 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20275
20276         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
20277         (nds32_expand_epilogue): Likewise.
20278         (nds32_expand_prologue_v3push): Likewise.
20279         (nds32_expand_epilogue_v3pop): Likewise.
20280
20281 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20282
20283         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
20284         v3push/v3pop for variadic function.
20285         * config/nds32/nds32.md (prologue, epilogue): Likewise.
20286
20287 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20288
20289         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
20290         Check rtx for varargs implementation.
20291         (nds32_output_stack_pop): Likewise.
20292         * config/nds32/nds32-protos.h: Have a rtx argument for
20293         nds32_output_stack_push and nds32_output_stack_pop.
20294         * config/nds32/nds32.md: Likewise.
20295
20296 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20297
20298         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
20299         to check if FUNC is an interrupt service routine.
20300         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
20301
20302 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20303
20304         * config/nds32/nds32.h (machine_function): Add some fields for variadic
20305         arguments implementation.
20306
20307 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20308
20309         * config/nds32/nds32-predicates.c
20310         (nds32_valid_stack_push_pop): Rename to ...
20311         (nds32_valid_stack_push_pop_p): ... this.
20312         * config/nds32/nds32-protos.h: Likewise.
20313         * config/nds32/predicates.md: Likewise.
20314
20315 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20316
20317         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
20318         (nds32_emit_stack_v3push): ... this.
20319         (nds32_gen_stack_v3pop): Rename to ...
20320         (nds32_emit_stack_v3pop): ... this and consider CFA restore
20321         information.
20322
20323 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20324
20325         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
20326         (nds32_emit_stack_push_multiple): ... this.
20327         (nds32_gen_stack_pop_multiple): Rename to ...
20328         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
20329         information.
20330
20331 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20332
20333         PR target/61078
20334         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
20335         and add a second splitter to handle the remaining cases.
20336
20337 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
20338
20339         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
20340
20341 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
20342
20343         * cfgexpand.c (label_rtx_for_bb): Change type to
20344         hash_map<basic_block, rtx_code_label *> *.
20345         (expand_gimple_basic_block): Adjust.
20346         (pass_expand::execute): Likewise.
20347
20348 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
20349
20350         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
20351         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
20352         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
20353         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
20354         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
20355         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
20356         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
20357         of rtx.
20358
20359 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
20360
20361         * alloc-pool.c: Include coretypes.h.
20362         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
20363         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
20364         hash_set instead of htab.
20365         * ggc-page.c (in_gc): New variable.
20366         (ggc_free): Do nothing if a collection is taking place.
20367         (ggc_collect): Set in_gc appropriately.
20368         * ggc.h (gt_ggc_mx(const char *)): New function.
20369         (gt_pch_nx(const char *)): Likewise.
20370         (gt_ggc_mx(int)): Likewise.
20371         (gt_pch_nx(int)): Likewise.
20372         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
20373         (hash_map::hash_entry::pch_nx): Likewise.
20374         (hash_map::hash_entry::pch_nx_helper): Likewise.
20375         (hash_map::hash_map): Adjust.
20376         (hash_map::create_ggc): New function.
20377         (gt_ggc_mx): Likewise.
20378         (gt_pch_nx): Likewise.
20379         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
20380         (default_hashset_traits::pch_nx): Likewise.
20381         (hash_set::hash_entry::ggc_mx): Likewise.
20382         (hash_set::hash_entry::pch_nx): Likewise.
20383         (hash_set::hash_entry::pch_nx_helper): Likewise.
20384         (hash_set::hash_set): Adjust.
20385         (hash_set::create_ggc): New function.
20386         (hash_set::elements): Likewise.
20387         (gt_ggc_mx): Likewise.
20388         (gt_pch_nx): Likewise.
20389         * hash-table.h (hash_table::hash_table): Adjust.
20390         (hash_table::m_ggc): New member.
20391         (hash_table::~hash_table): Adjust.
20392         (hash_table::expand): Likewise.
20393         (hash_table::empty): Likewise.
20394         (gt_ggc_mx): New function.
20395         (hashtab_entry_note_pointers): Likewise.
20396         (gt_pch_nx): Likewise.
20397
20398 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20399
20400         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
20401         built-in definition.
20402         (XVCVUXDDP_SCALE): Likewise.
20403         (XVCVDPSXDS_SCALE): Likewise.
20404         (XVCVDPUXDS_SCALE): Likewise.
20405         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
20406         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
20407         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
20408         VSX_BUILTIN_XVCVDPUXDS_SCALE.
20409         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
20410         prototype.
20411         * config/rs6000/rs6000.c (real.h): New include.
20412         (rs6000_scale_v2df): New function.
20413         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
20414         (UNSPEC_VSX_XVCVUXDDP): Likewise.
20415         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
20416         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
20417         (vsx_xvcvsxddp_scale): New define_expand.
20418         (vsx_xvcvsxddp): New define_insn.
20419         (vsx_xvcvuxddp_scale): New define_expand.
20420         (vsx_xvcvuxddp): New define_insn.
20421         (vsx_xvcvdpsxds_scale): New define_expand.
20422         (vsx_xvcvdpsxds): New define_insn.
20423         (vsx_xvcvdpuxds_scale): New define_expand.
20424         (vsx_xvcvdpuxds): New define_insn.
20425         * doc/extend.texi (vec_ctf): Add new prototypes.
20426         (vec_cts): Likewise.
20427         (vec_ctu): Likewise.
20428         (vec_splat): Likewise.
20429         (vec_div): Likewise.
20430         (vec_mul): Likewise.
20431
20432 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20433
20434         PR target/62275
20435         * config/arm/neon.md
20436         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
20437         <v_cmp_result>): New pattern.
20438         * config/arm/iterators.md (NEON_VCVT): New int iterator.
20439         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
20440         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
20441         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
20442         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
20443         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
20444
20445 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20446
20447         PR target/62275
20448         * config/arm/iterators.md (FIXUORS): New code iterator.
20449         (VCVT): New int iterator.
20450         (su_optab): New code attribute.
20451         (su): Likewise.
20452         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
20453
20454 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20455
20456         * config/aarch64/predicates.md (aarch64_comparison_operation):
20457         New special predicate.
20458         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
20459         aarch64_comparison_operation instead of matching an operator.
20460         Update operand numbers.
20461         (csinc3<mode>_insn): Likewise.
20462         (*csinv3<mode>_insn): Likewise.
20463         (*csneg3<mode>_insn): Likewise.
20464         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
20465         * config/aarch64/aarch64.c (aarch64_get_condition_code):
20466         Return -1 instead of aborting on invalid condition codes.
20467         (aarch64_print_operand): Update aarch64_get_condition_code callsites
20468         to assert that the returned condition code is valid.
20469         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
20470
20471 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
20472
20473         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
20474         tree.def, and gimple.def
20475
20476 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
20477             Balaji V. Iyer  <balaji.v.iyer@intel.com>
20478             Igor Zamyatin  <igor.zamyatin@intel.com>
20479
20480         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
20481         (__cilkrts_cilk_for_64): Likewise.
20482         * cilk-common.c (declare_cilk_for_builtin): New function.
20483         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
20484         __cilkrts_cilk_for_64 bultins.
20485         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
20486         CILK_TI_F_LOOP_64.
20487         (cilk_for_32_fndecl): New define.
20488         (cilk_for_64_fndecl): Likewise.
20489         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
20490         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
20491         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
20492         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
20493         GF_OMP_FOR_COMBINED_INTO.
20494         * gimplify.c (gimplify_scan_omp_clauses): Added
20495         OMP_CLAUSE__CILK_FOR_COUNT_ case.
20496         (gimplify_adjust_omp_clauses): Ditto.
20497         (gimplify_omp_for): Added CILK_FOR case.
20498         (gimplify_expr): Ditto.
20499         * omp-low.c: Include cilk.h.
20500         (extract_omp_for_data): Set appropriate kind for
20501         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
20502         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
20503         (create_omp_child_function_name): Added second argument to handle
20504         cilk_for case.
20505         (cilk_for_check_loop_diff_type): New function.
20506         (expand_cilk_for_call): Likewise.
20507         (expand_cilk_for): Likewise.
20508         (create_omp_child_function): Set cilk_for_count; handle the cases when
20509         it is true; call create_omp_child_function_name with second argument.
20510         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
20511         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
20512         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
20513         * tree-nested.c (convert_nonlocal_omp_clauses): Added
20514         OMP_CLAUSE__CILK_FOR_COUNT_ case.
20515         (convert_local_omp_clauses): Ditto.
20516         * tree-pretty-print.c (dump_omp_clause): Added
20517         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
20518         (dump_generic_node): Added CILK_FOR case.
20519         * tree.c (omp_clause_num_ops): New element
20520         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
20521         (omp_clause_code_name): New element _Cilk_for_count_.
20522         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
20523         * tree.def: Add tree code for CILK_FOR.
20524
20525 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20526
20527         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
20528         (ppc403-compare): Add "exts with dot" case.
20529         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
20530         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
20531         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
20532         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
20533         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
20534         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
20535         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
20536         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20537         cell-cmp-microcoded): Similarly.
20538         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
20539         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
20540         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
20541         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
20542         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
20543         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
20544         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
20545         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
20546         (power6-compare): Add "exts with dot" case.
20547         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
20548         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
20549         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
20550
20551         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
20552         if avoiding Cell microcode.
20553         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
20554         (is_cracked_insn): Ditto.
20555         (insn_must_be_first_in_group): Ditto.
20556         * config/rs6000/rs6000.md (dot): Adjust comment.
20557         (cell_micro): Handle exts+dot.
20558         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
20559         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
20560         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
20561         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
20562         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
20563         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
20564         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
20565
20566 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20567
20568         * config/rs6000/rs6000.md (QHSI): Delete.
20569         (EXTQI, EXTHI, EXTSI): New mode iterators.
20570         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
20571         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
20572         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
20573         9 anonymous instructions, and 8 splitters): Delete.
20574         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
20575         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
20576         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
20577         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
20578         *zero_extendsi<mode>2_dot2): New.
20579
20580 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20581
20582         * config/rs6000/rs6000.md (any_extend): New code iterator.
20583         (u, su): New code attributes.
20584         (dmode, DMODE): New mode attributes.
20585         (<su>mul<mode>3_highpart): New.
20586         (*<su>mul<mode>3_highpart): New.
20587         (<su>mulsi3_highpart_le): New.
20588         (<su>muldi3_highpart_le): New.
20589         (<su>mulsi3_highpart_64): New.
20590         (<u>mul<mode><dmode>3): New.
20591         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
20592         splitters): Delete.
20593         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
20594         splitters): Delete.
20595
20596 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
20597
20598         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
20599         *mulsi3_internal2, and two splitters): Delete.
20600         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
20601         Delete.
20602         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
20603
20604 2014-09-02  Richard Biener  <rguenther@suse.de>
20605
20606         PR tree-optimization/62695
20607         * tree-ssa-structalias.c (find_func_clobbers): Add missing
20608         vector truncate.
20609
20610 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
20611
20612         PR target/62312
20613         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
20614
20615 2014-09-01  Andi Kleen  <ak@linux.intel.com>
20616
20617         * file-find.c (add_prefix_begin): Add.
20618         (do_add_prefix): Rename from add_prefix with first argument.
20619         (add_prefix): Add new wrapper.
20620         * file-find.h (add_prefix_begin): Add.
20621         * gcc-ar.c (main): Support -B option.
20622
20623 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
20624
20625         * genemit.c: Include dumpfile.h.
20626         (gen_split): Print name of splitter function to dump file.
20627
20628 2014-09-01  Richard Biener  <rguenther@suse.de>
20629
20630         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
20631         Use stack auto_vecs for constraint expressions.
20632         (find_func_aliases_for_call): Likewise.
20633         (find_func_aliases): Likewise.
20634         (find_func_clobbers): Likewise.
20635
20636 2014-09-01  Richard Biener  <rguenther@suse.de>
20637
20638         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
20639         operands vector in most cases.  Remove redundant code.
20640
20641 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20642
20643         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
20644         $WIND_BASE instead of designating a harcoded arbitrary home dir.
20645         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
20646
20647 2014-09-01  Richard Biener  <rguenther@suse.de>
20648
20649         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
20650         copy_reference_ops_from_call, vn_nary_op_compute_hash,
20651         vn_reference_compute_hash, vn_reference_insert): Remove.
20652         (vn_reference_lookup_call): New function.
20653         * tree-ssa-sccvn.c (vn_reference_compute_hash,
20654         copy_reference_ops_from_ref, copy_reference_ops_from_call,
20655         vn_reference_insert, vn_nary_op_compute_hash): Make static.
20656         (create_reference_ops_from_call): Remove.
20657         (vn_reference_lookup_3): Properly update shared_lookup_references.
20658         (vn_reference_lookup_pieces): Assert that we updated
20659         shared_lookup_references properly.
20660         (vn_reference_lookup): Likewise.
20661         (vn_reference_lookup_call): New function.
20662         (visit_reference_op_call): Use it.  Avoid re-building the
20663         reference ops.
20664         (visit_reference_op_load): Remove redundant lookup.
20665         (visit_reference_op_store): Perform special tail-merging work
20666         only when possibly doing tail-merging.
20667         (visit_use): Likewise.
20668         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
20669
20670 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20671
20672         PR target/62025
20673         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
20674         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
20675         (find_inc): Revert 2014-08-13 change.
20676
20677 2014-09-01  Marek Polacek  <polacek@redhat.com>
20678
20679         PR middle-end/61903
20680         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
20681         Change the type of V to unsigned HOST_WIDE_INT.
20682
20683 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20684
20685         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
20686         the size of byte markers.
20687         (do_shift_rotate): Fix confusion between host, target and marker byte
20688         size.
20689         (verify_symbolic_number_p): Likewise.
20690         (find_bswap_or_nop_1): Likewise.
20691         (find_bswap_or_nop): Likewise.
20692
20693 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20694
20695         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
20696         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
20697
20698 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20699
20700         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
20701         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
20702         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
20703
20704 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
20705
20706         PR sanitizer/61897
20707         PR sanitizer/62140
20708         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
20709         (build_check_stmt): Likewise.
20710         (instrument_strlen_call): Likewise.
20711         (asan_expand_check_ifn): Likewise and fix types.
20712         (maybe_cast_to_ptrmode): New function.
20713
20714 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20715
20716         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
20717
20718 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
20719
20720         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
20721
20722 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
20723
20724         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
20725         prefix to function labels when generating fast indirect calls.
20726
20727 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
20728
20729         PR bootstrap/62304
20730
20731         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
20732         param back from rtx_insn * to rtx.  Rename param from "label" to
20733         "label_or_return", reintroducing "label" as an rtx_insn * after
20734         we've ensured it's not a RETURN.
20735         (first_active_target_insn): Likewise for return type and param;
20736         add a checked cast to rtx_insn * once we've ensured "insn" is not
20737         a RETURN.
20738         (steal_delay_list_from_target): Convert param "pnew_thread" back
20739         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
20740         with JUMP_LABEL.
20741         (own_thread_p): Convert param "thread" back from an rtx_insn * to
20742         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
20743         cast once we've established we're not dealing with a RETURN,
20744         renaming subsequent uses of "thread" to "thread_insn".
20745         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
20746         to JUMP_LABEL.
20747         (follow_jumps): Convert return type and param "label" from
20748         rtx_insn * back to rtx.  Move initialization of "value" to after
20749         the handling for ANY_RETURN_P, adding a checked cast there to
20750         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
20751         rename to "this_label_or_return", reintroducing "this_label" as
20752         an rtx_insn * once we've handled the case where it could be an
20753         ANY_RETURN_P.
20754         (fill_slots_from_thread): Rename param "thread" to
20755         "thread_or_return", converting from an rtx_insn * back to an rtx.
20756         Reintroduce name "thread" as an rtx_insn * local with a checked
20757         cast once we've handled the case of it being an ANY_RETURN_P.
20758         Convert local "new_thread" from an rtx_insn * back to an rtx.
20759         Add a checked cast when assigning to "trial" from "new_thread".
20760         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
20761         checked cast to rtx_insn * from "new_thread" when invoking
20762         get_label_before.
20763         (fill_eager_delay_slots): Convert locals "target_label",
20764         "insn_at_target" from rtx_insn * back to rtx.
20765         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
20766         (relax_delay_slots): Convert locals "trial", "target_label" from
20767         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
20768         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
20769         invoking update_block.
20770         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
20771         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
20772
20773         * resource.h (mark_target_live_regs): Undo erroneous conversion
20774         of second param of r214693, converting it back from rtx_insn * to
20775         rtx, since it could be a RETURN.
20776
20777         * resource.c (find_dead_or_set_registers): Similarly, convert
20778         param "jump_target" back from an rtx_insn ** to an rtx *, as we
20779         could be writing back a RETURN.  Rename local rtx_insn * "next" to
20780         "next_insn", and introduce "lab_or_return" as a local rtx,
20781         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
20782         (mark_target_live_regs): Undo erroneous conversion
20783         of second param of r214693, converting it back from rtx_insn * to
20784         rtx, since it could be a RETURN.  Rename it from "target" to
20785         "target_maybe_return", reintroducing the name "target" as a local
20786         rtx_insn * with a checked cast, after we've handled the case of
20787         ANY_RETURN_P.
20788
20789 2014-08-29  DJ Delorie  <dj@redhat.com>
20790
20791         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
20792         pointer size up to a power of two.
20793         * defaults.h (DWARF2_ADDR_SIZE): Round up.
20794         (POINTER_SIZE_UNITS): New, rounded up value.
20795         * dwarf2asm.c (size_of_encoded_value): Use it.
20796         (dw2_output_indirect_constant_1): Likewise.
20797         * expmed.c (init_expmed_one_conv): We now know the sizes of
20798         partial int modes.
20799         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
20800         * optabs.c (expand_float): Use precision, not size.
20801         (expand_fix): Likewise.
20802         * simplify-rtx (simplify_unary_operation_1): Likewise.
20803         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20804         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20805         (default_assemble_integer) Likewise.
20806         (dump_tm_clone_pairs): Likewise.
20807         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20808         * var-tracking.c (adjust_mems): Allow partial-int modes also.
20809         (prepare_call_arguments): Likewise.
20810         * stor-layout.c (finalize_type_size): Preserve precision.
20811         (layout_type): Use precision, not size.
20812
20813         * expr.c (convert_move): If the target has an explicit converter,
20814         use it.
20815
20816 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20817
20818         * gdbinit.in: Skip various inline functions in rtl.h when
20819         stepping.
20820
20821 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
20822
20823         PR bootstrap/62301
20824         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20825
20826 2014-08-29  Richard Biener  <rguenther@suse.de>
20827
20828         PR tree-optimization/62291
20829         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20830         exactly the vector size needed and use quick_push.
20831         (phi_translate_1): Adjust comment.
20832         (valid_in_sets): Remove block argument and remove pointless
20833         checking of NAMEs.
20834         (dependent_clean): Adjust for removal of block argument.
20835         (clean): Likewise.
20836         (compute_antic_aux): Likewise.
20837         (compute_partial_antic_aux): Likewise.
20838
20839 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20840             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20841             Anna Tikhonova  <anna.tikhonova@intel.com>
20842             Ilya Tocar  <ilya.tocar@intel.com>
20843             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20844             Ilya Verbin  <ilya.verbin@intel.com>
20845             Kirill Yukhin  <kirill.yukhin@intel.com>
20846             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20847
20848         * config/i386/sse.md
20849         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20850         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20851         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20852         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20853
20854 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20855             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20856             Anna Tikhonova  <anna.tikhonova@intel.com>
20857             Ilya Tocar  <ilya.tocar@intel.com>
20858             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20859             Ilya Verbin  <ilya.verbin@intel.com>
20860             Kirill Yukhin  <kirill.yukhin@intel.com>
20861             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20862
20863         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20864         * config/i386/sse.md
20865         (define_mode_iterator VI4_128_8_256): New.
20866         (define_mode_iterator VI2_128_4_256): Ditto.
20867         (define_mode_iterator PMOV_DST_MODE): Rename into
20868         (define_mode_iterator PMOV_DST_MODE_1): this.
20869         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20870         Use PMOV_DST_MODE_1 mode iterator.
20871         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20872         Ditto.
20873         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20874         Ditto.
20875         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20876         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20877         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20878         (define_mode_iterator PMOV_DST_MODE_2): New.
20879         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20880         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20881         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20882         Ditto.
20883         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20884         (define_mode_attr pmov_dst_3): Ditto.
20885         (define_mode_attr pmov_dst_zeroed_3): Ditto.
20886         (define_mode_attr pmov_suff_3): Ditto.
20887         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20888         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20889         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20890         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20891         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20892         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20893         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20894         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20895         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20896         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20897         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20898         (define_mode_attr pmov_dst_4): Ditto.
20899         (define_mode_attr pmov_dst_zeroed_4): Ditto.
20900         (define_mode_attr pmov_suff_4): Ditto.
20901         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20902         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20903         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20904         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20905         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20906         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20907         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20908         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20909         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20910         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20911         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20912
20913 2014-08-29  Richard Biener  <rguenther@suse.de>
20914
20915         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20916         NON_LVALUE_EXPR in gimple.
20917
20918 2014-08-29  Richard Biener  <rguenther@suse.de>
20919
20920         PR middle-end/62292
20921         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20922         from previous refactoring.
20923         (gimple_fold_builtin_strncpy): Likewise.
20924
20925 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20926
20927         PR bootstrap/62300
20928         * function.c (assign_parm_setup_reg): Remove erroneous checked
20929         cast to rtx_insn * on result of gen_extend_insn in favor of
20930         introducing a new local rtx "pat".
20931
20932 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20933
20934         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20935         to silence warning.
20936         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20937
20938 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20939
20940         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20941         (next_insn): Likewise.
20942         * emit-rtl.c (next_insn): Likewise.
20943         (previous_insn): Likewise.
20944         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20945         "insn" and "next" from rtx to rtx_insn *.
20946         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20947         "insn", "insn1", "vliw_start",  "prologue_end_note",
20948         "last_insn_in_packet".
20949
20950 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20951
20952         * shrink-wrap.h (active_insn_between): Strengthen both params from
20953         rtx to rtx_insn *.
20954         * function.c (active_insn_between): Likewise.
20955
20956 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20957
20958         * genattr.c (main): When writing out insn-attr.h, strengthen param
20959         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20960         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20961         writing out the definition of dfa_clear_single_insn_cache to the
20962         generated insn-automata.c
20963
20964 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20965
20966         * resource.h (clear_hashed_info_for_insn): Strengthen param from
20967         rtx to rtx_insn *.
20968         (incr_ticks_for_insn): Likewise.
20969         (init_resource_info): Likewise.
20970
20971         * resource.c (init_resource_info): Likewise.
20972         (clear_hashed_info_for_insn): Likewise.
20973         (incr_ticks_for_insn): Likewise.
20974
20975         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20976         rtx to rtx_insn *.
20977         (steal_delay_list_from_target): Use methods of "seq".
20978         (try_merge_delay_insns): Use methods of "merged_insns".
20979         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20980         (reorg_redirect_jump): Likewise for param "jump".
20981
20982 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20983
20984         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20985         rtx to rtx_insn *.
20986         * config/s390/s390.c (s390_split_branches): Eliminate top-level
20987         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20988         "set_insn".
20989         (s390_mainpool_finish): In three places, split out a local rtx
20990         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20991         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
20992         and split another local rtx "insn" out into rtx "pat" and
20993         rtx_insn * "insn".
20994         * config/sh/sh.c (output_branchy_insn): Rather than working
20995         directly on operands[9], introduce local rtx_code_label *
20996         variables named "lab" in two places, working on them, and then
20997         assigning them to operands[9], so that the intervening operations
20998         are known by the type system to be on insns.
20999
21000 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21001
21002         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
21003         const rtx_insn *.
21004
21005         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
21006         in invocation of INSN_HAS_LOCATION.
21007
21008 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21009
21010         * config/rs6000/altivec.h (vec_xl): New #define.
21011         (vec_xst): Likewise.
21012         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
21013         (XXSPLTD_V2DI): Likewise.
21014         (DIV_V2DI): Likewise.
21015         (UDIV_V2DI): Likewise.
21016         (MUL_V2DI): Likewise.
21017         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21018         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
21019         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
21020         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
21021         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
21022         (UNSPEC_VSX_DIVSD): Likewise.
21023         (UNSPEC_VSX_DIVUD): Likewise.
21024         (UNSPEC_VSX_MULSD): Likewise.
21025         (vsx_mul_v2di): New insn-and-split.
21026         (vsx_div_v2di): Likewise.
21027         (vsx_udiv_v2di): Likewise.
21028         (vsx_xxspltd_<mode>): New insn.
21029
21030 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21031
21032         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
21033         NEXT_INSN.
21034         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
21035         (NEXT_INSN): Likewise.
21036         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
21037         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
21038         const rtx_insn *.
21039         (no_labels_between_p): Likewise for both params.
21040
21041         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
21042         cast when using NEXT_INSN on operands[2].
21043         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
21044         "insn" from rtx to rtx_insn *, adding a checked cast.
21045         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
21046         rtx_insn *.
21047         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
21048         for third param.
21049         (arc_text_label): Likewise for param "insn".
21050         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
21051         "insn".
21052         (arc_ccfsm_record_condition): Likewise for param "jump".
21053         (arc_text_label): Likewise for local "label".
21054         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
21055         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
21056         a method for typesafety.  Add a checked cast.
21057         * config/arc/constraints.md (Clb): Add a checked cast when getting
21058         the CODE_LABEL from a LABEL_REF.
21059         * config/arm/arm.c (require_pic_register): Strengthen locals
21060         "seq", "insn" from rtx to rtx_insn *.
21061         (create_fix_barrier): Likewise for locals "selected", "next".
21062         (thumb1_reorg): Likewise for locals "prev", "insn".
21063         (arm_expand_prologue): Likewise for local "last".
21064         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
21065         operands[0].
21066         (thumb2_output_casesi): Likewise for operands[2].
21067         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
21068         strengthen local "insn" from rtx to rtx_insn *.
21069         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
21070         type and param "insn".
21071         (find_prev_insn_start): Likewise.
21072         (hwloop_optimize): Likewise for locals "insn", "last_insn",
21073         "prev".
21074         (gen_one_bundle): Likewise for loal "t".
21075         (find_load): Likewise for param "insn".
21076         (workaround_speculation): Likewise for locals "insn", "next",
21077         "target", "next_tgt".
21078         * config/c6x/c6x.c (assign_reservations): Likewise for both params
21079         and for locals "insn", "within", "last".
21080         (count_unit_reqs): Likewise for params "head", "tail" and local
21081         "insn".
21082         (try_rename_operands): Likewise for params "head", "tail".
21083         (reshuffle_units): Likewise for locals "head", "tail", "insn".
21084         (struct c6x_sched_context): Likewise for fields
21085         "last_scheduled_insn", "last_scheduled_iter0".
21086         (init_sched_state): Replace NULL_RTX with NULL.
21087         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
21088         to rtx_insn *.
21089         (undo_split_delayed_nonbranch): Likewise for param and for local
21090         "prev".
21091         (conditionalize_after_sched): Likewise for local "insn".
21092         (bb_earliest_end_cycle): Likewise.
21093         (filter_insns_above): Likewise for locals "insn", "next".
21094         (hwloop_optimize): Remove redundant checked cast.
21095         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
21096         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
21097         NULL_RTX with NULL.
21098         (cris_simple_epilogue): Likewise.
21099         (cris_expand_prologue): Likewise.
21100         (cris_expand_epilogue): Likewise.
21101         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
21102         local "insn" from rtx to rtx_insn *.
21103         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
21104         (struct frv_packet_group): Likewise for the elements within array
21105         fields "insns", "sorted", and for field "nop".
21106         (frv_packet): Likewise for the elements within array field
21107         "insns".
21108         (frv_add_insn_to_packet): Likewise for param "insn".
21109         (frv_insert_nop_in_packet): Likewise for param "insn" and local
21110         "last".
21111         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
21112         (frv_sort_insn_group_1): Likewise for local "insn".
21113         (frv_optimize_membar_local): Likewise.
21114         (frv_align_label): Likewise for locals "x", "last", "barrier",
21115         "label".
21116         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
21117         local.
21118         (ia64_sched_init): Likewise for local "insn".
21119         (scheduled_good_insn): Likewise for param "last".
21120         (struct _ia64_sched_context): Likewise for field
21121         "last_scheduled_insn".
21122         (ia64_init_sched_context): Replace NULL_RTX with NULL.
21123         (struct bundle_state): Likewise for field "insn".
21124         (issue_nops_and_insn): Likewise for param "insn".
21125         (get_next_important_insn): Likewise for return type and both
21126         params.
21127         (ia64_add_bundle_selector_before): Likewise for param "insn".
21128         (bundling): Likewise for params "prev_head_insn", "tail" and
21129         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
21130         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
21131         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
21132         Strengthen final param from rtx to rtx_insn *.
21133         (iq2000_move_1word): Likewise for second param.
21134         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
21135         param "cur_insn" and local "next_insn".
21136         (iq2000_move_1word): Likewise for param "insn".
21137         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
21138         casts when using NEXT_INSN on operands[1].
21139         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
21140         "insn" from rtx to rtx_insn *.
21141         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
21142         "x", introducing local rtx_insn * "insn" for when working with the
21143         CODE_LABEL of the LABEL_REF.
21144         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
21145         rtx_insn *.
21146         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
21147         param.
21148         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
21149         type.
21150         (conditionalize_block): Likewise for return type and param.
21151         (mcore_is_dead): Likewise for param "first" and local "insn".
21152         (emit_new_cond_insn): Likewise for return type.
21153         (conditionalize_block): Likewise for return type, param, and
21154         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
21155         "newinsn".
21156         (conditionalize_optimization): Likewise for local "insn".
21157         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
21158         using NEXT_INSN.
21159         * config/microblaze/microblaze.md: Add checked casts when using
21160         NEXT_INSN.
21161         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
21162         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
21163         and rtx_insn * "insn".
21164         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
21165         checked cast when using NEXT_INSN on operands[2].
21166         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
21167         local "insn" from rtx to rtx_insn *.
21168         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
21169         Likewise.
21170         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
21171         Add a checked cast when using NEXT_INSN on operands[1].
21172         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
21173         rtx to rtx_insn *.
21174         (pa_output_cbranch): Likewise for final param.
21175         (pa_output_lbranch): Likewise for second param.
21176         (pa_output_bb): Likewise for third param.
21177         (pa_output_bvb): Likewise.
21178         (pa_output_dbra): Likewise for second param.
21179         (pa_output_movb): Likewise.
21180         (pa_output_parallel_movb): Likewise.
21181         (pa_output_parallel_addb): Likewise.
21182         (pa_output_millicode_call): Likewise for first param.
21183         (pa_output_mul_insn): Likewise for second param.
21184         (pa_output_div_insn): Likewise for third param.
21185         (pa_output_mod_insn): Likewise for second param.
21186         (pa_jump_in_call_delay): Likewise for param.
21187         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
21188         (pa_output_div_insn): Likewise.
21189         (pa_output_mod_insn): Likewise.
21190         (pa_output_cbranch): Likewise.
21191         (pa_output_lbranch): Likewise.
21192         (pa_output_bb): Likewise.
21193         (pa_output_bvb): Likewise.
21194         (pa_output_dbra): Likewise.
21195         (pa_output_movb): Likewise.
21196         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
21197         to simplify and for typesafety.
21198         (pa_output_call): Use method of rtx_sequence *.
21199         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
21200         (pa_jump_in_call_delay): Likewise.
21201         (pa_output_parallel_movb): Likewise.
21202         (pa_output_parallel_addb): Likewise.
21203         (pa_following_call): Likewise.
21204         (pa_combine_instructions): Likewise for locals "anchor",
21205         "floater".
21206         (pa_can_combine_p): Likewise for params "anchor", "floater" and
21207         locals "start", "end".
21208         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
21209         param "insn" and local "local_insn".
21210         (picochip_final_prescan_insn): Likewise for local "local_insn".
21211         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
21212         local "insn".
21213         (uses_TOC): Likewise.
21214         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
21215         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
21216         splitting out to more tightly-scoped locals, 3 as rtx and one as
21217         rtx_insn *.
21218         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
21219         to rtx_insn *.
21220         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
21221         where needed.
21222         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
21223         to rtx_insn *.
21224         (fixup_addr_diff_vecs): Likewise.
21225         (reg_unused_after): Likewise for param 2.
21226         (sh_can_redirect_branch): Likewise for both params.
21227         (check_use_sfunc_addr): Likewise for param 1.
21228         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
21229         (find_barrier): Likewise for local "last_got".
21230         (gen_block_redirect): Likewise for return type, param "jump" and
21231         locals "prev", "scan", "next", "insn".
21232         (struct far_branch): Likewise for fields "near_label",
21233         "insert_place", "far_label".
21234         (gen_far_branch): Likewise for local "jump".
21235         (fixup_addr_diff_vecs): Likewise for param "first" and locals
21236         "insn", "prev".
21237         (barrier_align): Likewise for param and for locals "prev", "x".
21238         Introduce local rtx_sequence * "prev_seq" and use insn method for
21239         typesafety and clarity.
21240         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
21241         (get_dest_uid): Likewise for local "dest".
21242         (split_branches): Likewise for locals "next", "beyond", "label",
21243         "block", "far_label".  Add checked casts when assigning to
21244         bp->far_label and "far_label".
21245         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
21246         (sequence_insn_p): Likewise.
21247         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
21248         more loop-scoped rtx "insn" when walking LABEL_REFS.
21249         (sh_can_redirect_branch): Strengthen both params from rtx to
21250         rtx_insn *.
21251         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
21252         new local rtx_sequence * "seq" via a dyn_cast, and use a method
21253         for clarity and typesafety.
21254         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
21255         "insn" from rtx to rtx_insn *.
21256         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
21257         when using NEXT_INSN on the CODE_LABEL in operands[2].
21258         (define_insn "casesi_worker_2"): Likewise.
21259         (define_insn "casesi_shift_media"): Likewise.
21260         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
21261         operands[3].
21262         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
21263         Strengthen field "insn" from rtx to rtx_insn *.
21264         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
21265         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
21266         param "start_insn" and local "start_insn".
21267         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
21268         field "insn".
21269         (find_set_of_reg_bb): Likewise for param "insn".
21270         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
21271         (trace_reg_uses): Likewise for param "start_insn".
21272         (sh_treg_combine::cbranch_trace): Likewise for field
21273         "cbranch_insn".
21274         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
21275         param "insn".
21276         (sh_treg_combine::record_set_of_reg): Likewise for param
21277         "start_insn" and local "i".
21278         (sh_treg_combine::can_remove_cstore): Likewise for local
21279         "prev_insn".
21280         (sh_treg_combine::try_optimize_cbranch): Likewise for param
21281         "insn".
21282         (sh_treg_combine::execute): Likewise for local "i".
21283         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
21284         param.
21285         (sparc_check_64): Likewise for second param.
21286         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
21287         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
21288         dyn_cast, using its insn method for typesafety and clarity.
21289         (empty_delay_slot): Strengthen param "insn" from rtx to
21290         rtx_insn *.
21291         (set_extends): Likewise.
21292         (sparc_check_64): Likewise.
21293         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
21294         for locals "seq", "last_insn".
21295         (combine_bnp): Likewise for param "insn".
21296         (xstormy16_reorg): Likewise for local "insn".
21297         * config/v850/v850.c (substitute_ep_register): Likewise for params
21298         "first_insn", "last_insn" and local "insn".
21299         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
21300         elements of "regs" array, and local "insn".
21301         * except.c (emit_note_eh_region_end): Likewise for param "insn".
21302         * final.c (final_sequence): Strengthen this global from rtx to
21303         rtx_sequence *.
21304         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
21305         rtx_insn *.
21306         (final_scan_insn): Update assignment to "final_sequence" to be
21307         from "seq", the cast version of "body", for type-safety.
21308         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
21309         "insns" from rtx to rtx_insn *.
21310         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
21311         * genattr.c (main): When writing out generated insn-attr.h,
21312         strengthen params 1 and 3 of eligible_for_delay,
21313         eligible_for_annul_true, eligible_for_annul_false from rtx to
21314         rtx_insn *.
21315         * genattrtab.c (write_eligible_delay): Likewise when writing out
21316         generated insn-attrtab.c; also local "insn" the generated
21317         functions.
21318         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
21319         to rtx_insn *.
21320         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
21321         "start_label" from rtx to rtx_insn *.
21322         * ira.c (decrease_live_ranges_number): Likewise for local "p".
21323         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
21324         "insns" and local "insn".
21325         (validate_equiv_mem): Likewise for param "start" and local "insn".
21326         (memref_used_between_p): Likewise for params "start", "end" and
21327         local "insn".
21328         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
21329         final param.
21330         * loop-doloop.c (doloop_optimize): Within region guarded by
21331         INSN_P (doloop_pat), introduce a new local rtx_insn *
21332         "doloop_insn" via a checked cast, and use it for typesafety,
21333         eventually writing the value back into doloop_pat.
21334         * output.h (final_sequence): Strengthen this global from rtx to
21335         rtx_sequence *.
21336         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
21337         reintroducing "insn" as an rtx_insn * via a checked cast.
21338         Strengthen param "attempt" and local "new_insn"from rtx to
21339         rtx_insn *.
21340         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
21341         to rtx_insn *.
21342         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
21343         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
21344         "p" in favor of more tightly-scoped replacements, sometimes rtx
21345         and sometimes rtx_insn *, as appropriate.
21346         (delete_output_reload): Eliminate top-level rtx "i1", splitting
21347         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
21348         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
21349         local "trial" from rtx to rtx_insn *.
21350         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
21351         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
21352         rtx_sequence * and use methods for clarity and typesafety.
21353         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
21354         rtx to rtx_insn *.  Strenghten local "li" from rtx to
21355         rtx_insn_list * and use its methods for clarity and typesafety.
21356         (steal_delay_list_from_target): Strengthen param "insn" from rtx
21357         to rtx_insn *.
21358         (steal_delay_list_from_fallthrough): Likewise.
21359         (try_merge_delay_insns): Likewise for param "thread" and locals
21360         "trial", "next_trial", "delay_insn".
21361         (redundant_insn): Likewise for param "target" and local "trial".
21362         (own_thread_p): Likewise for param "thread" and locals
21363         "active_insn", "insn".
21364         (get_label_before): Likewise for param "insn".
21365         (fill_simple_delay_slots): Likewise for local "new_label"; use
21366         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
21367         (label_before_next_insn): Strengthen return type and local "insn"
21368         from rtx to rtx_insn *.
21369         (relax_delay_slots): Likewise for locals "other", "tmp".
21370         (make_return_insns): Likewise for param "first" and locals "insn",
21371         "jump_insn", "prev".  Move declaration of "pat" to its assignment
21372         and strengthen from rtx to rtx_sequence *.  Use its methods for
21373         clarity and typesafety.
21374         * rtlanal.c (no_labels_between_p): Strengthen params from
21375         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
21376         rtx_insn *.
21377         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
21378         from const_rtx to const rtx_insn *.
21379         (reg_set_between_p): Rename param "from_insn" to
21380         "uncast_from_insn", and reintroduce "from_insn" as a
21381         const rtx_insn * via a checked cast.
21382         (modified_between_p): Likewise for param "start" as "uncast_start".
21383         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
21384         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
21385         "tmp", head" from rtx to rtx_insn *.
21386         (recompute_rev_top_order): Likewise for local "insn".
21387         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
21388         * store-motion.c (build_store_vectors): Likewise for local "insn".
21389         Strengthen local "st" from rtx to rtx_insn_list * and use methods
21390         for clarity and typesafety.
21391         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
21392         rtx to rtx_insn *.
21393         (computation_cost): Likewise for local "seq".
21394         (get_address_cost): Likewise.
21395
21396 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21397
21398         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
21399         const rtx_insn *.
21400         (label_is_jump_target_p): Likewise for second param.
21401
21402         * rtlanal.c (tablejump_p): Likewise for param "insn".
21403         (label_is_jump_target_p): Likewise for param "jump_insn".
21404
21405 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21406
21407         * rtl.h (find_first_parameter_load): Strengthen return type and
21408         both params from rtx to rtx_insn *.
21409         * rtlanal.c (find_first_parameter_load): Strengthen return type,
21410         both params and locals "before", "first_set" from rtx to
21411         rtx_insn *.  Remove now-redundant cast.
21412         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
21413
21414 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21415
21416         * rtl.h (find_last_value): Delete.
21417         * rtlanal.c (find_last_value): Delete.
21418
21419 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21420
21421         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
21422         from rtx to rtx_insn *.
21423         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
21424         rtx "note" with new local rtx_insn * "new_head" when calculating
21425         head insn of new basic block.
21426         * combine.c (combine_split_insns): Strengthen return type and local
21427         "ret" from rtx to rtx_insn *.
21428         (likely_spilled_retval_p): Likewise for locals "use" and "p".
21429         (try_combine): Eliminate local "m_split", splitting into new
21430         locals "m_split_insn" and "m_split_pat".
21431         (find_split_point): Strengthen local "seq" from rtx into
21432         rtx_insn *.
21433         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
21434         locals "label", "branch".
21435         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
21436         for local "insn".
21437         (define_expand "umulsi3_highpart"): Likewise for local "insn".
21438         * dse.c (note_add_store_info): Likewise for fields "first",
21439         "current".
21440         (note_add_store): Likewise for local "insn".
21441         (emit_inc_dec_insn_before): Likewise for locals "insn",
21442         "new_insn", "cur".
21443         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
21444         (replace_read): Likewise for locals "insns", "this_insn".
21445         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
21446         (notice_eh_throw): Likewise for param "insn".
21447         (before_next_cfi_note): Likewise for return type, param, and local
21448         "prev".
21449         (connect_traces): Likewise for local "note".
21450         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
21451         (verify_rtl_sharing): Likewise.
21452         (unshare_all_rtl_in_chain): Likewise for param "insn".
21453         (get_first_nonnote_insn): Likewise for local "insn".
21454         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
21455         "seq" and use its methods to clarify things.
21456         (next_insn): Strengthen return type from rtx to rtx_insn *.
21457         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
21458         local rtx_insn * using a checked cast, dropping a checked cast
21459         made redundant by this change.  Use a cast to and method of
21460         rtx_sequence to clarify the code.
21461         (previous_insn): Rename param "insn" to "uncast_insn" and
21462         reintroduce "insn" as a local rtx_insn * using a checked cast,
21463         dropping a checked cast made redundant by this change.  Use a cast
21464         to and method of rtx_sequence to clarify the code.
21465         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
21466         reintroduce "insn" as a local rtx_insn * using a checked cast,
21467         dropping a checked cast made redundant by this change.
21468         (next_nonnote_insn_bb): Likewise.
21469         (prev_nonnote_insn): Likewise.
21470         (prev_nonnote_insn_bb): Likewise.
21471         (next_nondebug_insn): Likewise.
21472         (prev_nondebug_insn): Likewise.
21473         (next_nonnote_nondebug_insn): Likewise.
21474         (prev_nonnote_nondebug_insn): Likewise.
21475         (next_real_insn): Likewise.
21476         (prev_real_insn): Likewise.
21477         (next_active_insn): Likewise.
21478         (prev_active_insn): Likewise.
21479         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
21480         clarity.
21481         (prev_cc0_setter): Likewise.
21482         (try_split): Rename param "trial" to "uncast_trial" and
21483         reintroduce "insn" as a local rtx_insn * using a checked cast,
21484         dropping checked casts made redundant by this change.
21485         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
21486         rtx to rtx_insn *.
21487         (remove_insn): Rename param "insn" to "uncast_insn" and
21488         reintroduce "insn" as a local rtx_insn * using a checked cast.
21489         (emit_pattern_after_setloc): Likewise for param "after", as
21490         "uncast_after".
21491         (emit_pattern_after): Likewise.  Strengthen local "prev" from
21492         rtx to rtx_insn *.
21493         (emit_pattern_before_setloc): Rename param "before" to
21494         "uncast_before" and reintroduce "before" as a local rtx_insn *
21495         using a checked cast.  Strengthen locals "first", "last" from
21496         rtx to rtx_insn *.
21497         (emit_pattern_before): Likewise rename/cast param "before" to
21498         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
21499         * except.c (copy_reg_eh_region_note_forward): Strengthen param
21500         "first" and local "insn" from rtx to rtx_insn *.
21501         (copy_reg_eh_region_note_backward): Likewise for param "last"
21502         and local "insn".
21503         * expr.c (fixup_args_size_notes): Rename param "last" to
21504         "uncast_last" and reintroduce "last" as a local rtx_insn *
21505         using a checked cast.  Strengthen local "insn" from rtx to
21506         rtx_insn *.
21507         * function.c (set_insn_locations): Strengthen param "insn" from
21508         rtx to rtx_insn *.
21509         (record_insns): Likewise for param "insns" and local "tmp".
21510         (active_insn_between): Rename param "tail" to
21511         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
21512         using a checked cast.
21513         (thread_prologue_and_epilogue_insns): Split out top-level local
21514         rtx "seq" into three different rtx_insn * locals.  Strengthen
21515         local "prologue_seq" from rtx to rtx_insn *.
21516         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
21517         from rtx to rtx_insn *.
21518         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
21519         (priority): Likewise for locals "prev_first", "twin".
21520         (setup_insn_max_reg_pressure): Likewise for param "after".
21521         (sched_setup_bb_reg_pressure_info): Likewise.
21522         (no_real_insns_p): Strengthen params from const_rtx to
21523         const rtx_insn *.
21524         (schedule_block): Strengthen local "next_tail" from rtx to
21525         rtx_insn *.
21526         * ifcvt.c (find_active_insn_before): Strengthen return type and
21527         param "insn" from rtx to rtx_insn *.
21528         (find_active_insn_after): Likewise.
21529         (cond_exec_process_insns): Likewise for param "start" and local "insn".
21530         (cond_exec_process_if_block): Likewise for locals "then_start",
21531         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
21532         (noce_process_if_block): Likewise for local "jump".
21533         (merge_if_block): Likewise for two locals named "end".
21534         (cond_exec_find_if_block): Likewise for local "last_insn".
21535         * jump.c (delete_related_insns): Rename param "insn" to
21536         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
21537         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
21538         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
21539         NULL.
21540         (split_reg): Likewise.
21541         * lra.c (lra_process_new_insns): Likewise.
21542         * modulo-sched.c (permute_partial_schedule): Strengthen param
21543         "last" from rtx to rtx_insn *.
21544         * optabs.c (add_equal_note): Likewise for param "insns" and local
21545         "last_insn".
21546         (expand_binop_directly): Add checked casts to rtx_insn * within
21547         NEXT_INSN (pat) uses.
21548         (expand_unop_direct): Likewise.
21549         (maybe_emit_unop_insn): Likewise.
21550         * recog.c (peep2_attempt): Strengthen locals "last",
21551         "before_try", "x" from rtx to rtx_insn *.
21552         * reorg.c (optimize_skip): Strengthen return type and local
21553         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
21554         and locals "trial", "next_trial" from rtx to rtx_insn *.
21555         * resource.c (next_insn_no_annul): Strengthen return type and
21556         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
21557         rtx_sequence to clarify the code.
21558         (mark_referenced_resources): Add a checked cast to rtx_insn *
21559         within PREV_INSN (x).
21560         (find_dead_or_set_registers): Strengthen return type, param
21561         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
21562         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
21563         to rtx_insn **.
21564         (mark_target_live_regs): Strengthen params "insns" and "target",
21565         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
21566         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
21567         the code.
21568         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
21569         from rtx to rtx_insn *.
21570         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
21571         from rtx to rtx_insn *.
21572         (copy_reg_eh_region_note_backward): Likewise.
21573         (unshare_all_rtl_in_chain): Likewise for sole param.
21574         (dump_rtl_slim): Strengthen second and third params from const_rtx
21575         to const rtx_insn *.
21576         * sched-deps.c (sched_free_deps): Strengthen params "head" and
21577         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
21578         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
21579         "next_tail" from rtx to rtx_insn *.
21580         (begin_move_insn): Likewise for local "next".
21581         * sched-int.h (sched_free_deps): Likewise for first and second
21582         params.
21583         (no_real_insns_p): Strengthen both params from const_rtx to
21584         const rtx_insn *.
21585         (sched_setup_bb_reg_pressure_info): Strengthen second params from
21586         rtx to rtx_insn *.
21587         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
21588         "next_tail".
21589         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
21590         and locals "insn", "tail" from const_rtx to const rtx_insn *.
21591         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
21592         rtx_insn *.
21593         (debug_rtl_slim): Strengthen params "first" and "last" from
21594         const_rtx to const rtx_insn *.
21595         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
21596         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
21597         (convert_to_simple_return): Likewise for param "returnjump".
21598         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
21599         "prologue_seq".
21600         (convert_to_simple_return): Likewise for param "returnjump".
21601         * valtrack.c (propagate_for_debug): Likewise for params
21602         "insn", "last".
21603         * valtrack.h (propagate_for_debug): Likewise for second param.
21604
21605 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21606
21607         * output.h (insn_current_reference_address): Strengthen param
21608         from rtx to rtx_insn *.
21609         * final.c (insn_current_reference_address): Likewise.
21610
21611 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21612
21613         * basic-block.h (inside_basic_block_p): Strengthen param from
21614         const_rtx to const rtx_insn *.
21615         * cfgbuild.c (inside_basic_block_p): Likewise.
21616
21617 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21618
21619         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
21620         rtx_insn *.
21621         (get_trace_info): Likewise for param "insn".
21622         (save_point_p): Likewise.
21623         (maybe_record_trace_start): Likewise for both params.
21624         (maybe_record_trace_start_abnormal): Likewise.
21625         (create_trace_edges): Likewise for sole param and for three of the
21626         locals named "lab".
21627         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
21628         to rtx_insn *, and update a call to pat->element to pat->insn.
21629
21630 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21631
21632         * function.h (struct expr_status): Convert field "x_forced_labels"
21633         from rtx_expr_list * to rtx_insn_list *.
21634
21635         * cfgbuild.c (make_edges): Convert local "x" from an
21636         rtx_expr_list * to an rtx_insn_list *, replacing use of
21637         "element" method with "insn" method.
21638         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21639         * except.c (sjlj_emit_dispatch_table): Replace use of
21640         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
21641         forced_labels.
21642         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
21643         rtx_expr_list * to an rtx_insn_list *, replacing use of
21644         "element" method with "insn" method.
21645         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21646         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
21647         rtx_insn *, adding a checked cast.  Replace use of
21648         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
21649         forced_labels.
21650         (expand_label): Likewise for local "label_r".
21651
21652 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21653
21654         * function.h (struct rtl_data): Convert field
21655         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
21656         rtx_insn_list *.
21657         * rtl.h (remove_node_from_insn_list): New prototype.
21658
21659         * builtins.c (expand_builtin): When prepending to
21660         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21661         gen_rtx_EXPR_LIST.
21662         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
21663         to rtx_insn_list *, and use its "insn" method rather than
21664         "element" method.
21665         * cfgrtl.c (delete_insn): Use new function
21666         remove_node_from_insn_list rather than
21667         remove_node_from_expr_list.
21668         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
21669         to rtx_insn_list *, and use its "insn" method rather than
21670         "element" method.
21671         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21672         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21673         * rtlanal.c (remove_node_from_insn_list): New function, adapted
21674         from remove_node_from_expr_list.
21675         * stmt.c (expand_label): When prepending to
21676         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21677         gen_rtx_EXPR_LIST.
21678
21679 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21680
21681         * function.h (struct rtl_data): Strengthen fields "x_return_label"
21682         and "x_naked_return_label" from rtx to rtx_code_label *.
21683
21684 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21685
21686         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
21687         (SET_NEXT_INSN): Likewise.
21688         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
21689
21690         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
21691         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
21692         to split out the SEQUENCE from local "bundle", strengthening the
21693         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
21694         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
21695         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
21696         and the type of the elements of the "slot" array from rtx to
21697         rtx_insn *.
21698         (reorg_split_calls): Likewise for locals "insn" and "next", and
21699         the type of the elements of the "slot" array.
21700
21701         * config/frv/frv.c (frv_nops): Likewise for the elements of this
21702         array.
21703         (frv_function_prologue): Likewise for locals "insn", "next",
21704         "last_call".
21705         (frv_register_nop): Introduce a local "nop_insn" to be the
21706         rtx_insn * containing rtx "nop".
21707
21708         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
21709         used as an insn and sometimes as a pattern, so rename it to
21710         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
21711         using it where dealing with the core insn.
21712
21713         * config/picochip/picochip.c (reorder_var_tracking_notes):
21714         Strengthen locals "insn", "next", "last_insn", "queue",
21715         "next_queue", "prev" from rtx to rtx_insn *.
21716
21717         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
21718         the second param is an rtx_insn ** rather than an rtx **.
21719         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
21720         from rtx to rtx_sequence *, and introduce local named "sequence",
21721         using methods of rtx_sequence to clarify the code.
21722         (remove_insn): Introduce local rtx_sequence * named "sequence" and
21723         use its methods.
21724         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
21725         Rename param "after" to "uncast_after", reintroducing "after" as a
21726         local rtx_insn * with a checked cast.
21727         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
21728         reintroducing "after" as a local rtx_insn * with a checked cast.
21729         Strengthen local "last" from rtx to rtx_insn * and remove the
21730         now-redundant checked casts.
21731         (copy_delay_slot_insn): Strengthen return type and param from rtx
21732         to rtx_insn *.
21733
21734         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
21735         "last" from rtx to rtx_insn *.
21736
21737 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21738
21739         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
21740         param from rtx to rtx_insn *.
21741
21742         * emit-rtl.c (copy_delay_slot_insn): Likewise.
21743
21744         * reorg.c (skip_consecutive_labels): Strengthen return type, param
21745         and local "insn" from rtx to rtx_insn *.
21746         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
21747         (unfilled_slots_next): Likewise.
21748         (function_return_label): Strengthen from rtx to rtx_code_label *.
21749         (function_simple_return_label): Likewise.
21750         (first_active_target_insn): Strengthen return type and param from
21751         rtx to rtx_insn *.
21752         (find_end_label): Strengthen return type from rtx to
21753         rtx_code_label *; strengthen locals as appropriate.
21754         (emit_delay_sequence): Strengthen return type, param "insn" and
21755         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
21756         and local "li" from rtx to rtx_insn_list *, using methods of
21757         rtx_insn_list for clarity and typesafety.
21758         (add_to_delay_list): Strengthen return type and param "insn" from
21759         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
21760         rtx_insn_list * and use methods of rtx_insn_list.
21761         (delete_from_delay_slot): Strengthen return type, param "insn",
21762         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
21763         Strengthen local "seq" from rtx to rtx_sequence *, and local
21764         "delay_list" from rtx to rtx_insn_list *, using methods of
21765         rtx_sequence for clarity and type-safety.
21766         (delete_scheduled_jump): Add checked cast when invoking
21767         delete_from_delay_slot.  Strengthen local "trial" from rtx to
21768         rtx_insn *.
21769         (optimize_skip): Strengthen return type and local "delay_list"
21770         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
21771         rtx_insn *.
21772         (steal_delay_list_from_target): Strengthen return type, param
21773         "delay_list" and local "new_delay_list" from rtx to
21774         rtx_insn_list *.  Strengthen param "seq" from rtx to
21775         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
21776         rtx_insn **.
21777         Split out local "temp" into multiple more-tightly scoped locals:
21778         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
21779         of rtx_insn_list and rtx_sequence for clarity and typesafety.
21780         Strengthen locals named "trial" from rtx to rtx_insn *.
21781         (steal_delay_list_from_fallthrough): Strengthen return type and
21782         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
21783         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
21784         Strengthen local "trial" from rtx to rtx_insn *.
21785         (try_merge_delay_insns): Strength local "merged_insns" from rtx
21786         to rtx_insn_list * and use its methods.  Strengthen local "pat"
21787         from rtx to rtx_sequence * and use its methods.  Strengthen locals
21788         "dtrial" and "new_rtx" from rtx to rtx_insn *.
21789         (get_label_before): Strengthen return type and local "label" from
21790         rtx to rtx_insn *.
21791         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
21792         "next_trial", "next", prev".  Strengthen local "delay_list" from
21793         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
21794         rtx_insn **.
21795         (follow_jumps): Strengthen return type, param "label" and locals
21796         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
21797         (fill_slots_from_thread): Strengthen return type, param
21798         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
21799         "insn", "thread", "opposite_thread" and locals "new_thread",
21800         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
21801         "sequence" from a checked cast to rtx_sequence so that we can call
21802         steal_delay_list_from_target and steal_delay_list_from_fallthrough
21803         with an rtx_sequence *.
21804         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21805         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21806         Strengthen local "delay_list" from rtx to rtx_insn_list *.
21807         (relax_delay_slots): Strengthen param "first" and locals "insn",
21808         "next", "trial", "delay_insn", "target_label" from rtx to
21809         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
21810         Introduce a local "trial_seq" for PATTERN (trial) of type
21811         rtx_sequence *, in both cases using methods of rtx_sequence.
21812         (dbr_schedule): Strengthen param "first" and locals "insn",
21813         "next", "epilogue_insn" from rtx to rtx_insn *.
21814
21815 2014-08-28  Richard Biener  <rguenther@suse.de>
21816
21817         PR tree-optimization/62283
21818         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21819         Do not peel loops for alignment where the vector loop likely
21820         doesn't run at least VF times.
21821
21822 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
21823
21824         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21825         important_candidates.  Consider all important candidates if
21826         IVS doesn't give any result.  Remove check on ivs->upto.
21827         (try_add_cand_for): Call iv_ca_add_use only once.
21828
21829 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21830             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21831             Anna Tikhonova  <anna.tikhonova@intel.com>
21832             Ilya Tocar  <ilya.tocar@intel.com>
21833             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21834             Ilya Verbin  <ilya.verbin@intel.com>
21835             Kirill Yukhin  <kirill.yukhin@intel.com>
21836             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21837
21838         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21839         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21840         masking.
21841         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21842         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21843         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21844         (define_insn "*mul<mode>3"): Add EVEX version.
21845
21846 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21847             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21848             Anna Tikhonova  <anna.tikhonova@intel.com>
21849             Ilya Tocar  <ilya.tocar@intel.com>
21850             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21851             Ilya Verbin  <ilya.verbin@intel.com>
21852             Kirill Yukhin  <kirill.yukhin@intel.com>
21853             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21854
21855         * config/i386/sse.md
21856         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21857         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21858         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21859         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21860         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21861         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21862         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21863         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21864         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21865         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21866         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21867         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21868         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21869         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21870         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21871         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"):
21872         Ditto.
21873
21874 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21875             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21876             Anna Tikhonova  <anna.tikhonova@intel.com>
21877             Ilya Tocar  <ilya.tocar@intel.com>
21878             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21879             Ilya Verbin  <ilya.verbin@intel.com>
21880             Kirill Yukhin  <kirill.yukhin@intel.com>
21881             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21882
21883         * config/i386/sse.md
21884         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21885         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21886         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21887
21888 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21889             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21890             Anna Tikhonova  <anna.tikhonova@intel.com>
21891             Ilya Tocar  <ilya.tocar@intel.com>
21892             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21893             Ilya Verbin  <ilya.verbin@intel.com>
21894             Kirill Yukhin  <kirill.yukhin@intel.com>
21895             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21896
21897         * config/i386/sse.md
21898         (define_mode_iterator VI128_256): New.
21899         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21900
21901 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21902             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21903             Anna Tikhonova  <anna.tikhonova@intel.com>
21904             Ilya Tocar  <ilya.tocar@intel.com>
21905             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21906             Ilya Verbin  <ilya.verbin@intel.com>
21907             Kirill Yukhin  <kirill.yukhin@intel.com>
21908             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21909
21910         * config/i386/sse.md
21911         (define_mode_iterator VI8_256_512): New.
21912         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21913         Ditto.
21914         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21915         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21916         Ditto.
21917         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21918
21919 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21920
21921         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
21922         pointer to the cumulative reloc value and return the value for
21923         this reloc instead.
21924         (compute_reloc_for_rtx): Take a const_rtx.  Call
21925         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21926         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
21927         for_each_rtx for the CONST case.
21928
21929 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21930
21931         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21932         (mark_constants_in_pattern): ...this new function to iterate over
21933         all the subrtxes.
21934         (mark_constants): Update accordingly.
21935
21936 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21937
21938         * varasm.c: Include rtl-iter.h.
21939         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21940         Remove the pointer to the cumulative hashval_t and just return
21941         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
21942         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21943         Accumulate the hashval_ts here instead of const_rtx_hash_1.
21944
21945 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21946
21947         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21948         Give real type of data parameter.  Remove return value.
21949         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21950         to iterate over subrtxes.
21951
21952 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21953
21954         * var-tracking.c (use_narrower_mode_test): Turn from being a
21955         for_each_rtx callback to being a function that examines each
21956         subrtx itself.
21957         (adjust_mems): Update accordingly.
21958
21959 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21960
21961         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21962         callback to being a function that examines each subrtx itself.
21963         Remove handling of null rtxes.
21964         (add_uses): Update accordingly.
21965
21966 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21967
21968         * var-tracking.c: Include rtl-iter.h.
21969         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21970         to being a function that examines each subrtx itself.
21971         (use_type): Update accordingly.
21972
21973 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21974
21975         * store-motion.c: Include rtl-iter.h.
21976         (extract_mentioned_regs_1): Delete.
21977         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21978         for_each_rtx to iterate over subrtxes.
21979
21980 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21981
21982         * sel-sched.c: Include rtl-iter.h
21983         (count_occurrences_1): Delete.
21984         (count_occurrences_equiv): Turn rtxes into const_rtxes.
21985         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21986
21987 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21988
21989         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21990         * rtlanal.c (tls_referenced_p_1): Delete.
21991         (tls_referenced_p): Take a const_rtx rather than an rtx.
21992         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21993
21994 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21995
21996         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21997         (for_each_inc_dec): Take an rtx rather than an rtx *.
21998         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21999         (cselib_record_sets): Likewise.
22000         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
22001         (check_for_inc_dec): Likewise.
22002         * rtlanal.c (for_each_inc_dec_ops): Delete.
22003         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
22004         rather than a pointer to the memory address.  Replace
22005         for_each_inc_dec_ops argument with separate function and data
22006         arguments.  Abort on non-autoinc addresses.
22007         (for_each_inc_dec_find_mem): Delete.
22008         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
22009         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
22010
22011 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22012
22013         * rtl.h (find_all_hard_regs): Declare.
22014         * rtlanal.c (find_all_hard_regs): New function.
22015         (record_hard_reg_uses_1): Delete.
22016         (record_hard_reg_uses): Use find_all_hard_regs.
22017
22018 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22019
22020         * rtl.h (replace_label_data): Delete.
22021         (replace_label): Take the old label, new label and update-nuses flag
22022         as direct arguments.  Return void.
22023         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
22024         * rtlanal.c (replace_label): Update interface as above.  Handle
22025         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
22026         iterator.  Use FOR_EACH_SUBRTX_PTR.
22027
22028 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22029
22030         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
22031         with const_rtx parameters.
22032         * varasm.c (get_pool_constant): Likewise.
22033         * rtlanal.c (rtx_referenced_p_1): Delete.
22034         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
22035         Assert that the rtx we're looking for is nonnull.  Allow searches
22036         for constant pool SYMBOL_REFs.
22037
22038 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22039
22040         * reload1.c: Include rtl-iter.h.
22041         (note_reg_elim_costly): Turn from being a for_each_rtx callback
22042         to being a function that examines each subrtx itself.
22043         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
22044
22045 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22046
22047         * regcprop.c (cprop_find_used_regs_1): Delete.
22048         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
22049
22050 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22051
22052         * regcprop.c: Include rtl-iter.h.
22053         (kill_value): Take a const_rtx.
22054         (kill_autoinc_value): Turn from being a for_each_rtx callback
22055         to being a function that examines each subrtx itself.
22056         (copyprop_hardreg_forward_1): Update accordingly.
22057
22058 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22059
22060         * reg-stack.c: Include rtl-iter.h.
22061         (subst_stack_regs_in_debug_insn): Delete.
22062         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
22063         instead of for_each_rtx.
22064
22065 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22066
22067         * lower-subreg.c (find_decomposable_subregs): Turn from being
22068         a for_each_rtx callback to being a function that examines each
22069         subrtx itself.  Remove handling of null rtxes.
22070         (decompose_multiword_subregs): Update accordingly.
22071
22072 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22073
22074         * lower-subreg.c (adjust_decomposed_uses): Delete.
22075         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
22076         Remove handling of null rtxes.
22077
22078 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22079
22080         * lower-subreg.c: Include rtl-iter.h.
22081         (resolve_subreg_use): Turn from being a for_each_rtx callback
22082         to being a function that examines each subrtx itself.  Remove
22083         handling of null rtxes.
22084         (resolve_reg_notes, resolve_simple_move): Update accordingly.
22085         (decompose_multiword_subregs): Likewise.
22086
22087 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22088
22089         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
22090         to being a function that examines each subrtx itself.
22091         (simplify_using_condition, simplify_using_initial_values): Update
22092         accordingly.
22093
22094 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22095
22096         * loop-iv.c: Include rtl-iter.h.
22097         (find_single_def_src): New function.
22098         (replace_single_def_regs): Turn from being a for_each_rtx callback
22099         to being a function that examines each subrtx itself.
22100         (replace_in_expr, simplify_using_initial_values): Update accordingly.
22101
22102 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22103
22104         * jump.c (eh_returnjump_p_1): Delete.
22105         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
22106         Remove handling of null rtxes.
22107
22108 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22109
22110         * jump.c: Include rtl-iter.h.
22111         (returnjump_p_1): Delete.
22112         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
22113         Remove handling of null rtxes.
22114
22115 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22116
22117         * ira.c: Include rtl-iter.h.
22118         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
22119         to being a function that examines each subrtx itself.  Remove
22120         handling of null rtxes.
22121         (update_equiv_regs): Update call accordingly.
22122
22123 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22124
22125         * fwprop.c: Include rtl-iter.h.
22126         (varying_mem_p): Turn from being a for_each_rtx callback to being
22127         a function that examines each subrtx itself.
22128         (propagate_rtx): Update accordingly.
22129
22130 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22131
22132         * function.c: Include rtl-iter.h
22133         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
22134         callback to being a function that examines each subrtx itself.
22135         Return the changed flag.
22136         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
22137         (instantiate_virtual_regs): Update calls accordingly.
22138
22139 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22140
22141         * final.c: Include rtl-iter.h.
22142         (mark_symbol_ref_as_used): Delete.
22143         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
22144         for_each_rtx.
22145
22146 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22147
22148         * emit-rtl.c: Include rtl-iter.h.
22149         (find_auto_inc): Turn from being a for_each_rtx callback to being
22150         a function that examines each subrtx itself.  Assume the first operand
22151         to an RTX_AUTOINC is the automodified register.
22152         (try_split): Update call accordingly.
22153
22154 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22155
22156         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
22157         Return a bool, inverting the result so that 0/false means "not ok".
22158         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
22159         subrtxes of a CONST.
22160         (mem_loc_descriptor, add_const_value_attribute)
22161         (resolve_addr_in_expr): Update calls accordingly.
22162
22163 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22164
22165         * dwarf2out.c: Include rtl-iter.h.
22166         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
22167         Remove unused data parameter.  Return a bool, inverting the result
22168         so that 0/false means "not ok".
22169         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
22170         instead of for_each_rtx.
22171
22172 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22173
22174         * dse.c: Include rtl-iter.h.
22175         (check_mem_read_rtx): Change void * parameter to real type.
22176         Remove return value.
22177         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
22178         for_each_rtx.  Don't handle null rtxes.
22179
22180 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22181
22182         * df-problems.c: Include rtl-iter.h.
22183         (find_memory): Turn from being a for_each_rtx callback to being
22184         a function that examines each subrtx itself.  Continue to look for
22185         volatile references even after a nonvolatile one has been found.
22186         (can_move_insns_across): Update calls accordingly.
22187
22188 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22189
22190         * ddg.c (walk_mems_2, walk_mems_1): Delete.
22191         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
22192         to iterate over subrtxes.  Return a bool rather than an int.
22193
22194 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22195
22196         * ddg.c: Include rtl-iter.h.
22197         (mark_mem_use_1): Rename to...
22198         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
22199         instead of for_each_rtx.
22200         (mem_read_insn_p): Update accordingly.
22201
22202 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22203
22204         * cse.c (change_cc_mode_args): Delete.
22205         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
22206         a function that examines each subrtx itself.  Take the fields of
22207         change_cc_mode_args as argument and return void.
22208         (cse_change_cc_mode_insn): Update calls accordingly.
22209
22210 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22211
22212         * cse.c (is_dead_reg): Change argument to const_rtx.
22213         (dead_debug_insn_data): Delete.
22214         (is_dead_debug_insn): Expand commentary.  Turn from being a
22215         for_each_rtx callback to being a function that examines
22216         each subrtx itself.  Take the fields of dead_debug_insn_data
22217         as argument.
22218         (delete_trivially_dead_insns): Update call accordingly.
22219
22220 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22221
22222         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
22223         being a for_each_rtx callback to being a function that examines
22224         each subrtx itself.
22225         (cse_extended_basic_block): Update call accordingly.
22226
22227 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22228
22229         * cse.c (check_dependence_data): Delete.
22230         (check_dependence): Change from being a for_each_rtx callback to being
22231         a function that examines all subrtxes itself.  Don't handle null rtxes.
22232         (invalidate): Update call accordingly.
22233
22234 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22235
22236         * cse.c: Include rtl-iter.h.
22237         (approx_reg_cost_1): Delete.
22238         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
22239         Don't handle null rtxes.
22240
22241 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22242
22243         * cfgcleanup.c: Include rtl-iter.h.
22244         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
22245         to being a function that examines each subrtx itself.
22246         (thread_jump): Update accordingly.
22247
22248 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22249
22250         * combine-stack-adj.c: Include rtl-iter.h.
22251         (record_stack_refs_data): Delete.
22252         (record_stack_refs): Turn from being a for_each_rtx callback
22253         to being a function that examines each subrtx itself.
22254         Take a pointer to the reflist.  Invert sense of return value
22255         so that true means success and false means failure.  Don't
22256         handle null rtxes.
22257         (combine_stack_adjustments_for_block): Update accordingly.
22258
22259 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22260
22261         * combine.c (record_truncated_value): Turn from being a for_each_rtx
22262         callback to a function that takes an rtx and returns a bool
22263         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
22264         for_each_rtx.
22265
22266 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22267
22268         * combine.c: Include rtl-iter.h.
22269         (unmentioned_reg_p_1): Delete.
22270         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
22271         Don't handle null rtxes.
22272
22273 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22274
22275         * calls.c: Include rtl-iter.h.
22276         (internal_arg_pointer_based_exp_1): Delete.
22277         (internal_arg_pointer_based_exp): Take a const_rtx.
22278         Use FOR_EACH_SUBRTX to iterate over subrtxes.
22279
22280 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22281
22282         * caller-save.c: Include rtl-iter.h.
22283         (add_used_regs_1): Delete.
22284         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
22285         to iterate over subrtxes.  Assert that any remaining pseudos
22286         have been spilled.
22287
22288 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22289
22290         * bt-load.c: Include rtl-iter.h.
22291         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
22292         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
22293         to iterate over subrtxes.
22294         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
22295         find_btr_use rather than btr_referenced_p.
22296
22297 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22298
22299         * alias.c: Include rtl-iter.h.
22300         (refs_newer_value_cb): Delete.
22301         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
22302
22303 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
22304
22305         * rtl-iter.h: New file.
22306         * rtlanal.c: Include it.
22307         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
22308         (generic_subrtx_iterator <T>::add_single_to_queue)
22309         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
22310         (generic_subrtx_iterator <T>::free_array): New functions.
22311         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
22312         (generic_subrtx_iterator <const_rtx_accessor>)
22313         (generic_subrtx_iterator <rtx_var_accessor>
22314         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
22315         (setup_reg_subrtx_bounds): New function.
22316         (init_rtlanal): Call it.
22317
22318 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
22319
22320         PR target/62261
22321         * config/sh/sh.md (ashlsi3): Handle negative shift count for
22322         TARGET_SHMEDIA.
22323         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
22324
22325 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
22326
22327         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
22328
22329 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22330
22331         * rtl.h (JUMP_LABEL_AS_INSN): New.
22332
22333 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22334
22335         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
22336         rtx_expr_list **.
22337         (alloc_EXPR_LIST): Strengthen return type from rtx to
22338         rtx_expr_list *.
22339         (remove_free_EXPR_LIST_node): Likewise for param.
22340         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
22341         from rtx to rtx_expr_list *.
22342         * sched-int.h (struct deps_desc): Strengthen fields
22343         "pending_read_mems" and "pending_write_mems" from rtx to
22344         rtx_expr_list *.
22345
22346         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
22347         rtx to rtx_expr_list *.
22348         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
22349         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
22350         rtx_expr_list **.
22351         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
22352         from rtx to rtx_expr_list *.
22353         * loop-iv.c (simplify_using_initial_values): Strengthen local
22354         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
22355         "pnote_next" from rtx * to rtx_expr_list **.
22356         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
22357         param "exprp" from rtx * to rtx_expr_list **.
22358         (add_insn_mem_dependence): Strengthen local "mem_list" from
22359         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
22360         to rtx_expr_list *.
22361         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
22362         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
22363         param "old_mems_p" from rtx * to rtx_expr_list **.
22364         * var-tracking.c (struct adjust_mem_data): Strengthen field
22365         "side_effects" from rtx to rtx_expr_list *.
22366         (adjust_insn): Replace NULL_RTX with NULL when assigning to
22367         rtx_expr_list *.
22368         (prepare_call_arguments): Likewise.
22369
22370 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22371
22372         * function.h (struct rtl_data): Strengthen field
22373         "x_stack_slot_list" from rtx to rtx_expr_list *.
22374
22375         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
22376         when assigning to stack_slot_list.
22377
22378 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22379
22380         * function.h (struct rtl_data): Strengthen field
22381         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
22382         * rtl.h (remove_node_from_expr_list): Strengthen second param from
22383         rtx * to rtx_expr_list **.
22384
22385         * cfgbuild.c (make_edges): In loop over
22386         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
22387         rtx_expr_list *, and use methods of the latter class to clarify
22388         the code.
22389         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
22390         rtx_expr_list *, and use methods of the latter class to clarify
22391         the code.
22392         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
22393         * reload1.c (set_initial_label_offsets): Likewise for local "x".
22394         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
22395         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
22396         to rtx_expr_list *.  Use methods of the latter class to clarify
22397         the code.
22398
22399 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22400
22401         * function.h (struct expr_status): Strengthen field
22402         "x_forced_labels" from rtx to rtx_expr_list *.
22403
22404         * cfgbuild.c (make_edges): Split local "x" into two locals,
22405         strengthening one from rtx to rtx_expr_list *, and using methods
22406         of said class.
22407         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
22408         loop over forced_labels, introduce strengthen it from rtx to
22409         rtx_expr_list *, using methods to clarify the code.
22410         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
22411         to rtx_expr_list *, using methods of said class to clarify the
22412         code.
22413         * reload1.c (set_initial_label_offsets): Split local "x" into two
22414         per-loop variables, strengthening the first from rtx to
22415         rtx_expr_list * and using methods.
22416
22417 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22418
22419         * coretypes.h (class rtx_expr_list): Add forward declaration.
22420         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
22421         * gengenrtl.c (special_rtx): Add EXPR_LIST.
22422         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
22423         invariant: GET_CODE (X) == EXPR_LIST.
22424         (is_a_helper <rtx_expr_list *>::test): New.
22425         (rtx_expr_list::next): New.
22426         (rtx_expr_list::element): New.
22427         (gen_rtx_EXPR_LIST): New.
22428
22429 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22430
22431         * varasm.c (mark_constants): Convert a GET_CODE check into a
22432         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
22433         Use methods of rtx_sequence to clarify the code.
22434
22435 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22436
22437         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
22438         local "seq" via a checked cast, and use methods of rtx_sequence
22439         to simplify the code.
22440
22441 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22442
22443         * resource.c (mark_referenced_resources): Strengthen local
22444         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
22445         using methods of rtx_sequence to clarify the code.
22446         (find_dead_or_set_registers): Within the switch statement, convert
22447         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
22448         the JUMP_P handling, introduce another local "seq", adding a
22449         checked cast to rtx_sequence *.  In both cases, use methods of
22450         rtx_sequence to clarify the code.
22451         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
22452         via a checked cast, and use methods of rtx_sequence to simplify
22453         the code.
22454
22455 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22456
22457         * reorg.c (redundant_insn): In two places in the function, replace
22458         a check of GET_CODE with a dyn_cast, introducing local "seq", and
22459         usings methods of rtx_sequence to clarify the code.
22460
22461 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22462
22463         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
22464         local "seq" with a checked cast, and use methods of rtx_sequence
22465         to clarify the code.
22466
22467 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22468
22469         * function.c (contains): Introduce local "seq" for PATTERN (insn),
22470         with a checked cast, in the region for where we know it's a
22471         SEQUENCE.  Use methods of rtx_sequence.
22472
22473 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22474
22475         * final.c (get_attr_length_1): Replace GET_CODE check with a
22476         dyn_cast, introducing local "seq" and the use of methods of
22477         rtx_sequence.
22478         (shorten_branches): Likewise, introducing local "body_seq".
22479         Strengthen local "inner_insn" from rtx to rtx_insn *.
22480         (reemit_insn_block_notes): Replace GET_CODE check with a
22481         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
22482         Use methods of rtx_sequence.
22483         (final_scan_insn): Likewise, introducing local "seq" for when
22484         "body" is known to be a SEQUENCE, using its methods.
22485
22486 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22487
22488         * except.c (can_throw_external): Strengthen local "seq" from rtx
22489         to rtx_sequence *.  Use methods of rtx_sequence.
22490         (insn_nothrow_p): Likewise.
22491
22492 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22493
22494         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
22495         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
22496         Use methods of rtx_sequence.
22497         (scan_trace): Likewise for local "pat".
22498
22499 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22500
22501         * coretypes.h (class rtx_sequence): Add forward declaration.
22502         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
22503         invariant: GET_CODE (X) == SEQUENCE.
22504         (is_a_helper <rtx_sequence *>::test): New.
22505         (is_a_helper <const rtx_sequence *>::test): New.
22506         (rtx_sequence::len): New.
22507         (rtx_sequence::element): New.
22508         (rtx_sequence::insn): New.
22509
22510 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22511
22512         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
22513         rtx_insn_list **.
22514         (alloc_INSN_LIST): Strengthen return type from rtx to
22515         rtx_insn_list *.
22516         (copy_INSN_LIST): Likewise for return type and param.
22517         (concat_INSN_LIST): Likewise for both params and return type.
22518         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
22519         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
22520         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
22521         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
22522
22523         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
22524         "implicit_sets", "control_uses", "clobbers" from rtx to
22525         rtx_insn_list *.
22526         (struct deps_desc): Likewise for fields "pending_read_insns",
22527         "pending_write_insns", "pending_jump_insns",
22528         "last_pending_memory_flush", "last_function_call",
22529         "last_function_call_may_noreturn", "sched_before_next_call",
22530         "sched_before_next_jump".
22531         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
22532         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
22533
22534         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
22535         from rtx to rtx_insn_list *.
22536         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
22537         rtx_insn_list *.
22538
22539         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
22540         to rtx_insn_list **.
22541         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
22542         rtx_insn_list *.
22543         (queue_insn): Likewise for local "link".
22544         (struct haifa_saved_data): Strengthen field "insn_queue" from
22545         rtx * to rtx_insn_list **.
22546         (save_backtrack_point): Update allocation of save->insn_queue to
22547         reflect the strengthening of elements from rtx to rtx_insn_list *.
22548         (queue_to_ready): Strengthen local "link" from rtx to
22549         rtx_insn_list *; use methods "next" and "insn" when traversing the
22550         list.
22551         (early_queue_to_ready): Likewise for locals "link", "next_link",
22552         "prev_link".
22553         (schedule_block): Update allocation of insn_queue to reflect the
22554         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
22555         local "link" from rtx to rtx_insn_list *, and use methods when
22556         working it.
22557         (add_to_speculative_block): Strengthen locals "twins" and
22558         "next_node" from rtx to rtx_insn_list *, and use methods when
22559         working with them.  Strengthen local "twin" from rtx to
22560         rtx_insn *, eliminating a checked cast.
22561         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
22562         from rtx to rtx_insn_list *, and use methods when working with
22563         them.
22564
22565         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
22566         from rtx to rtx_insn_list *, adding a checked cast.
22567         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
22568         rtx_insn_list **.
22569         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
22570         "newlink" from rtx to rtx_insn_list *.  Strengthen local
22571         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
22572         from rtx to rtx_insn *.
22573         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
22574         from rtx to rtx_insn_list *.  Use methods of the latter class.
22575         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
22576         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
22577         (remove_free_INSN_LIST_node): Strengthen return type and local
22578         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
22579         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
22580         rtx_insn_list *, using "insn" method.
22581
22582         * sched-deps.c (add_dependence_list):  Strengthen param "list"
22583         from rtx to rtx_insn_list *, and use methods when working with it.
22584         (add_dependence_list_and_free):  Strengthen param "listp" from
22585         rtx * to rtx_insn_list **.
22586         (remove_from_dependence_list): Strenghten param "listp" from rtx *
22587         to rtx_insn_list **, and use methods when working with *listp.
22588         (remove_from_both_dependence_lists): Strengthen param "listp" from
22589         rtx * to rtx_insn_list **
22590         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
22591         to rtx_insn_list **.  Eliminate local "link", in favor of two new
22592         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
22593         respectively.
22594         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
22595         by introducing local "cond_deps".
22596         (remove_from_deps): Strengthen param "insn" from rtx to
22597         rtx_insn *.
22598
22599         * sched-rgn.c (concat_insn_mem_list): Strengthen param
22600         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
22601         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
22602         Use methods of rtx_insn_list.
22603
22604         * store-motion.c (struct st_expr): Strengthen fields
22605         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
22606         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
22607         rtx_insn_list *.
22608         (find_moveable_store): Split out "tmp" into multiple more-tightly
22609         scoped locals.  Use methods of rtx_insn_list *.
22610         (compute_store_table): Strengthen local "tmp" from rtx to
22611         rtx_insn *.  Use methods of rtx_insn_list *.
22612
22613 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22614
22615         * coretypes.h (class rtx_insn_list): Add forward declaration.
22616         * rtl.h (class rtx_insn_list): New subclass of rtx_def
22617         (is_a_helper <rtx_insn_list *>::test): New.
22618         (rtx_insn_list::next): New.
22619         (rtx_insn_list::insn): New.
22620         (gen_rtx_INSN_LIST): Add prototype.
22621         * emit-rtl.c (gen_rtx_INSN_LIST): New.
22622         * gengenrtl.c (special_rtx): Add INSN_LIST.
22623
22624 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22625
22626         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
22627         "prev" from rtx to rtx_insn *.
22628
22629 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22630
22631         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
22632         functions.  Require merely an rtx for now, not an rtx_insn *.
22633         (BLOCK_FOR_INSN): Likewise.
22634         (INSN_LOCATION): Likewise.
22635         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
22636
22637 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22638
22639         * rtl.h (PATTERN): Convert this macro into a pair of inline
22640         functions, for now, requiring const_rtx and rtx.
22641
22642 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22643
22644         * target.def (unwind_emit): Strengthen param "insn" from rtx to
22645         rtx_insn *.
22646         (final_postscan_insn): Likewise.
22647         (adjust_cost): Likewise.
22648         (adjust_priority): Likewise.
22649         (variable_issue): Likewise.
22650         (macro_fusion_pair_p): Likewise.
22651         (dfa_post_cycle_insn): Likewise.
22652         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
22653         (first_cycle_multipass_issue): Likewise.
22654         (dfa_new_cycle): Likewise.
22655         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
22656         (speculate_insn): Likewise for param "insn".
22657         (gen_spec_check): Likewise for params "insn" and "label".
22658         (get_insn_spec_ds): Likewise for param "insn".
22659         (get_insn_checked_ds): Likewise.
22660         (dispatch_do): Likewise.
22661         (dispatch): Likewise.
22662         (cannot_copy_insn_p): Likewise.
22663         (invalid_within_doloop): Likewise.
22664         (legitimate_combined_insn): Likewise.
22665         (needed): Likewise.
22666         (after): Likewise.
22667
22668         * doc/tm.texi: Automatically updated to reflect changes to
22669         target.def.
22670
22671         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
22672         working with insn.
22673         (schedule_block): Likewise.
22674         (sched_init): Likewise.
22675         (sched_speculate_insn): Strengthen param "insn" from rtx to
22676         rtx_insn *.
22677         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
22678         working with insn.
22679         * hooks.c (hook_bool_rtx_true): Rename to...
22680         hook_bool_rtx_insn_true): ...this, and strengthen first param from
22681         rtx to rtx_insn *.
22682         (hook_constcharptr_const_rtx_null): Rename to...
22683         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22684         first param from const_rtx to const rtx_insn *.
22685         (hook_bool_rtx_int_false): Rename to...
22686         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22687         param from rtx to rtx_insn *.
22688         (hook_void_rtx_int): Rename to...
22689         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22690         rtx to rtx_insn *.
22691
22692         * hooks.h (hook_bool_rtx_true): Rename to...
22693         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
22694         rtx to rtx_insn *.
22695         (hook_bool_rtx_int_false): Rename to...
22696         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22697         param from rtx to rtx_insn *.
22698         (hook_void_rtx_int): Rename to...
22699         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22700         rtx to rtx_insn *.
22701         (hook_constcharptr_const_rtx_null): Rename to...
22702         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22703         first param from const_rtx to const rtx_insn *.
22704
22705         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
22706         and local "prev" from rtx to rtx_insn *.
22707
22708         * sched-int.h (sched_speculate_insn): Strengthen first param from
22709         rtx to rtx_insn *.
22710
22711         * sel-sched.c (create_speculation_check): Likewise for local "label".
22712         * targhooks.c (default_invalid_within_doloop): Strengthen param
22713         "insn" from const_rtx to const rtx_insn *.
22714         * targhooks.h (default_invalid_within_doloop): Strengthen param
22715         from const_rtx to const rtx_insn *.
22716
22717         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
22718         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
22719
22720         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
22721         "insn".
22722         (arc_invalid_within_doloop): Likewise, with const.
22723
22724         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
22725         (arm_cannot_copy_insn_p): Likewise for param "insn".
22726         (arm_unwind_emit): Likewise.
22727
22728         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
22729         "dep_insn".
22730
22731         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
22732         (c6x_variable_issue): Likewise.  Removed now-redundant checked
22733         cast.
22734         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
22735
22736         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
22737         Likewise for param "insn".
22738         (epiphany_mode_after): Likewise.
22739         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
22740         params "insn", "dep_insn".
22741         (epiphany_mode_needed): Likewise for param "insn".
22742         (epiphany_mode_after): Likewise.
22743
22744         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
22745         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22746         (ix86_avx_u128_mode_needed): Likewise.
22747         (ix86_i387_mode_needed): Likewise.
22748         (ix86_mode_needed): Likewise.
22749         (ix86_avx_u128_mode_after): Likewise.
22750         (ix86_mode_after): Likewise.
22751         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
22752         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
22753         (ix86_adjust_priority): Likewise for param "insn".
22754         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
22755         (do_dispatch): Likewise.
22756         (has_dispatch): Likewise.
22757         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
22758
22759         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
22760         reflect renaming of default hook implementation from
22761         hook_constcharptr_const_rtx_null to
22762         hook_constcharptr_const_rtx_insn_null.
22763         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
22764         rtx to rtx_insn *.
22765         (ia64_variable_issue): Likewise for param "insn".
22766         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
22767         (ia64_dfa_new_cycle): Likewise.
22768         (ia64_get_insn_spec_ds): Likewise.
22769         (ia64_get_insn_checked_ds): Likewise.
22770         (ia64_speculate_insn): Likewise.
22771         (ia64_gen_spec_check): Likewise for params "insn", "label".
22772         (ia64_asm_unwind_emit): Likewise for param "insn".
22773
22774         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
22775
22776         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
22777         "insn", "def_insn".
22778         (m68k_sched_variable_issue): Likewise for param "insn".
22779
22780         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
22781         "def_insn".
22782
22783         * config/microblaze/microblaze.c (microblaze_adjust_cost):
22784         Likewise for params "insn", "dep".
22785
22786         * config/mips/mips.c (mips_adjust_cost): Likewise.
22787         (mips_variable_issue): Likewise for param "insn".
22788         (mips_final_postscan_insn): Likewise.
22789
22790         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
22791         for params "insn", "dep".
22792
22793         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
22794         "dep_insn".
22795         (pa_adjust_priority): Likewise for param "insn".
22796
22797         * config/picochip/picochip.c (picochip_sched_adjust_cost):
22798         Likewise for params "insn", "dep_insn".
22799
22800         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
22801         param "insn".
22802         (rs6000_variable_issue): Likewise.
22803         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
22804         (rs6000_debug_adjust_cost): Likewise.
22805         (rs6000_adjust_priority): Likewise for param "insn".
22806         (rs6000_use_sched_lookahead_guard): Likewise.
22807         (get_next_active_insn): Likewise for return type and both params.
22808         (redefine_groups): Likewise for params "prev_head_insn", "tail"
22809         and locals "insn", "next_insn".
22810         (pad_groups): Likewise.
22811
22812         * config/s390/s390.c (s390_adjust_priority): Likewise for param
22813         "insn".
22814         (s390_cannot_copy_insn_p): Likewise.
22815         (s390_sched_variable_issue): Likewise for third param, eliminating
22816         checked cast.
22817         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22818         default hook implementation from hook_constcharptr_const_rtx_null
22819         to hook_constcharptr_const_rtx_insn_null.
22820
22821         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22822         from rtx to rtx_insn *.
22823         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22824         (sh_variable_issue): Likewise for param "insn".
22825         (sh_dfa_new_cycle): Likewise.
22826         (sh_mode_needed): Likewise.
22827         (sh_mode_after): Likewise.
22828
22829         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22830         params "insn", "dep_insn".
22831         (hypersparc_adjust_cost): Likewise.
22832         (sparc_adjust_cost): Likewise.
22833
22834         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22835         param, eliminated checked cast.
22836         (spu_sched_adjust_cost): Likewise for first and third params.
22837
22838         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22839         params "insn" and "dep_insn" from rtx to rtx_insn *.
22840
22841         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22842
22843 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22844
22845         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22846         (set_is_load_p): ...this, updating to work on a SET pattern rather
22847         than an insn.
22848         (is_store_insn): Rename to...
22849         (set_is_store_p): ...this, updating to work on a SET pattern
22850         rather than an insn.
22851         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22852         top of function to where it is needed.  Rewrite the bogus
22853         condition that checks for "insn" and "dep" being PARALLEL to
22854         instead use single_set, introducing locals "insn_set" and
22855         "dep_set".  Given that we only ever returned "cost" for a non-pair
22856         of SETs, bail out early if we don't have a pair of SET.
22857         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22858         use the new locals "insn_set" and "dep_set", and update calls to
22859         is_load_insn and is_store_insn to be calls to set_is_load_p and
22860         set_is_store_p.
22861
22862 2014-08-27  Guozhi Wei  <carrot@google.com>
22863
22864         PR target/62262
22865         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22866         amount before using it.
22867
22868 2014-08-27  Richard Biener  <rguenther@suse.de>
22869
22870         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22871         get_maxval_strlen inside a more useful API.
22872         (gimple_fold_builtin_with_strlen): Remove and fold into ...
22873         (gimple_fold_builtin): ... caller.
22874         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22875         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22876         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22877         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22878         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22879         gimple_fold_builtin_sprintf): Adjust to compute maxval
22880         themselves.
22881
22882 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
22883
22884         PR other/62248
22885         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22886
22887 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22888             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22889             Anna Tikhonova  <anna.tikhonova@intel.com>
22890             Ilya Tocar  <ilya.tocar@intel.com>
22891             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22892             Ilya Verbin  <ilya.verbin@intel.com>
22893             Kirill Yukhin  <kirill.yukhin@intel.com>
22894             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22895
22896         * config/i386/sse.md
22897         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22898         Use `concat_tg_mode' attribute to determine asm register size.
22899
22900 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22901             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22902             Anna Tikhonova  <anna.tikhonova@intel.com>
22903             Ilya Tocar  <ilya.tocar@intel.com>
22904             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22905             Ilya Verbin  <ilya.verbin@intel.com>
22906             Kirill Yukhin  <kirill.yukhin@intel.com>
22907             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22908
22909         * config/i386/sse.md
22910         (define_mode_iterator VI48_AVX512VL): New.
22911         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22912         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22913         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22914         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22915         with VI1): Change mode iterator.
22916         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22917         with VI_ULOADSTORE_BW_AVX512VL): New.
22918         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22919         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22920         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22921         with VI1): Change mode iterator.
22922         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22923         with VI_ULOADSTORE_BW_AVX512VL): New.
22924         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22925         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22926         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22927         with VI1): Change mode iterator.
22928         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22929         with VI_ULOADSTORE_BW_AVX512VL): New.
22930         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22931         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22932         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22933         (define_insn "<avx512>_storedqu<mode>_mask" with
22934         VI48_AVX512VL): New.
22935         (define_insn "<avx512>_storedqu<mode>_mask" with
22936         VI12_AVX512VL): Ditto.
22937
22938 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22939             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22940             Anna Tikhonova  <anna.tikhonova@intel.com>
22941             Ilya Tocar  <ilya.tocar@intel.com>
22942             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22943             Ilya Verbin  <ilya.verbin@intel.com>
22944             Kirill Yukhin  <kirill.yukhin@intel.com>
22945             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22946
22947         * config/i386/sse.md
22948         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22949         (define_mode_iterator VI48_AVX512BW): New.
22950         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22951         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22952         with VI48_AVX2_48_AVX512F): New.
22953         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22954         with VI2_AVX512VL): Ditto.
22955
22956 2014-08-27  Richard Biener  <rguenther@suse.de>
22957
22958         PR middle-end/62239
22959         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22960         (fold_builtin_3): Do not fold strcat_chk here.
22961         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22962         from builtins.c.
22963         (gimple_fold_builtin): Fold strcat_chk here.
22964
22965 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
22966
22967         * dwarf2out.h (dwarf2out_decl): Remove prototype.
22968         * dwarf2out.c (dwarf2out_decl): Make static.
22969
22970 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
22971
22972         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22973
22974 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22975
22976         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22977         from rtx to rtx_insn *.
22978         (cselib_lookup_from_insn): Likewise for final param.
22979         (cselib_subst_to_values_from_insn): Likewise.
22980         (cselib_add_permanent_equiv): Likewise.
22981
22982         * cselib.c (cselib_current_insn): Likewise for this variable.
22983         (cselib_subst_to_values_from_insn): Likewise for param "insn".
22984         (cselib_lookup_from_insn): Likewise.
22985         (cselib_add_permanent_equiv): Likewise for param "insn" and local
22986         "save_cselib_current_insn".
22987         (cselib_process_insn): Replace use of NULL_RTX with NULL.
22988
22989         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22990         from rtx to rtx_insn *.
22991
22992 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22993
22994         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22995         rtx_insn *.
22996
22997 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22998
22999         * df.h (df_dump_insn_problem_function): Strengthen first param of
23000         this callback from const_rtx to const rtx_insn *.
23001         (struct df_insn_info): Strengthen field "insn" from rtx to
23002         rtx_insn *.
23003         (DF_REF_INSN): Eliminate this function, reinstating the older
23004         macro definition.
23005         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
23006         (df_reg_defined): Likewise.
23007         (df_find_use): Likewise.
23008         (df_reg_used): Likewise.
23009         (df_dump_insn_top): Strengthen param 1 from const_rtx to
23010         const rtx_insn *.
23011         (df_dump_insn_bottom): Likewise.
23012         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
23013         (df_insn_debug_regno): Likewise.
23014         (debug_df_insn): Likewise.
23015         (df_rd_simulate_one_insn): Likewise for param 2.
23016         (df_word_lr_simulate_defs): Likewise for param 1.
23017         (df_word_lr_simulate_uses): Likewise.
23018         (df_md_simulate_one_insn): Likewise for param 2.
23019         (df_simulate_find_noclobber_defs): Likewise for param 1.
23020         (df_simulate_find_defs): Likewise.
23021         (df_simulate_defs): Likewise.
23022         (df_simulate_uses): Likewise.
23023         (df_simulate_one_insn_backwards): Likewise for param 2.
23024         (df_simulate_one_insn_forwards): Likewise.
23025         (df_uses_create): Likewise for param 2.
23026         (df_insn_create_insn_record): Likewise for param 1.
23027         (df_insn_delete): Likewise.
23028         (df_insn_rescan): Likewise.
23029         (df_insn_rescan_debug_internal): Likewise.
23030         (df_insn_change_bb): Likewise.
23031         (df_notes_rescan): Likewise.
23032         * rtl.h (remove_death): Likewise for param 2.
23033         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
23034         const rtx_insn *.
23035         * sched-int.h (reemit_notes): Strengthen param from rtx to
23036         rtx_insn *.
23037         * valtrack.h (propagate_for_debug): Likewise for param 1.
23038
23039         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
23040         local "tmp_rtx" from const_rtx to const rtx_insn *.
23041         * combine.c (remove_death): Strengthen param "insn" from rtx to
23042         rtx_insn *.
23043         (move_deaths): Likewise for local "where_dead".
23044         * cse.c (delete_trivially_dead_insns): Introduce local
23045         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
23046         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
23047         rtx_insn *.
23048         (df_reg_defined): Likewise.
23049         (df_find_use): Likewise.
23050         (df_reg_used): Likewise.
23051         (df_dump_insn_problem_data): Strengthen param "insn" from
23052         const_rtx to const rtx_insn *.
23053         (df_dump_insn_top): Likewise.
23054         (df_dump_insn_bottom): Likewise.
23055         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
23056         (df_insn_debug_regno): Likewise.
23057         (debug_df_insn): Likewise.
23058         (DF_REF_INSN): Delete.
23059         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
23060         from rtx to rtx_insn *.
23061         (df_chain_insn_top_dump): Strengthen param "insn" from
23062         const_rtx to const rtx_insn *.
23063         (df_chain_insn_bottom_dump): Likewise.
23064         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
23065         rtx_insn *.
23066         (df_word_lr_simulate_uses): Likewise.
23067         (df_print_note): Likewise.
23068         (df_remove_dead_and_unused_notes): Likewise.
23069         (df_set_unused_notes_for_mw): Likewise.
23070         (df_set_dead_notes_for_mw): Likewise.
23071         (df_create_unused_note): Likewise.
23072         (df_simulate_find_defs): Likewise.
23073         (df_simulate_find_uses): Likewise.
23074         (df_simulate_find_noclobber_defs): Likewise.
23075         (df_simulate_defs): Likewise.
23076         (df_simulate_uses): Likewise.
23077         (df_simulate_one_insn_backwards): Likewise.
23078         (df_simulate_one_insn_forwards): Likewise.
23079         (df_md_simulate_one_insn): Likewise.
23080         * df-scan.c (df_uses_create): Likewise.
23081         (df_insn_create_insn_record): Likewise.
23082         (df_insn_delete): Likewise.
23083         (df_insn_rescan): Likewise.
23084         (df_insn_rescan_debug_internal): Likewise.
23085         (df_insn_change_bb): Likewise.
23086         (df_notes_rescan): Likewise.
23087         (df_refs_add_to_chains): Likewise.
23088         (df_insn_refs_verify): Likewise.
23089         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
23090         when invoking df_insn_delete.
23091         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
23092         (set_unique_reg_note): Add checked cast.
23093         * final.c (cleanup_subreg_operands): Likewise.
23094         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
23095         "insn" from rtx to rtx_insn *.
23096         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
23097         "last" from rtx to rtx_insn *.
23098         * ira-emit.c (change_regs_in_insn): New function.
23099         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
23100         Invoke change_regs_in_insn rather than change_regs.
23101         * ira.c (update_equiv_regs): Strengthen locals "insn",
23102         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
23103         for_each_rtx_in_insn rather than for_each_rtx.
23104         * recog.c (confirm_change_group): Add checked casts.
23105         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
23106         Add checked cast.
23107         (peep2_fill_buffer): Add checked cast.
23108         * rtlanal.c (remove_note): Likewise.
23109         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
23110         locals "next" "end" from rtx to rtx_insn *.
23111
23112 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23113
23114         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
23115         to rtx_insn *.
23116         (struct reg_use_data): Likewise for field "insn".
23117         (insn_cost): Likewise for param.
23118         (real_insn_for_shadow): Likewise for return type and param.
23119         (increase_insn_priority): Likewise for param 1.
23120         (debug_dependencies): Likewise for both params.
23121
23122         * haifa-sched.c (insn_delay): Likewise for param "insn".
23123         (real_insn_for_shadow): Likewise for return type and param "insn".
23124         (update_insn_after_change): Likewise for param "insn".
23125         (recompute_todo_spec): Likewise for param "next" and locals "pro",
23126         "other".
23127         (insn_cost): Likewise for param "insn".
23128         (increase_insn_priority): Likewise.
23129         (calculate_reg_deaths): Likewise.
23130         (setup_insn_reg_pressure_info): Likewise.
23131         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
23132         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
23133         (model_recompute): Likewise.
23134         (must_restore_pattern_p): Likewise for param "next".
23135         (model_excess_cost): Likewise for param "insn".
23136         (queue_remove): Likewise.
23137         (adjust_priority): Likewise for param "prev".
23138         (update_register_pressure): Likewise for param "insn".
23139         (setup_insn_max_reg_pressure): Likewise for local "insn".
23140         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
23141         (model_add_to_schedule): Likewise.
23142         (model_reset_queue_indices): Likewise for local "insn".
23143         (unschedule_insns_until): Strengthen local "recompute_vec" from
23144         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
23145         "con" from rtx to rtx_insn *.
23146         (restore_last_backtrack_point): Likewise for both locals "x". Add
23147         checked casts.
23148         (estimate_insn_tick): Likewise for param "insn".
23149         (commit_schedule): Likewise for params "prev_head", "tail" and
23150         local "x".
23151         (verify_shadows): Likewise for locals "i1", "i2".
23152         (dump_insn_stream): Likewise for params "head", "tail" and locals
23153         "next_tail", "insn".
23154         (schedule_block): Likewise for locals "insn", "x".  Add a checked
23155         cast.
23156         (fix_inter_tick): Likewise for params "head", "tail".
23157         (create_check_block_twin): Likewise for local "jump".
23158         (haifa_change_pattern): Likewise for param "insn".
23159         (haifa_speculate_insn): Likewise.
23160         (dump_new_block_header): Likewise for params "head", "tail".
23161         (fix_jump_move): Likewise for param "jump".
23162         (move_block_after_check): Likewise.
23163         (sched_init_insn_luid): Likewise for param "insn".
23164         (sched_init_luids): Likewise for local "insn".
23165         (insn_luid): Likewise for param "insn".
23166         (init_h_i_d): Likewise.
23167         (haifa_init_h_i_d): Likewise for local "insn".
23168         (haifa_init_insn): Likewise for param "insn".
23169         * sched-deps.c (add_dependence): Likewise for local "real_pro",
23170         "other".
23171         (create_insn_reg_use): Likewise for param "insn".
23172         (setup_insn_reg_uses): Likewise.  Add a checked cast.
23173         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
23174         "tail" from rtx to rtx_insn *.
23175         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
23176         "insn", "next_tail".
23177
23178 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23179
23180         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
23181         from rtx to rtx_insn *.
23182         (model_add_to_schedule): Likewise for locals "start", "end",
23183         "iter".
23184
23185 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23186
23187         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
23188         rtx_insn *.
23189         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
23190         "to" and locals "insn", "next", "copy".  Remove now-redundant
23191         checked cast.
23192
23193 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23194
23195         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
23196         rtx_insn * and param 4 from rtx * to rtx_insn **.
23197         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
23198         param 2 from rtx * to rtx_insn **.
23199
23200         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
23201         rtx_insn * and final param from rtx * to rtx_insn **.
23202
23203         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
23204         from rtx to rtx_insn *.
23205         (try_head_merge_bb): Likewise for both locals named "move_upto".
23206         * df-problems.c (can_move_insns_across): Likewise for params
23207         "from", "to", "across_from", "across_to" and locals "insn",
23208         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
23209         rtx_insn **.
23210         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
23211         from rtx to rtx_insn *.
23212         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
23213         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
23214         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
23215         rtx_insn *.
23216         (noce_try_abs): Likewise.
23217         (noce_get_condition): Likewise for param "jump".  Strengthen param
23218         "earliest" from rtx * to rtx_insn **.
23219         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
23220         rtx_insn *.
23221         (find_cond_trap): Likewise.
23222         (dead_or_predicable): Likewise for local "earliest".
23223         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
23224         checked cast.
23225         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
23226         and local "prev".  Strengthen param "earliest" from rtx * to
23227         rtx_insn **.
23228         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
23229         Strengthen param "earliest" from rtx * to rtx_insn **.
23230
23231 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23232
23233         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
23234         "to" and local "insn" from rtx to rtx_insn *.
23235
23236 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23237
23238         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
23239         from rtx to rtx_insn *.
23240         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
23241         (code_motion_path_driver): Likewise for local "last_insn".
23242         (simplify_changed_insns): Likewise for local "insn".
23243
23244 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23245
23246         * rtl.h (push_to_sequence): Strengthen param from rtx to
23247         rtx_insn *.
23248         (push_to_sequence2): Likewise for both params.
23249         (delete_insns_since): Likewise for param.
23250         (reorder_insns_nobb): Likewise for all three params.
23251         (set_new_first_and_last_insn): Likewise for both params.
23252
23253         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
23254         rtx_insn *.  Remove now-redundant cast.
23255         (set_last_insn): Likewise.
23256
23257         * builtins.c (expand_builtin_return): Strengthen local
23258         "call_fusage" from rtx to rtx_insn *.
23259         * cfgrtl.c (create_basic_block_structure): Likewise for local
23260         "after".
23261         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
23262         "first", "last" and local "insn".
23263         (delete_insns_since): Likewise for param "from".
23264         (reorder_insns_nobb): Likewise for params "from", "to", "after"
23265         and local "x".
23266         (push_to_sequence): Likewise for param "first" and local "last".
23267         (push_to_sequence2): Likewise for params "first" and "last".
23268         * lra.c (emit_add3_insn): Likewise for local "last".
23269         (lra_emit_add): Likewise.
23270         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
23271         "last_insn".
23272         (process_address_1): Likewise for locals "insn", last".
23273         * modulo-sched.c (ps_first_note): Likewise for return type.
23274         * optabs.c (expand_binop_directly): Likewise for param "last".
23275
23276 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23277
23278         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
23279         to rtx_insn*.
23280         * emit-rtl.c (get_last_insn_anywhere): Likewise.
23281
23282 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23283
23284         * function.h (struct sequence_stack): Strengthen fields "first"
23285         and "last" from rtx to rtx_insn *.
23286         (struct emit_status): Likewise for fields "x_first_insn" and
23287         "x_last_insn".
23288
23289         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
23290         (set_first_insn): Add checked cast.
23291         (get_last_insn): Remove now-redundant checked cast.
23292         (set_last_insn): Add checked cast.
23293
23294         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
23295         "saved_first" and "saved_last" from rtx to rtx_insn *.
23296
23297 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23298
23299         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
23300         (unlink_insn_chain): Strengthen both params from rtx to
23301         rtx_insn *.
23302
23303         * cfgrtl.c (cfg_layout_function_header): Likewise for this
23304         variable.
23305         (unlink_insn_chain): Likewise for params "first" and "last".
23306         Remove now-redundant checked cast.
23307         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
23308         (fixup_reorder_chain): Strengthen local "insn" from rtx to
23309         rtx_insn *.
23310         * emit-rtl.c (link_insn_into_chain): Likewise for all three
23311         params.
23312         (add_insn): Likewise for param "insn" and local "prev".
23313         (add_insn_after_nobb): Likewise for both params and local "next".
23314         (add_insn_before_nobb): Likewise for both params and local "prev".
23315         (add_insn_after): Rename param "after" to "uncast_after",
23316         introducing local "after" with another checked cast.
23317         (add_insn_before): Rename params "insn" and "before", giving them
23318         "uncast_" prefixes, adding the old names back using checked casts.
23319         (emit_note_after): Likewise for param "after".
23320         (emit_note_before): Likewise for param "before".
23321         (emit_label): Add a checked cast.
23322
23323 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23324
23325         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
23326         "insn" from rtx to rtx_insn *.
23327
23328         * cselib.c (cselib_record_sets_hook): Likewise.
23329
23330         * var-tracking.c (add_with_sets): Likewise, renaming back from
23331         "uncast_insn" to "insn" and eliminating the checked cast from rtx
23332         to rtx_insn *.
23333
23334 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23335
23336         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
23337         and "header_" from rtx to rtx_insn *.
23338         (struct basic_block_d): Likewise for field "head_" within "x"
23339         field of union basic_block_il_dependent.
23340         (BB_HEAD): Drop function...
23341         (SET_BB_HEAD): ...and this function in favor of...
23342         (BB_HEAD): ...reinstate macro.
23343         (BB_END): Drop function...
23344         (SET_BB_END): ...and this function in favor of...
23345         (BB_END): ...reinstate macro.
23346         (BB_HEADER): Drop function...
23347         (SET_BB_HEADER): ...and this function in favor of...
23348         (BB_HEADER): ...reinstate macro.
23349
23350         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
23351         (fix_crossing_unconditional_branches): Likewise.
23352         * caller-save.c (save_call_clobbered_regs): Likewise.
23353         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
23354         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
23355         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
23356         (merge_blocks_move_successor_nojumps): Likewise.
23357         (outgoing_edges_match): Update use of for_each_rtx to
23358         for_each_rtx_in_insn.
23359         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
23360         (expand_gimple_cond): Likewise.
23361         (expand_gimple_tailcall): Likewise.
23362         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
23363         SET_BB_END.
23364         (construct_exit_block): Drop use of SET_BB_END.
23365         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
23366         rtx_insn *.
23367         (delete_insn): Rename param "insn" to "uncast_insn", introducing
23368         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
23369         SET_BB_HEAD and SET_BB_END.
23370         (create_basic_block_structure): Drop use of SET_BB_HEAD and
23371         SET_BB_END.
23372         (rtl_delete_block): Drop use of SET_BB_HEAD.
23373         (rtl_split_block): Drop use of SET_BB_END.
23374         (emit_nop_for_unique_locus_between): Likewise.
23375         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
23376         (block_label): Drop use of SET_BB_HEAD.
23377         (fixup_abnormal_edges): Drop use of SET_BB_END.
23378         (record_effective_endpoints): Drop use of SET_BB_HEADER.
23379         (relink_block_chain): Likewise.
23380         (fixup_reorder_chain): Drop use of SET_BB_END.
23381         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
23382         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
23383         rtx_insn **.  Drop use of SET_BB_HEADER.
23384         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
23385         SET_BB_HEAD.
23386         (BB_HEAD): Delete this function.
23387         (SET_BB_HEAD): Likewise.
23388         (BB_END): Likewise.
23389         (SET_BB_END): Likewise.
23390         (BB_HEADER): Likewise.
23391         (SET_BB_HEADER): Likewise.
23392         * emit-rtl.c (add_insn_after):  Rename param "insn" to
23393         "uncast_insn", adding a new local "insn" and a checked cast to
23394         rtx_insn *.  Drop use of SET_BB_END.
23395         (remove_insn): Strengthen locals "next" and "prev" from rtx to
23396         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
23397         (reorder_insns): Drop use of SET_BB_END.
23398         (emit_insn_after_1): Strengthen param "first" and locals "last",
23399         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
23400         (emit_pattern_after_noloc): Add checked cast.
23401         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
23402         (restore_other_notes): Likewise.
23403         (move_insn): Likewise.
23404         (sched_extend_bb): Likewise.
23405         (fix_jump_move): Likewise.
23406         * ifcvt.c (noce_process_if_block): Likewise.
23407         (dead_or_predicable): Likewise.
23408         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
23409         * reg-stack.c (change_stack): Drop use of SET_BB_END.
23410         * sel-sched-ir.c (sel_move_insn): Likewise.
23411         * sel-sched.c (move_nop_to_previous_block): Likewise.
23412
23413         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
23414         SET_BB_END.
23415         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
23416
23417 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23418
23419         * basic-block.h (create_basic_block_structure): Strengthen params
23420         1 "head" and 2 "end" from rtx to rtx_insn *.
23421         * cfgrtl.c (create_basic_block_structure): Likewise.
23422         (rtl_create_basic_block): Update casts from void * to rtx to
23423         rtx_insn *, so that we can pass them as rtx_insn * to
23424         create_basic_block_structure.
23425         * sel-sched-ir.c (sel_create_basic_block): Likewise.
23426
23427 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23428
23429         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
23430         rtx_insn **.
23431         (check_for_inc_dec): Strengthen param "insn" from rtx to
23432         rtx_insn *.
23433
23434         * cselib.h (cselib_process_insn): Likewise.
23435
23436         * cselib.c (cselib_record_sets): Likewise.
23437         (cselib_process_insn): Likewise.
23438
23439         * dse.c (struct insn_info): Likewise for field "insn".
23440         (check_for_inc_dec_1): Likewise for local "insn".
23441         (check_for_inc_dec): Likewise for param "insn".
23442         (scan_insn): Likewise.
23443         (dse_step1): Likewise for local "insn".
23444
23445         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
23446         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
23447
23448 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23449
23450         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
23451         from rtx to rtx_insn *.
23452         (DEP_PRO): Delete this function and...
23453         (SET_DEP_PRO): ...this function in favor of...
23454         (DEP_PRO): ...reinstate this macro.
23455         (DEP_CON): Delete this function and...
23456         (SET_DEP_CON): ...this function in favor of...
23457         (DEP_CON): ...reinstate this old macro.
23458         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
23459         (init_dep): Likewise.
23460         (set_priorities): Likewise for both params.
23461         (sd_copy_back_deps): Likewise for params 1 and 2.
23462
23463         * haifa-sched.c (priority): Likewise for param "insn" and local
23464         "next".
23465         (set_priorities): Likewise for params "head" and "tail" and local
23466         "insn".
23467         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
23468         local "consumer".
23469         (add_to_speculative_block): Add a checked cast.
23470         (create_check_block_twin): Drop use of SET_DEP_CON.
23471         (add_jump_dependencies): Strengthen params "insn" and "jump" from
23472         rtx to rtx_insn *.
23473
23474         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
23475         Drop use of SET_DEP_PRO
23476         (init_dep): Strengthen params "pro" and "con" from rtx to
23477         rtx_insn *.
23478         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
23479         use of SET_DEP_CON.
23480         (DEP_PRO): Delete.
23481         (DEP_CON): Delete.
23482         (SET_DEP_PRO): Delete.
23483         (SET_DEP_CON): Delete.
23484
23485 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23486
23487         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
23488         from rtx to rtx_insn *.
23489         (VINSN_INSN_RTX): Eliminate rvalue function and...
23490         (SET_VINSN_INSN): ...lvalue function in favor of...
23491         (VINSN_INSN_RTX): reinstate this old macro.
23492
23493         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
23494         in favor of VINSN_INSN_RTX.
23495         (VINSN_INSN_RTX): Delete this function.
23496         (SET_VINSN_INSN_RTX): Likewise.
23497
23498 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23499
23500         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
23501         (BND_TO): Delete this function and...
23502         (SET_BND_TO): ...this functions in favor of...
23503         (BND_TO): ...reinstating this macro.
23504         (struct _fence): Strengthen field "executing_insns" from
23505         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
23506         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
23507         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
23508         and param "insn" from rtx to insn_t.
23509         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
23510         rtx_insn *.
23511
23512         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
23513         vec<rtx_insn *> .
23514         (rtx_vec_t): Likewise.
23515         (struct sched_deps_info_def): Strengthen param of "start_insn"
23516         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
23517         "note_mem_dep" callback and first param of "note_dep" callback.
23518
23519         * haifa-sched.c (add_to_speculative_block): Strengthen param
23520         "insn" from rtx to rtx_insn *.
23521         (clear_priorities): Likewise.
23522         (calc_priorities): Likewise for local "insn".
23523
23524         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
23525         Remove redundant checked cast.
23526         (haifa_note_mem_dep): Likewise for param "pending_insn".
23527         (haifa_note_dep): Likewise for param "elem".
23528         (note_mem_dep): Likewise for param "e".
23529         (sched_analyze_1): Add checked casts.
23530         (sched_analyze_2): Likewise.
23531
23532         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
23533         from rtx to rtx_insn *.
23534         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
23535         from vec<rtx> * to vec<rtx_insn *> *.
23536
23537         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
23538         scaffolding.
23539         (flist_add): Strengthen param "executing_insns" from
23540         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
23541         (advance_deps_context): Remove now-redundant checked cast.
23542         (init_fences): Replace uses of NULL_RTX with NULL.
23543         (merge_fences): Strengthen params "last_scheduled_insn" and
23544         "sched_next" from rtx to rtx_insn * and "executing_insns" from
23545         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
23546         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
23547         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
23548         an instruction, rather than doing double-duty as a pattern.
23549         (return_nop_to_pool): Update for change of insn_t.
23550         (deps_init_id): Remove now-redundant checked cast.
23551         (struct sched_scan_info_def): Strengthen param of "init_insn"
23552         callback from rtx to insn_t.
23553         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
23554         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
23555         NULL.
23556         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
23557         "end" from rtx to rtx_insn *.
23558         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
23559         (rtx insn_rtx, bool force_unique_p)
23560         (BND_TO): Delete function.
23561         (SET_BND_TO): Delete function.
23562
23563         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
23564         rtx to rtx_insn *.
23565         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
23566         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
23567         rtx to rtx_insn *.
23568         (undo_transformations): Likewise for param "insn".
23569         (update_liveness_on_insn): Likewise.
23570         (compute_live_below_insn): Likewise for param "insn" and local
23571         "succ".
23572         (update_data_sets): Likewise for param "insn".
23573         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
23574         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
23575         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
23576         rtx_insn *.
23577         (move_cond_jump): Likewise for param "insn".
23578         (move_cond_jump): Drop use of SET_BND_TO.
23579         (compute_av_set_on_boundaries): Likewise.
23580         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
23581         (update_and_record_unavailable_insns): Strengthen local "bb_end"
23582         from rtx to rtx_insn *.
23583         (maybe_emit_renaming_copy): Likewise for param "insn".
23584         (maybe_emit_speculative_check): Likewise.
23585         (handle_emitting_transformations): Likewise.
23586         (remove_insn_from_stream): Likewise.
23587         (code_motion_process_successors): Strengthen local "succ" from rtx
23588         to insn_t.
23589
23590 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23591
23592         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
23593         ilist_t, not _xlist_t;
23594         (ILIST_INSN): Define in terms of new union field "insn".
23595         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
23596         _XLIST_NEXT.
23597         (struct _list_node): Add new field "insn" to the union, of type
23598         insn_t.
23599         (ilist_add): Replace macro with an inline function, requiring an
23600         insn_t.
23601         (ilist_remove): Define this macro directly in terms of
23602         _list_remove, rather than indirectly via _xlist_remove.
23603         (ilist_clear): Likewise, in terms of _list_clear rather than
23604         _xlist_clear.
23605         (ilist_is_in_p): Replace macro with an inline function, requiring
23606         an insn_t.
23607         (_list_iter_cond_insn): New function.
23608         (ilist_iter_remove): Define this macro directly in terms of
23609         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
23610         (ilist_iterator): Define directly in terms of _list_iterator
23611         rather than indirectly through _xlist_iterator.
23612         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
23613         than in terms of _FOR_EACH_X.
23614         (FOR_EACH_INSN_1): Likewise.
23615
23616 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
23617
23618         PR target/60606
23619         PR target/61330
23620         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
23621         DECL_HARD_REGISTER and return for invalid register specifications.
23622         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
23623         DECL_HARD_REGISTER, call expand_one_error_var.
23624         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
23625         CC_REGNUM with non-MODE_CC modes.
23626         (arm_regno_class): Return NO_REGS for PC_REGNUM.
23627
23628 2014-08-26  Marek Polacek  <polacek@redhat.com>
23629
23630         PR c/61271
23631         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
23632
23633 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
23634
23635         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
23636         qi cost; add di cost.
23637         (cortexa57_addrcost_table): Likewise.
23638
23639 2014-08-26  Marek Polacek  <polacek@redhat.com>
23640
23641         PR c/61271
23642         * expr.c (is_aligning_offset): Remove logical not.
23643
23644 2014-08-26  Marek Polacek  <polacek@redhat.com>
23645
23646         PR c/61271
23647         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
23648         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
23649
23650 2014-08-26  Richard Biener  <rguenther@suse.de>
23651
23652         PR tree-optimization/62175
23653         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
23654         expand possibly trapping operations.
23655
23656 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23657
23658         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
23659         "insn" from rtx to rtx_insn *.
23660         (permute_load): Likewise for param "insn".
23661         (permute_store): Likewise.
23662         (handle_special_swappables): Likewise for local "insn".
23663         (replace_swap_with_copy): Likewise for locals "insn" and
23664         "new_insn".
23665         (rs6000_analyze_swaps): Likewise for local "insn".
23666
23667 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23668
23669         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
23670         to rtx_insn *.
23671
23672 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23673
23674         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
23675         "note_list" from rtx to rtx_insn *.
23676         (BB_NOTE_LIST): Replace this function and...
23677         (SET_BB_NOTE_LIST): ...this function with...
23678         (BB_NOTE_LIST): ...the former macro implementation.
23679
23680         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
23681         local "from_start" from rtx to rtx_insn *.  Strengthen param
23682         "to_endp" from rtx * to rtx_insn **.
23683
23684         * haifa-sched.c (concat_note_lists): Likewise.
23685         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
23686         BB_NOTE_LIST.
23687         (sel_restore_notes): Likewise.
23688         (move_bb_info): Likewise.
23689         (BB_NOTE_LIST): Delete this function.
23690         (SET_BB_NOTE_LIST): Delete this function.
23691         * sel-sched.c (create_block_for_bookkeeping): Eliminate
23692         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
23693
23694 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23695
23696         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
23697         from rtx * to rtx_insn **.
23698         (reorder2): Likewise.
23699         (dependencies_evaluation_hook): Strengthen params "head", "tail"
23700         from rtx to rtx_insn *.
23701
23702         * doc/tm.texi: Update mechanically for above change to target.def.
23703
23704         * sched-int.h (note_list): Strengthen this variable from rtx to
23705         rtx_insn *.
23706         (remove_notes): Likewise for both params.
23707         (restore_other_notes): Likewise for return type and first param.
23708         (struct ready_list): Strengthen field "vec" from rtx * to
23709         rtx_insn **.
23710         (struct dep_replacement): Strenghten field "insn" from rtx to
23711         rtx_insn *.
23712         (struct deps_desc): Likewise for fields "last_debug_insn",
23713         "last_args_size".
23714         (struct haifa_sched_info): Likewise for callback field
23715         "can_schedule_ready_p"'s param, for first param of "new_ready"
23716         callback field, for both params of "rank" callback field, for
23717         first field of "print_insn" callback field (with a const), for
23718         both params of "contributes_to_priority" callback, for param
23719         of "insn_finishes_block_p" callback, for fields "prev_head",
23720         "next_tail", "head", "tail", for first param of "add_remove_insn"
23721         callback, for first param of "begin_schedule_ready" callback, for
23722         both params of "begin_move_insn" callback, and for second param
23723         of "advance_target_bb" callback.
23724         (add_dependence): Likewise for params 1 and 2.
23725         (sched_analyze): Likewise for params 2 and 3.
23726         (deps_analyze_insn): Likewise for param 2.
23727         (ready_element): Likewise for return type.
23728         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23729         (try_ready): Strenghten param from rtx to rtx_insn *.
23730         (sched_emit_insn): Likewise for return type.
23731         (record_delay_slot_pair): Likewise for params 1 and 2.
23732         (add_delay_dependencies): Likewise for param.
23733         (contributes_to_priority): Likewise for both params.
23734         (find_modifiable_mems): Likewise.
23735
23736         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
23737         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
23738         "first_older_only_insn" from rtx to rtx_insn *.
23739         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
23740         rtx_insn **.
23741
23742         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
23743         "last_scheduled_iter0" from rtx to rtx_insn *.
23744         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
23745         (c6x_sched_reorder_1): Strengthen param "ready" and locals
23746         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
23747         "insn" from rtx to rtx_insn *.
23748         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
23749         rtx_insn **.
23750         (c6x_sched_reorder2): Strengthen param "ready" and locals
23751         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
23752         "insn" from rtx to rtx_insn *.
23753         (c6x_variable_issue):  Add a checked cast when assigning from insn
23754         to ss.last_scheduled_iter0.
23755         (split_delayed_branch): Strengthen param "insn" and local "i1"
23756         from rtx to rtx_insn *.
23757         (split_delayed_nonbranch): Likewise.
23758         (undo_split_delayed_nonbranch): Likewise for local "insn".
23759         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
23760         "entry_after", "end_packet", "head_insn", "tail_insn",
23761         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
23762         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
23763         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
23764         but add a checked cast on loop->start_label.  Consolidate calls to
23765         avoid assigning result of gen_spkernel to "insn", now an
23766         rtx_insn *.
23767
23768         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
23769         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
23770         rtx to rtx_insn *.
23771         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
23772         rtx_insn **.  Strengthen locals "top", "next" from rtx to
23773         rtx_insn *.
23774         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
23775         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
23776         (add_parameter_dependencies): Strengthen params "call", "head" and
23777         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
23778         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
23779         (add_dependee_for_func_arg): Likewise for param "arg" and local
23780         "insn".
23781         (ix86_dependencies_evaluation_hook): Likewise for params "head",
23782         "tail" and locals "insn", "first_arg".
23783
23784         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
23785         for params "head", "tail" and locals "insn", "next", "next_tail".
23786         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
23787         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
23788         "insn", "lowest", "highest" from rtx to rtx_insn *.
23789         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
23790         rtx_insn **.
23791         (ia64_sched_reorder2): Likewise.
23792
23793         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
23794         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
23795         from rtx * to rtx_insn **.
23796         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
23797         rtx_insn **.
23798         (mep_print_sched_insn): Strengthen param "insn" from rtx to
23799         rtx_insn *.
23800         (mep_sched_reorder): Strengthen param "ready" from rtx * to
23801         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
23802         to rtx_insn *.
23803
23804         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23805         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
23806         to rtx_insn *.
23807         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23808         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
23809         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23810         rtx_insn **.
23811         (vr4130_reorder): Likewise.
23812         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
23813         rtx to rtx_insn *.
23814         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23815         rtx_insn **.
23816         (mips_sched_reorder): Likewise.
23817         (mips_sched_reorder2): Likewise.
23818
23819         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23820
23821         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23822         Strengthen local "tmp" from rtx to rtx_insn *.
23823         (rs6000_sched_reorder2): Likewise.
23824
23825         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23826         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23827         (s390_sched_reorder): Strengthen param "ready" from rtx * to
23828         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
23829
23830         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23831         "tmp2" from rtx to rtx_insn *.
23832         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23833         Strengthen local "insn" from rtx to rtx_insn *.
23834         (ready_reorder): Strengthen param "ready" from rtx * to
23835         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23836         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
23837         (sh_reorder2): Likewise.
23838
23839         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
23840         local "insn" from rtx to rtx_insn *.
23841
23842         * haifa-sched.c (note_list): Strengthen this variable from rtx to
23843         rtx_insn *.
23844         (scheduled_insns): Strengthen this variable from vec<rtx> to
23845         vec<rtx_insn *>.
23846         (set_modulo_params): Likewise for locals "i1", "i2".
23847         (record_delay_slot_pair): Likewise for params "i1", "i2".
23848         (add_delay_dependencies): Likewise for param "insn".
23849         (cond_clobbered_p): Likewise.
23850         (recompute_todo_spec): Likewise for local "prev".
23851         (last_scheduled_insn): Likewise for this variable.
23852         (nonscheduled_insns_begin): Likewise.
23853         (model_set_excess_costs): Strengthen param "insns" from rtx * to
23854         rtx_insn **.
23855         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23856         rtx_insn *.
23857         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23858         Strengthen local "insn" from rtx to rtx_insn *.
23859         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23860         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23861         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23862         (ready_remove_first): Likewise for return type and local "t".
23863         (ready_element): Likewise for return type.
23864         (ready_remove): Likewise for return type and local "t".
23865         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23866         (check_clobbered_conditions): Strengthen local "x" from rtx to
23867         rtx_insn *, adding a checked cast.
23868         (schedule_insn): Likewise for param "insn".
23869         (remove_notes): Likewise for params "head", "tail" and locals
23870         "next_tail", "insn", "next".
23871         (struct haifa_saved_data): Likewise for fields
23872         "last_scheduled_insn", "nonscheduled_insns_begin".
23873         (save_backtrack_point): Update for change to field "vec" of
23874         struct ready_list.
23875         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23876         rtx_insn **.
23877         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
23878         from rtx to rtx_insn *
23879         (resolve_dependencies): Strengthen param "insn" from rtx to
23880         rtx_insn *
23881         (restore_other_notes): Likewise for return type, for param "head"
23882         and local "note_head".
23883         (undo_all_replacements): Likewise for local "insn".
23884         (first_nonscheduled_insn): Likewise for return type and local "insn".
23885         (queue_to_ready): Likewise for local "insn", adding checked casts.
23886         (early_queue_to_ready): Likewise for local "insn".
23887         (debug_ready_list_1): Strengthen local "p" from rtx * to
23888         rtx_insn **.
23889         (move_insn): Strengthen param "insn" and local "note" from rtx to
23890         rtx_insn *
23891         (insn_finishes_cycle_p): Likewise for param "insn".
23892         (max_issue): Likewise for local "insn".
23893         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
23894         to rtx_insn **.
23895         (commit_schedule): Strengthen param "prev_head" and local "insn"
23896         from rtx to rtx_insn *
23897         (prune_ready_list): Likewise for local "insn".
23898         (schedule_block): Likewise for locals "prev_head", "head", "tail",
23899         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23900         (set_priorities): Likewise for local "prev_head".
23901         (try_ready): Likewise for param "next".
23902         (fix_tick_ready): Likewise.
23903         (change_queue_index): Likewise.
23904         (sched_extend_ready_list): Update for change to field "vec" of
23905         struct ready_list.
23906         (generate_recovery_code): Strengthen param "insn" from rtx to
23907         rtx_insn *.
23908         (begin_speculative_block): Likewise.
23909         (create_check_block_twin): Likewise for param "insn" and locals
23910         "label", "check", "twin".  Introduce local "check_pat" to avoid
23911         "check" being used as a plain rtx before being used as an insn.
23912         (fix_recovery_deps): Add a checked cast to rtx_insn * when
23913         extracting elements from ready_list.
23914         (sched_remove_insn): Strengthen param "insn" from rtx to
23915         rtx_insn *.
23916         (sched_emit_insn): Likewise for return type.
23917         (ready_remove_first_dispatch): Likewise for return type and local
23918         "insn".
23919
23920         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23921
23922         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23923         const rtx_insn *.
23924
23925         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23926         from rtx to rtx_insn *.
23927         (add_dependence_list): Likewise for param "insn".  Add a checked
23928         cast.
23929         (add_dependence_list_and_free): Strengthen param "insn" from rtx
23930         to rtx_insn *.  Strengthen param "list_p" from rtx * to
23931         rtx_insn **.
23932         (chain_to_prev_insn): Strengthen param "insn" and locals
23933         "prec_nonnote", "i" from rtx to rtx_insn *.
23934         (flush_pending_lists): Likewise for param "insn".
23935         (cur_insn): Likewise for this variable.
23936         (haifa_start_insn): Add a checked cast.
23937         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23938         (sched_analyze_reg): Likewise for param "insn".
23939         (sched_analyze_1): Likewise.
23940         (sched_analyze_2): Likewise.  Add checked casts.
23941         (sched_analyze_insn): Likewise.  Also for local "prev".
23942         (deps_analyze_insn): Likewise for param "insn".
23943         (sched_analyze): Likewise for params "head", "tail" and local "insn".
23944         (add_dependence_1): Likewise for params "insn", "elem".
23945         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23946         (parse_add_or_inc): Likewise for param "insn".
23947         (find_inc): Likewise for local "inc_cand".
23948         (find_modifiable_mems): Likewise for params "head", "tail" and
23949         locals "insn", "next_tail".
23950
23951         * sched-ebb.c (init_ready_list): Likewise for local "insn".
23952         (begin_schedule_ready): Likewise for param "insn".
23953         (begin_move_insn): Likewise for params "insn" and "last".
23954         (ebb_print_insn): Strengthen param "insn" from const_rtx to
23955         const rtx_insn *.
23956         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23957         (ebb_contributes_to_priority): Likewise for params "next", "insn".
23958         (ebb_add_remove_insn): Likewise for param "insn".
23959         (advance_target_bb): Likewise.
23960
23961         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23962         "insn".
23963         (check_live): Likewise for param "insn".
23964         (init_ready_list): Likewise for local "insn".
23965         (can_schedule_ready_p): Likewise for param "insn".
23966         (begin_schedule_ready): Likewise.
23967         (new_ready): Likewise for param "next".
23968         (rgn_print_insn): Likewise for param "insn".
23969         (rgn_rank): Likewise for params "insn1", "insn2".
23970         (contributes_to_priority): Likewise for params "next", "insn".
23971         (rgn_insn_finishes_block_p): Likewise for param "insn".
23972         (add_branch_dependences): Likewise for params "head", "tail" and
23973         locals "insn", "last".
23974         (rgn_add_remove_insn): Likewise for param "insn".
23975         (advance_target_bb): Likewise.
23976
23977         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23978         const_rtx to const rtx_insn *.
23979
23980         * sel-sched-dump.h (sel_print_insn): Likewise.
23981
23982         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23983         (deps_init_id): Likewise.
23984
23985         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23986         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23987         rtx_insn **.
23988
23989 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23990
23991         * output.h (final_start_function): Strengthen param 1 from rtx to
23992         rtx_insn *.
23993
23994         * final.c (final_start_function): Likewise, renaming back from
23995         "uncast_first" to "first", and dropping the checked cast from rtx
23996         to rtx_insn *.
23997
23998 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23999
24000         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
24001         * final.c (final): Likewise.  Rename param back from
24002         "uncast_first" to "first" and eliminate the checked cast from rtx
24003         to rtx_insn *.
24004
24005 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24006
24007         * output.h (shorten_branches): Strengthen param from rtx to
24008         rtx_insn *.
24009
24010         * final.c (shorten_branches): Likewise, renaming param back from
24011         "uncast_first" to "first", and dropping the checked cast from rtx
24012         to rtx_insn *.
24013
24014         * genattr.c (gen_attr): Likewise when writing out the prototype of
24015         shorten_branches.
24016
24017 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24018
24019         * sched-int.h (struct haifa_sched_info): Strengthen fields
24020         "prev_head" and "next_tail" from rtx to rtx_insn *.
24021
24022 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24023
24024         * rtl.h (rtx_jump_table_data::get_labels): New method.
24025         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
24026         with use of the new rtx_jump_table_data::get_labels method.
24027         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
24028         to rtx_jump_table_data *.  Simplify by using get_labels method.
24029         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
24030         a dyn_cast, introducing local "table", using it to replace
24031         label-lookup logic with a get_labels method call.
24032         (patch_jump_insn): Simplify using get_labels method.
24033         * dwarf2cfi.c (create_trace_edges): Likewise.
24034         * rtlanal.c (label_is_jump_target_p): Likewise.
24035
24036 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24037
24038         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
24039         to rtx_insn *.
24040
24041         * emit-rtl.c (unshare_all_rtl_1): Likewise.
24042         (unshare_all_rtl_again): Likewise, also for local "p".
24043
24044 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24045
24046         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
24047         to rtx_insn *.
24048         * cfgrtl.c (delete_insn_and_edges): Likewise.
24049
24050 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24051
24052         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
24053         from rtx to rtx_insn *.
24054
24055         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
24056
24057 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24058
24059         * function.c (thread_prologue_and_epilogue_insns): Likewise for
24060         locals "returnjump", "epilogue_end", "insn", "next".
24061
24062         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
24063         "returnjump" from rtx * to rtx_insn **.
24064         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
24065
24066 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24067
24068         * basic-block.h (struct edge_def). Strengthen "r" within
24069         union edge_def_insns from rtx to rtx_insn *.
24070
24071         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
24072         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
24073         rtx_insn *.
24074         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
24075         from rtx to rtx_insn *.
24076         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
24077         rtx_insn *.
24078         * postreload-gcse.c (reg_killed_on_edge): Likewise.
24079         (reg_used_on_edge): Likewise.
24080         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
24081         (gt_pch_nx): New overload for rtx_insn *&.
24082         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
24083         from rtx to rtx_insn *.
24084
24085 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24086
24087         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
24088         from rtx to rtx_insn *.
24089         (BB_FOOTER): Replace function with access macro.
24090         (SET_BB_FOOTER): Delete.
24091
24092         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
24093         with BB_FOOTER.
24094         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
24095         (emit_barrier_after_bb): Likewise.
24096         (record_effective_endpoints): Likewise.
24097         (relink_block_chain): Likewise.
24098         (fixup_fallthru_exit_predecessor): Likewise.
24099         (cfg_layout_duplicate_bb): Likewise.
24100         (cfg_layout_split_block): Likewise.
24101         (cfg_layout_delete_block): Likewise.
24102         (cfg_layout_merge_blocks): Likewise.
24103         (BB_FOOTER): Delete function.
24104         (SET_BB_FOOTER): Delete function.
24105         * combine.c (update_cfg_for_uncondjump): Replace uses of
24106         SET_BB_FOOTER with BB_FOOTER.
24107
24108 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24109
24110         * except.h (struct eh_landing_pad_d): Strengthen field
24111         "landing_pad" from rtx to rtx_code_label *.
24112
24113         * except.c (sjlj_emit_dispatch_table): Likewise for param
24114         "dispatch_label"
24115         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
24116
24117 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24118
24119         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
24120         first param from rtx to rtx_insn *.
24121         * config/xtensa/xtensa.c (struct machine_function): Likewise for
24122         field "set_frame_ptr_insn".
24123         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
24124         "csend" from rtx to rtx_code_label *.
24125         (xtensa_expand_atomic): Likewise for local "csloop".
24126         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
24127         rtx_insn *.
24128         (xtensa_call_tls_desc): Likewise for return type and locals
24129         "call_insn", "insns".
24130         (xtensa_legitimize_tls_address): Likewise for local "insns".
24131         (xtensa_expand_prologue): Likewise for locals "insn", "first".
24132
24133 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24134
24135         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
24136         first param from rtx to rtx_insn *.
24137         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
24138         "insn".
24139
24140 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24141
24142         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
24143         Strengthen param 1 from rtx to rtx_insn *.
24144         (tilepro_output_cbranch): Likewise.
24145         (tilepro_adjust_insn_length): Likewise.
24146         (tilepro_final_prescan_insn): Likewise for sole param.
24147
24148         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
24149         Likewise for local "last".
24150         (cbranch_predicted_p): Likewise for param "insn".
24151         (tilepro_output_simple_cbranch_with_opcode): Likewise.
24152         (tilepro_output_cbranch_with_opcode): Likewise.
24153         (tilepro_output_cbranch): Likewise.
24154         (frame_emit_load): Likewise for return type and locals "seq",
24155         "insn".
24156         (emit_sp_adjust): Likewise for return type and local "insn".
24157         (tilepro_expand_epilogue): Likewise for locals "last_insn",
24158         "insn".
24159         (tilepro_adjust_insn_length): Likewise for param "insn".
24160         (next_insn_to_bundle): Likewise for return type and params
24161         "r", "end".
24162         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
24163         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
24164         local "new_insns".
24165         (match_addli_pcrel): Likewise for param "insn".
24166         (replace_addli_pcrel): Likewise.
24167         (match_auli_pcrel): Likewise.
24168         (replace_auli_pcrel): Likewise.
24169         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
24170         "next_insn".
24171         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24172         "queue", "next_queue", "prev".
24173         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
24174         (tilepro_final_prescan_insn): Likewise for param "insn".
24175
24176 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24177
24178         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
24179         Strengthen param 1 from rtx to rtx_insn *.
24180         (tilegx_output_cbranch): Likewise.
24181         (tilegx_adjust_insn_length): Likewise.
24182         (tilegx_final_prescan_insn): Likewise for sole param.
24183
24184         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
24185         or local "last".
24186         (cbranch_predicted_p): Likewise for param "insn".
24187         (tilegx_output_simple_cbranch_with_opcode): Likewise.
24188         (tilegx_output_cbranch_with_opcode): Likewise.
24189         (tilegx_output_cbranch): Likewise.
24190         (frame_emit_load): Likewise for return type.
24191         (set_frame_related_p): Likewise for locals "seq", "insn".
24192         (emit_sp_adjust): Likewise for return type, and for local "insn".
24193         Introduce local "pat" for use in place of "insn" where the latter
24194         isn't an instruction.
24195         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
24196         from rtx to rtx_insn *.
24197         (tilegx_adjust_insn_length): Likewise for param "insn".
24198         (next_insn_to_bundle): Likewise for return type and params "r" and
24199         "end".
24200         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
24201         "end".
24202         (replace_insns): Likewise for params "old_insn", "new_insns".
24203         (replace_mov_pcrel_step1): Likewise for param "insn" and local
24204         "new_insns".
24205         (replace_mov_pcrel_step2): Likewise.
24206         (replace_mov_pcrel_step3): Likewise.
24207         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
24208         "next_insn".
24209         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24210         "queue", "next_queue", "prev".
24211         (tilegx_output_mi_thunk): Likewise for local "insn".
24212         (tilegx_final_prescan_insn): Likewise for param "insn".
24213
24214 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24215
24216         * config/spu/spu.c (frame_emit_store): Strengthen return type from
24217         rtx to rtx_insn *.
24218         (frame_emit_load): Likewise.
24219         (frame_emit_add_imm): Likewise, also for local "insn".
24220         (spu_expand_prologue): Likewise for local "insn".
24221         (struct spu_bb_info): Likewise for field "prop_jump".
24222         (emit_nop_for_insn): Likewise for param "insn" and local
24223         "new_insn".
24224         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
24225         "hbr_insn".
24226         (spu_emit_branch_hint): Likewise for params "before", "branch" and
24227         locals "hint", "insn".
24228         (get_branch_target): Likewise for param "branch".
24229         (insn_clobbers_hbr): Likewise for param "insn".
24230         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
24231         locals "insn", "before_4", "before_16".
24232         (insert_hbrp): Likewise for local "insn".
24233         (spu_machine_dependent_reorg): Likewise for locals "branch",
24234         "insn", "next", "bbend".
24235         (uses_ls_unit): Likewise for param "insn".
24236         (get_pipe): Likewise.
24237         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
24238         introducing a checked cast.
24239         (spu_sched_adjust_cost): Likewise for params "insn" and
24240         "dep_insn".
24241         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
24242         (spu_sms_res_mii): Likewise.
24243
24244 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24245
24246         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
24247         from rtx to rtx_insn *.
24248         (output_cbranch): Likewise for param 6.
24249         (output_return): Likewise for param 1.
24250         (output_sibcall): Likewise.
24251         (output_v8plus_shift): Likewise.
24252         (output_v8plus_mult): Likewise.
24253         (output_v9branch): Likewise for param 7.
24254         (output_cbcond):  Likewise for param 3.
24255
24256         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
24257         for local "insn".
24258         (sparc_legitimize_pic_address): Likewise.
24259         (sparc_emit_call_insn): Likewise.
24260         (emit_save_or_restore_regs): Likewise.
24261         (emit_window_save): Likewise for return type and local "insn".
24262         (sparc_expand_prologue): Likewise for local "insn".
24263         (sparc_flat_expand_prologue): Likewise.
24264         (output_return): Likewise for param "insn".
24265         (output_sibcall): Likewise for param "insn" and local "delay".
24266         (output_ubranch): Likewise for param "insn".
24267         (output_cbranch): Likewise.
24268         (output_cbcond): Likewise.
24269         (output_v9branch): Likewise.
24270         (output_v8plus_shift): Likewise.
24271         (sparc_output_mi_thunk): Likewise for local "insn".
24272         (get_some_local_dynamic_name): Likewise.
24273         (output_v8plus_mult): Likewise for param "insn".
24274
24275 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24276
24277         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
24278         from rtx to rtx_insn *.
24279         (output_branchy_insn): Likewise for param 3.
24280         (output_far_jump): Likewise for param 1.
24281         (final_prescan_insn): Likewise.
24282         (sh_insn_length_adjustment): Likewise for sole param.
24283
24284         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
24285         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
24286         rtx_code_label *.
24287         (sh_emit_compare_and_set): Likewise for local "lab".
24288         (output_far_jump): Strengthen param "insn" and local "prev" from
24289         rtx to rtx_insn *.
24290         (output_branchy_insn): Likewise for param "insn" and local
24291         "next_insn".
24292         (output_ieee_ccmpeq): Likewise for param "insn".
24293         (struct label_ref_list_d): Strengthen field "label" from rtx to
24294         rtx_code_label *.
24295         (pool_node): Likewise.
24296         (pool_window_label): Likewise for this global.
24297         (add_constant): Likewise for return type and locals "lab", "new_rtx".
24298         (dump_table): Strengthen params "start", "barrier" and local
24299         "scan" from rtx to rtx_insn *.
24300         (broken_move): Likewise for param "insn".
24301         (untangle_mova): Likewise for params "first_mova" and "new_mova".
24302         Strengthen param "first_mova" from rtx * to rtx_insn **.
24303         (mova_p): Likewise for param "insn".
24304         (fixup_mova): Likewise for param "mova".
24305         (find_barrier): Likewise for return type, params "mova" and
24306         "from", and locals "barrier_before_mova", "found_barrier",
24307         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
24308         "label" from rtx to rtx_code_label *.
24309         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
24310         rtx to rtx_insn *.
24311         (sh_reorg): Likewise for locals "link", "scan", "barrier".
24312         (split_branches): Likewise for param "first" and local "insn".
24313         (final_prescan_insn): Likewise for param "insn".
24314         (sequence_insn_p): Likewise for locals "prev", "next".
24315         (sh_insn_length_adjustment): Likewise for param "insn".
24316         (sh_can_redirect_branch): Likewise for local "insn".
24317         (find_r0_life_regions): Likewise for locals "end", "insn".
24318         (sh_output_mi_thunk): Likewise for local "insns".
24319
24320 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24321
24322         * config/score/score.c (score_output_mi_thunk): Strengthen local
24323         "insn" from rtx to rtx_insn *.
24324         (score_prologue): Likewise.
24325
24326 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24327
24328         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
24329         1 from rtx to rtx_insn *.
24330         (s390_emit_jump): Likewise for return type.
24331         (s390_emit_call): Likewise.
24332         (s390_load_got): Likewise.
24333
24334         * config/s390/s390.c (last_scheduled_insn): Likewise for this
24335         variable.
24336         (s390_match_ccmode): Likewise for param "insn".
24337         (s390_emit_jump): Likewise for return type.
24338         (s390_split_branches): Likewise for local "label".
24339         (struct constant): Strengthen field "label" from rtx to
24340         rtx_code_label *.
24341         (struct constant_pool): Likewise for field "label".  Strengthen
24342         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
24343         rtx_insn *.
24344         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
24345         insns.
24346         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
24347         (s390_end_pool): Likewise.
24348         (s390_dump_pool): Likewise for local "insn".
24349         (s390_mainpool_start): Likewise.
24350         (s390_chunkify_start): Likewise.
24351         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
24352         with insns.  Strengthen locals "label", "jump", "barrier", "next",
24353         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
24354         (s390_chunkify_finish): Strengthen local "insn" from rtx to
24355         rtx_insn *.
24356         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
24357         "jump", "label", "next_insn".
24358         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
24359         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
24360         "tbegin_insn".
24361         (s390_load_got): Likewise for return type and local "insns".
24362         (s390_save_gprs_to_fprs): Likewise for local "insn".
24363         (s390_restore_gprs_from_fprs): Likewise.
24364         (pass_s390_early_mach::execute): Likewise.
24365         (s390_emit_prologue): Likewise for local "insns".
24366         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
24367         rtx_code_label *.
24368         (s390_emit_call): Strengthen return type and local "insn" from
24369         rtx to rtx_insn *.
24370         (s390_emit_tpf_eh_return): Likewise for local "insn".
24371         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
24372         "next_insn", introducing locals "s_pat", "rpat" to allow this.
24373         (s390_fix_long_loop_prediction): Likewise for param "insn" and
24374         local "cur_insn".
24375         (s390_non_addr_reg_read_p): Likewise for param "insn".
24376         (find_cond_jump): Likewise for return type and param "insn".
24377         (s390_swap_cmp): Likewise for param "insn".
24378         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
24379         "prev_insn", "next_insn".
24380         (s390_reorg): Likewise for locals "insn", "target".
24381         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
24382         (s390_sched_variable_issue): For now, rename param "insn" to
24383         "uncast_insn", introducing a checked cast.
24384         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
24385         insn.
24386         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
24387         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
24388
24389 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24390
24391         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
24392         param from rtx to rtx_insn *.
24393         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
24394
24395 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24396
24397         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
24398         4 from rtx to rtx_insn *.
24399         (rs6000_final_prescan_insn): Likewise for first param.
24400         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
24401         local "insn".
24402         (rs6000_get_some_local_dynamic_name): Likewise.
24403         (output_cbranch): Likewise for param "insn".
24404         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
24405         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
24406         (rs6000_emit_allocate_stack): Likewise for local "insn".
24407         (load_cr_save): Likewise.
24408         (restore_saved_cr): Likewise.
24409         (restore_saved_lr): Likewise.
24410         (emit_cfa_restores): Likewise.
24411         (rs6000_output_function_epilogue): Likewise for locals "insn" and
24412         "deleted_debug_label".
24413         (rs6000_output_mi_thunk): Likewise for local "insn".
24414         (rs6000_final_prescan_insn): Likewise for param "insn".
24415
24416 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24417
24418         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
24419         Strengthen param "insn" from rtx to rtx_insn *.
24420         * config/picochip/picochip.c (picochip_current_prescan_insn):
24421         Likewise for this variable.
24422         (picochip_final_prescan_insn): Likewise for param "insn".
24423
24424 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24425
24426         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
24427         from rtx to rtx_insn *.
24428         (pa_output_indirect_call): Likewise.
24429         (pa_adjust_insn_length): Likewise.
24430         (pa_attr_length_millicode_call): Likewise.
24431         (pa_attr_length_call): Likewise.
24432         (pa_attr_length_indirect_call): Likewise.
24433
24434         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
24435         "insn".
24436         (pa_attr_length_millicode_call): Likewise.
24437         (pa_attr_length_call): Likewise.
24438         (pa_output_call): Likewise.
24439         (pa_attr_length_indirect_call): Likewise.
24440         (pa_output_indirect_call): Likewise.
24441
24442 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24443
24444         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
24445         Strengthen first param from rtx to rtx_insn *.
24446         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
24447         param "insn".
24448
24449 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24450
24451         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
24452         type from rtx to rtx_insn *.
24453         (mips_expand_call): Likewise.
24454         (mips_adjust_insn_length): Likewise for first param.
24455         (mips_output_conditional_branch): Likewise.
24456         (mips_output_order_conditional_branch): Likewise.
24457         (mips_final_prescan_insn): Likewise.
24458
24459         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
24460         rtx_insn * for the SEQUENCE case.
24461         (SEQ_END): Likewise.
24462         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
24463         (mips_emit_call_insn): Likewise, also for local "insn".
24464         (mips16_gp_pseudo_reg): Likewise for local "scan".
24465         (mips16_build_call_stub): Likewise for return type and for local
24466         "insn".  Introduce a new local "pattern" so that "insn" can indeed
24467         be an insn.
24468         (mips_expand_call): Strengthen return type and local "insn" from
24469         rtx to rtx_insn *.
24470         (mips_block_move_loop): Strengthen local "label" from rtx to
24471         rtx_code_label *.
24472         (mips_expand_synci_loop): Likewise for locals "label",
24473         "end_label".
24474         (mips_set_frame_expr): Strengthen local "insn" from rtx to
24475         rtx_insn *.
24476         (mips16e_collect_argument_saves): Likewise for locals "insn",
24477         "next".
24478         (mips_find_gp_ref): Likewise for param of callback for "pred"
24479         param, and for local "insn".
24480         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
24481         (mips_insn_has_flexible_gp_ref_p): Likewise.
24482         (mips_epilogue_emit_cfa_restores): Likewise for return type and
24483         local "insn".
24484         (mips_epilogue_set_cfa): Likewise for local "insn".
24485         (mips_expand_epilogue): Likewise.
24486         (mips_adjust_insn_length): Likewise for param "insn".
24487         (mips_output_conditional_branch): Likewise.
24488         (mips_output_order_conditional_branch): Likewise.
24489         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
24490         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
24491         "falu2_turn_enabled_insn".
24492         (mips_builtin_branch_and_move): Strengthen locals "true_label",
24493         "done_label" from rtx to rtx_code_label *.
24494         (struct mips16_constant): Likewise for field "label".
24495         (mips16_add_constant): Likewise for return type.
24496         (mips16_emit_constants_1): Strengthen return type and param "insn"
24497         from rtx to rtx_insn *.
24498         (mips16_emit_constants): Likewise for param "insn".
24499         (mips16_insn_length): Likewise.
24500         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
24501         to rtx_code_label *.
24502         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
24503         from rtx to rtx_insn *.
24504         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
24505         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
24506         (r10k_simplify_address): Strengthen param "insn" and local
24507         "def_insn" from rtx to rtx_insn *.
24508         (r10k_safe_address_p): Strengthen param "insn" from rtx to
24509         rtx_insn *.
24510         (r10k_needs_protection_p_1): Update target type of cast of data
24511         from to rtx to rtx_insn *.
24512         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
24513         rtx * to rtx_insn **.
24514         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
24515         rtx_insn *.
24516         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
24517         (mips_call_expr_from_insn): Likewise for param "insn".
24518         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
24519         (mips_find_pic_call_symbol): Likewise for param "insn".
24520         (mips_annotate_pic_calls): Likewise for local "insn".
24521         (mips_sim_insn): Likewise for this variable.
24522         (struct mips_sim): Likewise for field "insn" within elements of
24523         last_set array.
24524         (mips_sim_wait_reg): Likewise for param "insn".
24525         (mips_sim_wait_regs): Likewise.
24526         (mips_sim_wait_units): Likewise.
24527         (mips_sim_wait_insn): Likewise.
24528         (mips_sim_issue_insn): Likewise.
24529         (mips_sim_finish_insn): Likewise.
24530         (mips_seq_time): Likewise for param "seq" and local "insn".
24531         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
24532         locals "first", "second".
24533         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
24534         "last", "last2", "next".
24535         (mips_avoid_hazard): Likewise for params "after", "insn".
24536         (mips_reorg_process_insns): Likewise for locals "insn",
24537         "last_insn", "subinsn", "next_insn".
24538         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
24539         (mips16_split_long_branches): Likewise for locals "insn" "jump",
24540         "jump_sequence".
24541         (mips_output_mi_thunk): Likewise for local "insn".
24542         (mips_final_prescan_insn): Likewise for param "insn".
24543
24544 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24545
24546         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
24547         Strengthen return type and local "insns" from rtx to rtx_insn *.
24548         (microblaze_legitimize_tls_address): Likewise for local "insns".
24549         (microblaze_block_move_loop): Strengthen local "label" from rtx
24550         to rtx_code_label *.
24551         (microblaze_expand_prologue): Strengthen two locals named "insn"
24552         from rtx to rtx_insn *.
24553         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
24554         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
24555         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
24556         to rtx_code_label *.
24557
24558 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24559
24560         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
24561         param from rtx to rtx_insn *.
24562         (mep_reuse_lo): Likewise for third param.
24563         (mep_use_post_modify_p): Likewise for first param.
24564         (mep_core_address_length): Likewise.
24565         (mep_cop_address_length): Likewise.
24566         (mep_final_prescan_insn): Likewise.
24567         (mep_store_data_bypass_p): Likewise for both params.
24568         (mep_mul_hilo_bypass_p): Likewise.
24569         (mep_ipipe_ldc_p): Likewise for param.
24570
24571         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
24572         (mep_rewrite_mult): Likewise.
24573         (mep_rewrite_mulsi3): Likewise.
24574         (mep_rewrite_maddsi3): Likewise.
24575         (mep_reuse_lo_p_1): Likewise.
24576         (mep_reuse_lo_p): Likewise.
24577         (mep_frame_expr): Likewise.
24578         (mep_make_parallel): Likewise for both params.
24579         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
24580         local "insn".
24581         (mep_use_post_modify_p): Likewise for param "insn".
24582         (mep_core_address_length): Likewise.
24583         (mep_cop_address_length): Likewise.
24584         (mep_reg_set_in_function): Likewise for local "insn".
24585         (mep_asm_without_operands_p): Likewise.
24586         (F): Likewise for return type and param "x".
24587         (add_constant): Likewise for local "insn".
24588         (maybe_dead_move): Likewise for return type and local "insn".
24589         (mep_expand_prologue): Likewise for local "insn".
24590         (mep_final_prescan_insn): Likewise for param "insn".
24591         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
24592         "next", "follow", "x".
24593         (mep_insert_repeat_label_last): Likewise for return type, param
24594         "last_insn", and locals "next", "prev".  Strengthen param "label"
24595         from rtx to rtx_code_label *.
24596         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
24597         rtx_insn *.
24598         (struct mep_doloop_end): Likewise for fields "insn" and
24599         "fallthrough".
24600         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
24601         Strengthen local "repeat_label" from rtx to rtx_code_label *.
24602         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
24603         rtx_insn *.
24604         (mep_invert_branch): Likewise for params "insn" and "after".
24605         (mep_reorg_erepeat): Likewise for param "insns" and locals
24606         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
24607         "l" from rtx to rtx_code_label *.
24608         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
24609         from rtx to rtx_insn *.
24610         (mep_reorg_addcombine): Likewise for param "insns" and locals
24611         "i", "n".
24612         (add_sp_insn_p): Likewise for param "insn".
24613         (mep_reorg_noframe): Likewise for param "insns" and locals
24614         "start_frame_insn", "end_frame_insn", "next".
24615         (mep_reorg): Likewise for local "insns".
24616         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
24617         cast.
24618         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
24619         (mep_mul_hilo_bypass_p): Likewise.
24620         (mep_ipipe_ldc_p): Likewise for param "insn".
24621         (mep_make_bundle): Likewise for return type, param "cop" and local
24622         "insn", splitting out the latter into a new local "seq" for when it
24623         is a SEQUENCE rather than an insn.
24624         (core_insn_p): Likewise for param "insn".
24625         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
24626         "last", "first", "note", "prev", "core_insn".
24627
24628 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24629
24630         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
24631         rtx to rtx_insn *.
24632         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
24633         (m68k_final_prescan_insn): Likewise for first param.
24634
24635         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
24636         (m68k_set_frame_related): Likewise for param "insn".
24637         (output_btst): Likewise for param "insn".
24638         (m68k_final_prescan_insn): Likewise.
24639         (m68k_move_to_reg): Likewise for local "insn".
24640         (m68k_call_tls_get_addr): Likewise for local "insns".
24641         (m68k_call_m68k_read_tp): Likewise.
24642         (strict_low_part_peephole_ok): Likewise for param "first_insn".
24643         (m68k_output_mi_thunk): Likewise for local "insn".
24644
24645 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24646
24647         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
24648         first param from rtx to rtx_insn *.
24649         (iq2000_adjust_insn_length): Likewise.
24650         (iq2000_output_conditional_branch): Likewise.
24651         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
24652         "insn" and local "nop_insn".
24653         (iq2000_annotate_frame_insn): Likewise for param "insn".
24654         (iq2000_expand_prologue): Likewise for both locals "insn".
24655         (iq2000_adjust_insn_length): Likewise for param "insn".
24656         (iq2000_output_conditional_branch): Likewise.
24657
24658 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24659
24660         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
24661         "insns" from rtx to rtx_insn *.
24662         (ia64_emit_cond_move): Likewise for locals "insn", "first".
24663         (struct spill_fill_data): Likewise for field "init_after" and for
24664         elements of array field "prev_insn".
24665         (spill_restore_mem): Likewise for locals "insn", "first".
24666         (do_spill): Likewise for local "insn".
24667         (do_restore): Likewise.
24668         (ia64_expand_prologue): Likewise.
24669         (ia64_expand_epilogue): Likewise.
24670         (emit_insn_group_barriers): Likewise for locals "insn",
24671         "last_label".
24672         (emit_all_insn_group_barriers): Likewise for locals "insn",
24673         "last".
24674         (dfa_stop_insn): Likewise for this global.
24675         (dfa_pre_cycle_insn): Likewise.
24676         (ia64_nop): Likewise.
24677         (final_emit_insn_group_barriers): Likewise for locals "insn",
24678         "last".
24679         (emit_predicate_relation_info): Likewise for locals "head", "n",
24680         "insn", "b", "a".
24681         (ia64_reorg): Likewise for local "insn".
24682         (ia64_output_mi_thunk): Likewise.
24683         (expand_vec_perm_interleave_2): Likewise for local "seq".
24684
24685 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24686
24687         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
24688         param 1 "insn" from rtx to rtx_insn *.
24689         (ix86_use_lea_for_mov): Likewise.
24690         (ix86_avoid_lea_for_addr): Likewise.
24691         (ix86_split_lea_for_addr): Likewise.
24692         (ix86_lea_for_add_ok): Likewise.
24693         (ix86_output_call_insn): Likewise.
24694
24695         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
24696         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
24697         (ix86_output_function_epilogue): Likewise for locals "insn",
24698         "deleted_debug_label".
24699         (legitimize_tls_address): Likewise for local "insn".
24700         (get_some_local_dynamic_name): Likewise.
24701         (increase_distance): Likewise for params "prev", "next".
24702         (distance_non_agu_define_in_bb): Likewise for params "insn",
24703         "start" and locals "prev", "next".
24704         (distance_non_agu_define): Likewise for param "insn".
24705         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
24706         locals "next", "prev".
24707         (distance_agu_use): Likewise for param "insn".
24708         (ix86_lea_outperforms): Likewise.
24709         (ix86_ok_to_clobber_flags): Likewise.
24710         (ix86_avoid_lea_for_add): Likewise.
24711         (ix86_use_lea_for_mov): Likewise.
24712         (ix86_avoid_lea_for_addr): Likewise.
24713         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
24714         (ix86_split_lea_for_addr): Likewise for param "insn".
24715         (ix86_lea_for_add_ok): Likewise for param "insn".
24716         (ix86_expand_carry_flag_compare): Likewise for local
24717         "compare_seq".
24718         (ix86_expand_int_movcc): Likewise.
24719         (ix86_output_call_insn): Likewise for param "insn".
24720         (ix86_output_call_insn): Likewise for local "i".
24721         (x86_output_mi_thunk): Introduce local "insn", using it in place
24722         of "tmp" when dealing with insns.
24723         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
24724         "start".
24725         (ix86_pad_returns): Likewise for locals "ret", "prev".
24726         (ix86_count_insn_bb): Likewise for local "insn".
24727         (ix86_pad_short_function): Likewise for locals "ret", "insn".
24728         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
24729         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
24730         (expand_vec_perm_interleave2): Likewise for local "seq".
24731         (expand_vec_perm_vperm2f128_vblend): Likewise.
24732         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
24733         call to for_each_rtx with for_each_rtx_in_insn.
24734
24735 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24736
24737         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
24738         "label" from rtx to rtx_code_label *.
24739         (ix86_expand_prologue): Likewise.
24740         (ix86_expand_split_stack_prologue): Likewise for locals "label",
24741         "varargs_label".
24742         (ix86_split_idivmod): Likewise for locals "end_label" and
24743         "qimode_label".
24744         (ix86_expand_branch): Likewise for local "label2".
24745         (ix86_expand_aligntest): Likewise for return type and local "label".
24746         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
24747         "top_label".
24748         (expand_movmem_epilogue): Likewise for the various locals named
24749         "label".
24750         (expand_setmem_epilogue): Likewise.
24751         (expand_small_movmem_or_setmem): Likewise for local "label".
24752         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24753         Strengthen param "done_label" from rtx * to rtx_code_label **.
24754         Strengthen locals "loop_label" and "label" from rtx to
24755         rtx_code_label *.
24756         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24757         Likewise for locals "loop_label", "label".
24758         (ix86_expand_set_or_movmem): Likewise for locals "label",
24759         "jump_around_label", "hot_label".
24760         (ix86_expand_strlensi_unroll_1): Likewise for locals
24761         "align_2_label", align_3_label", "align_4_label", "end_0_label",
24762         "end_2_label".
24763         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
24764         (void ix86_emit_i387_log1p): Likewise for locals "label1",
24765         "label2", "jump_label".
24766         (ix86_expand_sse_compare_and_jump): Likewise for return type and
24767         local "label".
24768         (ix86_expand_lfloorceil): Likewise for local "label".
24769         (ix86_expand_rint): Likewise.
24770         (ix86_expand_floorceildf_32): Likewise.
24771         (ix86_expand_floorceil): Likewise.
24772         (ix86_expand_rounddf_32): Likewise.
24773         (ix86_expand_trunc): Likewise.
24774         (ix86_expand_truncdf_32): Likewise.
24775         (ix86_expand_round): Likewise.
24776
24777 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24778
24779         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
24780         first param from rtx to rtx_insn *.
24781         (h8300_insn_length_from_table): Likewise.
24782         * config/h8300/h8300.c (F): Likewise for return type and param
24783         "x".
24784         (Fpa): Add a checked cast to rtx_insn *.
24785         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
24786         rtx_insn *.
24787         (final_prescan_insn): Likewise for param "insn".
24788         (h8300_binary_length): Likewise.
24789         (h8300_insn_length_from_table): Likewise.
24790
24791 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24792
24793         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
24794         Strengthen first param "insn" from rtx to rtx_insn *.
24795
24796         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
24797         Likewise.
24798         (frame_insn): Likewise for return type.  Introduce local "insn"
24799         for use in place of local "x" for use as an rtx_insn *.
24800         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
24801         (epiphany_expand_prologue): Likewise for local "insn".
24802         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
24803         * config/epiphany/resolve-sw-modes.c
24804         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24805         "seq".
24806
24807 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24808
24809         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24810         param from rtx to rtx_insn *.
24811         (c6x_final_prescan_insn): Likewise for first param.
24812
24813         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24814         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24815         (c6x_expand_compare): Strengthen local "insns" from rtx to
24816         rtx_insn *.
24817         (c6x_get_unit_specifier): Likewise for param "insn".
24818         (c6x_print_unit_specifier_field): Likewise.
24819         (c6x_final_prescan_insn): Likewise.
24820         (emit_add_sp_const): Likewise for local "insn".
24821         (c6x_expand_prologue): Likewise.
24822
24823 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24824
24825         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24826         param 1 from rtx to rtx_insn *.
24827         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24828         the various locals named "insn".
24829         (expand_epilogue_reg_restore): Likewise.
24830         (frame_related_constant_load): Likewise.
24831         (add_to_reg): Likewise.
24832         (emit_link_insn): Likewise.
24833         (do_link): Likewise.
24834         (expand_interrupt_handler_prologue): Likewise.
24835         (branch_dest): Likewise for param "branch".
24836         (asm_conditional_branch): Likewise for param "insn".
24837         (gen_one_bundle): Likewise for elements of param "slot" and local
24838         "t".
24839         (bfin_gen_bundles): Likewise for locals "insn", "next" and
24840         elements of local "slot".
24841         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24842         "queue", "next_queue", "prev".
24843         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24844         (add_sched_insns_for_speculation): Likewise for local "insn".
24845
24846 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24847
24848         * config/avr/avr-protos.h (output_movqi): Strengthen first param
24849         from rtx to rtx_insn *.
24850         (output_movhi): Likewise.
24851         (output_movsisf): Likewise.
24852         (avr_out_tstsi): Likewise.
24853         (avr_out_tsthi): Likewise.
24854         (avr_out_tstpsi): Likewise.
24855         (avr_out_compare): Likewise.
24856         (avr_out_compare64): Likewise.
24857         (avr_out_movpsi): Likewise.
24858         (ashlqi3_out): Likewise.
24859         (ashlhi3_out): Likewise.
24860         (ashlsi3_out): Likewise.
24861         (ashrqi3_out): Likewise.
24862         (ashrhi3_out): Likewise.
24863         (ashrsi3_out): Likewise.
24864         (lshrqi3_out): Likewise.
24865         (lshrhi3_out): Likewise.
24866         (lshrsi3_out): Likewise.
24867         (avr_out_ashlpsi3): Likewise.
24868         (avr_out_ashrpsi3): Likewise.
24869         (avr_out_lshrpsi3): Likewise.
24870         (avr_out_fract): Likewise.
24871         (avr_out_sbxx_branch): Likewise.
24872         (avr_out_round): Likewise.
24873         (avr_out_xload): Likewise.
24874         (avr_out_movmem): Likewise.
24875         (adjust_insn_length): Likewise.
24876         (avr_out_lpm): Likewise.
24877         (reg_unused_after): Likewise.
24878         (_reg_unused_after): Likewise.
24879         (avr_jump_mode): Likewise for second param.
24880         (jump_over_one_insn): Likewise for first param.
24881         (avr_final_prescan_insn): Likewise.
24882         (out_shift_with_cnt): Likewise for second param.
24883
24884         * config/avr/avr.c (get_sequence_length): Likewise for param
24885         "insns" and local "insn".
24886         (emit_push_byte): Likewise for local "insn".
24887         (emit_push_sfr): Likewise.
24888         (avr_prologue_setup_frame): Likewise for locals "insn",
24889         "fp_plus_insns", "sp_plus_insns".
24890         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24891         "sp_plus_insns".
24892         (avr_jump_mode): Likewise for param "insn".
24893         (avr_final_prescan_insn): Likewise.
24894         (avr_find_unused_d_reg): Likewise.
24895         (avr_out_lpm_no_lpmx): Likewise.
24896         (avr_out_lpm): Likewise.
24897         (avr_out_xload): Likewise.
24898         (output_movqi): Likewise.
24899         (output_movhi): Likewise.
24900         (out_movqi_r_mr): Likewise.
24901         (out_movhi_r_mr): Likewise.
24902         (out_movsi_r_mr): Likewise.
24903         (out_movsi_mr_r): Likewise.
24904         (output_movsisf): Likewise.
24905         (avr_out_load_psi): Likewise.
24906         (avr_out_store_psi): Likewise.
24907         (avr_out_movpsi): Likewise.
24908         (out_movqi_mr_r): Likewise.
24909         (avr_out_movhi_mr_r_xmega): Likewise.
24910         (out_movhi_mr_r): Likewise.
24911         (compare_condition): Likewise for param "insn" and local "next".
24912         (compare_sign_p): Likewise for param "insn".
24913         (compare_diff_p): Likewise.
24914         (compare_eq_p): Likewise.
24915         (avr_out_compare): Likewise.
24916         (avr_out_compare64): Likewise.
24917         (avr_out_tsthi): Likewise.
24918         (avr_out_tstpsi): Likewise.
24919         (avr_out_tstsi): Likewise.
24920         (out_shift_with_cnt): Likewise.
24921         (ashlqi3_out): Likewise.
24922         (ashlhi3_out): Likewise.
24923         (avr_out_ashlpsi3): Likewise.
24924         (ashlsi3_out): Likewise.
24925         (ashrqi3_out): Likewise.
24926         (ashrhi3_out): Likewise.
24927         (avr_out_ashrpsi3): Likewise.
24928         (ashrsi3_out): Likewise.
24929         (lshrqi3_out): Likewise.
24930         (lshrhi3_out): Likewise.
24931         (avr_out_lshrpsi3): Likewise.
24932         (lshrsi3_out): Likewise.
24933         (avr_out_fract): Likewise.
24934         (avr_out_round): Likewise.
24935         (avr_adjust_insn_length): Likewise.
24936         (reg_unused_after): Likewise.
24937         (_reg_unused_after): Likewise.
24938         (avr_compare_pattern): Likewise.
24939         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24940         and locals "branch1", "branch2", "insn2", "jump".
24941         (avr_reorg): Likewise for local "insn".
24942         (avr_2word_insn_p): Likewise for param "insn".
24943         (jump_over_one_insn_p): Likewise.
24944         (avr_out_sbxx_branch): Likewise.
24945         (avr_out_movmem): Likewise.
24946
24947 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24948
24949         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24950         param from rtx to rtx_insn *.
24951         (thumb1_final_prescan_insn): Likewise.
24952         (thumb2_final_prescan_insn): Likewise.
24953
24954         * config/arm/arm.c (emit_set_insn): Strengthen return type from
24955         rtx to rtx_insn *.
24956         (struct minipool_node): Likewise for field "insn".
24957         (dump_minipool): Likewise for param "scan".
24958         (create_fix_barrier): Likewise for local "from".  Strengthen local
24959         "label" from rtx to rtx_code_label *.
24960         (push_minipool_barrier): Strengthen param "insn" from rtx to
24961         rtx_insn *.
24962         (push_minipool_fix): Likewise.
24963         (note_invalid_constants): Likewise.
24964         (thumb2_reorg): Likewise for local "insn".
24965         (arm_reorg): Likewise.
24966         (thumb2_final_prescan_insn): Likewise for param
24967         "insn" and local "first_insn".
24968         (arm_final_prescan_insn): Likewise for param "insn" and locals
24969         "start_insn", "this_insn".
24970         (arm_debugger_arg_offset): Likewise for param "insn".
24971         (thumb1_emit_multi_reg_push): Likewise for return type and local
24972         "insn".
24973         (thumb1_final_prescan_insn): Likewise for param "insn".
24974         (thumb_far_jump_used_p): Likewise for local "insn".
24975         (thumb1_expand_prologue): Likewise.
24976         (arm_expand_epilogue_apcs_frame): Likewise.
24977         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24978         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24979         from rtx to rtx_code_label *.
24980         (arm_split_atomic_op): Likewise for local "label".
24981         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24982
24983 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24984
24985         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24986         first param from rtx to rtx_insn *.
24987         (arc_verify_short): Likewise.
24988         (arc_short_long): Likewise.
24989         (arc_need_delay): Likewise.
24990
24991         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24992         "target_insn".
24993         (arc_ccfsm_advance): Likewise for param "insn" and locals
24994         "start_insn", "this_insn".
24995         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24996         (arc_ccfsm_post_advance): Likewise for param "insn".
24997         (arc_next_active_insn): Likewise for return type and param "insn".
24998         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
24999         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
25000         (output_short_suffix): Likewise for local "insn".
25001         (arc_final_prescan_insn): Likewise for param "insn".  Remove
25002         now-redundant checked cast.
25003         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
25004         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
25005         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
25006         for use where lc_set became an insn.
25007         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
25008         rtx to rtx_insn *.
25009         (arc_get_insn_variants): Likewise for local "prev".
25010         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
25011         "next".
25012         (arc_predicate_delay_insns): Likewise for local "insn".
25013         (arc_pad_return): Likewise for local "prev".  For now, add a
25014         checked cast when extracting the insn from "final_sequence".
25015         (arc_short_long): Likewise for param "insn".
25016         (arc_need_delay): Likewise for param "insn" and local "next".
25017         (arc_label_align): Likewise for locals "prev", "next".
25018
25019 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
25020
25021         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
25022         "insn" from rtx to rtx_insn *.
25023         (alpha_gp_save_rtx): Likewise for local "seq".
25024         (alpha_instantiate_decls): Likewise for local "top".
25025         (get_some_local_dynamic_name): Likewise for local "insn".
25026         (alpha_does_function_need_gp): Likewise.
25027         (set_frame_related_p): Likewise for return type and for locals
25028         "seq" and "insn".
25029         (emit_frame_store_1): Likewise for local "insn".
25030         (alpha_expand_prologue): Likewise for locals "insn", "seq".
25031         (alpha_end_function): Likewise for local "insn".
25032         (alpha_output_mi_thunk_osf): Likewise.
25033         (alphaev4_insn_pipe): Likewise for param "insn".
25034         (alphaev5_insn_pipe): Likewise.
25035         (alphaev4_next_group): Likewise for return type and param 1
25036         "insn".
25037         (alphaev5_next_group): Likewise.
25038         (alpha_align_insns_1): Likewise for return type and param 1 of
25039         callback param "next_group", and for locals "i", "next", "prev",
25040         "where", "where2", "insn".
25041
25042 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
25043
25044         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
25045         rather than modifying the stmt.
25046
25047 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
25048
25049         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
25050         cgraph_state conversion.
25051
25052 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
25053
25054         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
25055         Strengthen local "insns" from rtx to rtx_insn *.
25056         (aarch64_set_frame_expr): Likewise for local "insn".
25057         (aarch64_save_or_restore_fprs): Likewise.
25058         (aarch64_save_or_restore_callee_save_registers): Likewise.
25059         (aarch64_expand_prologue): Likewise.
25060         (aarch64_expand_epilogue): Likewise.
25061         (aarch64_output_mi_thunk): Likewise.
25062         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
25063         "label2" from rtx to rtx_code_label *.
25064         (aarch64_split_atomic_op): Likewise for local "label".
25065
25066 2014-08-25  Martin Liska  <mliska@suse.cz>
25067
25068         * cgraph.h (symtab_node):
25069         (bool needed_p (void)): created from decide_is_symbol_needed
25070         (bool referred_to_p (void)): created from referred_to_p
25071         (static cgraph_node *get_for_asmname (tree asmname)):
25072         created from symtab_node_for_asm
25073         * cgraph.h (cgraph_node):
25074         (void assemble_thunks_and_aliases (void)):
25075         created from assemble_thunks_and_aliases
25076         (void expand (void)): created from expand_function
25077         (static void finalize_function (tree, bool)):
25078         created from cgraph_finalize_function
25079         (static cgraph_local_info *local_info (tree decl)):
25080         created from cgraph_local_info
25081         (static cgraph_global_info *global_info (tree)):
25082         created from cgraph_global_info
25083         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
25084         * cgraph.h (varpool_node):
25085         (static void add (tree decl): created from varpool_add_new_variable
25086         * cgraph.h (cgraph_edge):
25087         void remove (void);
25088         (void remove_caller (void)): created from cgraph_edge_remove_caller
25089         (void remove_callee (void)): created from cgraph_edge_remove_callee
25090         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
25091         created from cgraph_set_call_stmt
25092         (void redirect_callee (cgraph_node *n)): created from
25093         cgraph_redirect_edge_callee
25094         (cgraph_edge *make_direct (cgraph_node *callee)): created from
25095         cgraph_make_edge_direct
25096         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
25097         gimple redirect_call_stmt_to_callee (void)): created from
25098         cgraph_turn_edge_to_speculative
25099         (void speculative_call_info (cgraph_edge *&direct,
25100         cgraph_edge *&indirect, ipa_ref *&reference)): created from
25101         cgraph_speculative_call_info
25102         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt,
25103         unsigned stmt_uid, gcov_type count_scale,
25104         int freq_scale, bool update_original)): created from cgraph_clone_edge
25105         (cgraph_edge *resolve_speculation (tree callee_decl)):
25106         created from cgraph_resolve_speculation
25107         (bool cannot_lead_to_return_p (void)): created from
25108         cannot_lead_to_return_p
25109         (bool recursive_p (void)): created from cgraph_edge_recursive_p
25110         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
25111         (static unsigned int rebuild_edges (void)): created from
25112         rebuild_cgraph_edges
25113         (static void rebuild_references (void)): created from
25114         cgraph_rebuild_references
25115         * cgraph.h (symbol_table):
25116         (create_reference): renamed from add_reference
25117         (maybe_create_reference): renamed from maybe_add_reference
25118         (void register_symbol (symtab_node *node)): new function
25119         (void clear_asm_symbols (void)): new function
25120         (void unregister (symtab_node *node)): new function
25121         (void release_symbol (cgraph_node *node, int uid)): new function
25122         (cgraph_node * allocate_cgraph_symbol (void)): new function
25123         (void initialize (void)): created from cgraph_init
25124         (symtab_node *first_symbol (void)):new function
25125         (asm_node *first_asm_symbol (void)):new function
25126         (symtab_node *first_defined_symbol (void)):new function
25127         (varpool_node *first_variable (void)):new function
25128         (varpool_node *next_variable (varpool_node *node)):new function
25129         (varpool_node *first_static_initializer (void)):new function
25130         (varpool_node *next_static_initializer (varpool_node *node)):new
25131         function
25132         (varpool_node *first_defined_variable (void)):new function
25133         (varpool_node *next_defined_variable (varpool_node *node)):new function
25134         (cgraph_node *first_defined_function (void)):new function
25135         (cgraph_node *next_defined_function (cgraph_node *node)):new function
25136         (cgraph_node *first_function (void)):new function
25137         (cgraph_node *next_function (cgraph_node *node)):new function
25138         (cgraph_node *first_function_with_gimple_body (void)):new function
25139         (asm_node *finalize_toplevel_asm (tree asm_str)): created from
25140         add_asm_node
25141         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
25142         created from symtab_remove_unreachable_nodes
25143         (void remove_unreferenced_decls (void)): created from
25144         varpool_remove_unreferenced_decls
25145         (void process_new_functions (void)): created from
25146         cgraph_process_new_functions
25147         (void process_same_body_aliases (void)): created from
25148         cgraph_process_same_body_aliases
25149         (bool output_variables (void)): created from
25150         varpool_node::output_variables
25151         (void output_asm_statements (void)): created from output_asm_statements
25152         (void finalize_compilation_unit (void)): created from
25153         finalize_compilation_unit
25154         (void compile (void)): created from compile
25155         (void output_weakrefs (void)): created from output_weakrefs
25156         (cgraph_node *create_empty (void)): created from
25157         cgraph_node::create_empty
25158         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee,
25159         gimple call_stmt, gcov_type count, int freq,
25160         bool indir_unknown_callee)): created from cgraph_node::create_edge
25161         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
25162         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
25163         created from cgraph_next_function_with_gimple_body
25164         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
25165         created from cgraph_remove_edge_removal_hook
25166         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook,
25167         void *)): created from cgraph_add_node_removal_hook
25168         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
25169         created from cgraph_remove_node_removal_hook
25170         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook,
25171         void *)): created from varpool_add_node_removal_hook
25172         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
25173         created from varpool_remove_node_removal_hook
25174         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook,
25175         void *)): created from cgraph_add_function_insertion_hook
25176         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
25177         created from cgraph_remove_function_insertion_hook
25178         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook,
25179         void *)): created from varpool_add_variable_insertion_hook
25180         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
25181           created from varpool_remove_variable_insertion_hook
25182         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook,
25183         void *)): created from cgraph_add_edge_duplication_hook
25184         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
25185         created from cgraph_remove_edge_duplication_hook
25186         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook,
25187         void *)): created from cgraph_add_node_duplication_hook
25188         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
25189         created from cgraph_remove_node_duplication_hook
25190         (void call_edge_removal_hooks (cgraph_edge *e)):
25191         created from cgraph_call_edge_removal_hooks
25192         (void call_cgraph_insertion_hooks (cgraph_node *node)):
25193         created from call_function_insertion_hooks
25194         (void call_cgraph_removal_hooks (cgraph_node *node)):
25195         created from cgraph_call_node_removal_hooks
25196         (void call_cgraph_duplication_hooks (cgraph_node *node,
25197         cgraph_node *node2)): created from cgraph_node::call_duplication_hooks
25198         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
25199         created from cgraph_call_edge_duplication_hooks
25200         (void call_varpool_removal_hooks (varpool_node *node)):
25201         created from varpool_call_node_removal_hooks
25202         (void call_varpool_insertion_hooks (varpool_node *node)):
25203         created from varpool_call_variable_insertion_hooks
25204         (void insert_to_assembler_name_hash (symtab_node *node,
25205         bool with_clones)): created from insert_to_assembler_name_hash
25206         (void unlink_from_assembler_name_hash (symtab_node *node,
25207         bool with_clones)): created from unlink_from_assembler_name_hash
25208         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
25209         created from symtab_prevail_in_asm_name_hash
25210         (void symtab_initialize_asm_name_hash (void)):
25211         created from symtab_initialize_asm_name_hash
25212         (void change_decl_assembler_name (tree decl, tree name)):
25213         created from change_decl_assembler_name
25214         (void materialize_all_clones (void)): created from
25215         cgraph_materialize_all_clones
25216         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
25217         created from decl_assembler_name_hash
25218         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
25219         created from decl_assembler_name_equal
25220         (static hashval_t hash_node_by_assembler_name (const void *p)):
25221         created from hash_node_by_assembler_name
25222         (static int eq_assembler_name (const void *p1, const void *p2)):
25223         created from eq_assembler_name
25224
25225 2014-08-25  Marek Polacek  <polacek@redhat.com>
25226
25227         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
25228
25229 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
25230
25231         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
25232         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
25233         SWI1248_AVX512BW mode iterator.
25234
25235 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
25236
25237         PR target/62111
25238         * config/sh/predicates.md (general_extend_operand): Disable
25239         TRUNCATE before reload completes.
25240
25241 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
25242
25243         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
25244
25245 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
25246
25247         PR target/61996
25248         * config/sh/sh.opt (musermode): Allow negative form.
25249         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
25250         targets that don't support it.
25251         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
25252         Document -mno-usermode option.
25253
25254 2014-08-24  Kito Cheng  <kito@0xlab.org>
25255
25256         * system.h (CALLER_SAVE_PROFITABLE): Poison.
25257         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
25258         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
25259         * doc/tm.texi: Regenerate.
25260
25261 2014-08-24  Kito Cheng  <kito@0xlab.org>
25262
25263         * ira.c: Fix typo in comment.
25264
25265 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
25266
25267         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
25268         Deprecate c++1y. Change language to reflect greater confidence in C++14.
25269
25270 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
25271
25272         PR target/62038
25273         * config/pa/pa.c (pa_output_function_epilogue): Don't set
25274         last_address when the current function is a thunk.
25275         (pa_asm_output_mi_thunk): When we don't have named sections or they
25276         are not being used, check that thunk can reach the stub table with a
25277         short branch.
25278
25279 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25280
25281         * web.c (union_match_dups): Strengthen param "insn" from rtx to
25282         rtx_insn *.
25283         (pass_web::execute): Likewise for local "insn".
25284
25285 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25286
25287         * var-tracking.c (struct micro_operation_def): Strengthen field
25288         "insn" from rtx to rtx_insn *.
25289         (struct emit_note_data_def): Likewise.
25290         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
25291         (vt_stack_adjustments): Likewise for local "insn".
25292         (adjust_insn): Likewise for param "insn".
25293         (val_store): Likewise.
25294         (val_resolve): Likewise.
25295         (struct count_use_info): Likewise for field "insn".
25296         (log_op_type): Likewise for param "insn".
25297         (reverse_op): Likewise.
25298         (prepare_call_arguments): Likewise.
25299         (add_with_sets):  The initial param takes an insn, but we can't
25300         yet strengthen it from rtx to rtx_insn * since it's used as a
25301         cselib_record_sets_hook callback.  For now rename initial param
25302         from "insn" to "uncast_insn", and introduce a local "insn" of
25303         the stronger rtx_insn * type, with a checked cast.
25304         (compute_bb_dataflow): Strengthen local "insn" from rtx to
25305         rtx_insn *.
25306         (emit_note_insn_var_location): Likewise.
25307         (emit_notes_for_changes): Likewise.
25308         (emit_notes_for_differences): Likewise.
25309         (next_non_note_insn_var_location): Likewise for return type and
25310         for param "insn".
25311         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
25312         (vt_initialize): Likewise for local "insn".
25313         (delete_debug_insns): Likewise for locals "insn" and "next".
25314
25315 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25316
25317         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
25318         rtx_insn *.
25319         (mark_constant_pool): Likewise for local "insn".
25320
25321 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25322
25323         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
25324         rtx to rtx_insn *.
25325         (dead_debug_promote_uses): Likewise.
25326         (dead_debug_insert_temp): Likewise.
25327
25328 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
25329
25330         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
25331         from const_rtx to const rtx_insn *.
25332         (store_killed_after): Likewise.  Strengthen locals "last", "act"
25333         from rtx to rtx_insn *.
25334         (store_killed_before): Strengthen param "insn" from const_rtx to
25335         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
25336         (find_moveable_store): Strengthen param "insn" from rtx to
25337         rtx_insn *.
25338         (compute_store_table): Likewise for local "insn".
25339         (insert_insn_start_basic_block): Likewise for param "insn" and
25340         locals "prev", "before", "insn".
25341         (insert_store): For now, add a checked cast to rtx_insn * on the
25342         result of gen_move_insn.
25343         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
25344         to rtx_insn *.
25345         (replace_store_insn): Likewise.  For now, add a checked cast to
25346         rtx_insn * on the result of gen_move_insn.
25347
25348 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25349
25350         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
25351         rtx_insn *.
25352         (expand_sjlj_dispatch_table): Likewise.
25353
25354 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25355
25356         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
25357         "insn" from rtx to rtx_insn *.
25358
25359 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25360
25361         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
25362         "insn" from rtx to rtx_insn *.
25363         (dup_block_and_redirect): Likewise for param 3 "before".
25364
25365         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
25366         from rtx to rtx_insn *.
25367         (move_insn_for_shrink_wrap): Likewise.
25368         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
25369         (dup_block_and_redirect): Likewise for param "before" and local
25370         "insn".
25371         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
25372         "end".
25373         (convert_to_simple_return): Likewise for local "start".
25374
25375         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
25376         Strengthen local "insn" from rtx to rtx_insn *, for use when
25377         invoking requires_stack_frame_p.
25378
25379 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25380
25381         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
25382         rtx_insn *.
25383         (speculate_expr): Likewise for locals "orig_insn_rtx",
25384         "spec_insn_rtx".
25385         (eq_transformed_insns): Likewise for locals "i1", "i2".
25386         (check_for_new_jump): Likewise for return type and local "end".
25387         (find_new_jump): Likewise for return type and local "jump".
25388         (sel_split_edge): Likewise for local "jump".
25389         (sel_create_recovery_block): Likewise.
25390         (sel_redirect_edge_and_branch_force): Likewise.
25391         (sel_redirect_edge_and_branch): Likewise.
25392
25393 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25394
25395         * sel-sched.c (substitute_reg_in_expr): Strengthen local
25396         "new_insn" from rtx to rtx_insn *.
25397         (create_insn_rtx_with_rhs): Likewise for return type and for local
25398         "insn_rtx".
25399         (create_insn_rtx_with_lhs): Likewise.
25400         (create_speculation_check): Likewise for local "insn_rtx".
25401         (implicit_clobber_conflict_p): Likewise for local "insn".
25402         (get_expr_cost): Likewise.
25403         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
25404         (move_cond_jump): Likewise for locals "next", "prev", "link",
25405         "head", "from", "to".
25406
25407 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25408
25409         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
25410         "next" from rtx to rtx_insn *.
25411         (find_conditional_protection): Likewise for local "next".
25412         (is_conditionally_protected): Likewise for local "insn1".
25413         (is_pfree): Likewise for locals "insn1", "insn2".
25414
25415 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25416
25417         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
25418         from rtx to rtx_insn *.
25419
25420         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
25421         locals "insn1", "insn2" from rtx to rtx_insn *.
25422         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
25423         locals "insn", "prev", "last_jump", "next_tail".
25424         (schedule_ebb): Likewise for params "head", "tail".
25425         (schedule_ebbs): Likewise for locals "tail", "head".
25426
25427         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
25428         to rtx_insn on "last_insn" in one of the invocations of
25429         schedule_ebb.
25430
25431 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25432
25433         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
25434         "elem", "insn" from rtx to rtx_insn *.
25435         (change_spec_dep_to_hard): Likewise.
25436         (get_back_and_forw_lists): Likewise for local "con".
25437         (sd_add_dep): Likewise for locals "elem", "insn".
25438         (sd_resolve_dep): Likewise for locals "pro", "con".
25439         (sd_unresolve_dep): Likewise.
25440         (sd_delete_dep): Likewise.
25441         (chain_to_prev_insn): Likewise for local "pro".
25442         (find_inc): Likewise for locals "pro", "con".
25443
25444 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25445
25446         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
25447         to rtx_insn *.
25448         (reg_set_between_p): Strengthen local "insn" from const_rtx to
25449         const rtx_insn *.
25450         (modified_between_p): Strengthen local "insn" from rtx to
25451         rtx_insn *.
25452         (remove_reg_equal_equiv_notes_for_regno): Likewise.
25453         (keep_with_call_p): Strengthen local "i2" from const_rtx to
25454         const rtx_insn *.
25455
25456 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25457
25458         * resource.c (next_insn_no_annul): Strengthen local "next" from
25459         rtx to rtx_insn *.
25460         (mark_referenced_resources): Likewise for local "insn".
25461
25462 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25463
25464         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
25465         to rtx_insn *.
25466         (find_reloads): Likewise for param 1.
25467         (subst_reloads): Likewise for sole param.
25468         (find_equiv_reg): Likwise for param 2.
25469         (regno_clobbered_p): Likwise for param 2.
25470         (reload): Likewise for param 1.
25471
25472         * caller-save.c (save_call_clobbered_regs): Strengthen local
25473         "insn" from rtx to rtx_insn *.
25474         (insert_one_insn): Likewise for local "insn".
25475
25476         * reload.c (this_insn): Likewise for this global.
25477         (find_reloads): Likewise for param "insn".
25478         (find_reloads_toplev): Likewise.
25479         (find_reloads_address): Likewise.
25480         (subst_reg_equivs): Likewise.
25481         (update_auto_inc_notes): Likewise.
25482         (find_reloads_address_1): Likewise.
25483         (find_reloads_subreg_address): Likewise.
25484         (subst_reloads): Likewise.
25485         (find_equiv_reg): Likewise, also for local "p".
25486         (regno_clobbered_p): Likewise for param "insn".
25487
25488         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
25489         array.
25490         (spill_reg_store): Likewise for the elements of this array.
25491         (remove_init_insns): Likewise for local "equiv_insn".
25492         (will_delete_init_insn_p): Likewise for param "insn".
25493         (reload): Likewise for param ""first" and local "insn".
25494         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
25495         rtx_insn *.
25496         (calculate_elim_costs_all_insns): Likewise.
25497         (delete_caller_save_insns): Likewise.
25498         (spill_failure): Likewise for param "insn".
25499         (delete_dead_insn): Likewise.
25500         (set_label_offsets): Likewise.
25501         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
25502         "prev_insn".
25503         (elimination_costs_in_insn): Likewise for param "insn".
25504         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
25505         when referring to an insn.
25506         (set_initial_label_offsets): Likewise.
25507         (set_offsets_for_label): Strengthen param "insn" from rtx to
25508         rtx_insn *.
25509         (init_eliminable_invariants): Likewise for param "first" and local
25510         "insn".
25511         (fixup_eh_region_note): Likewise for param "insn".
25512         (reload_as_needed): Likewise for locals "prev", "insn",
25513         "old_next", "old_prev", "next".
25514         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
25515         "last".
25516         (reload_inheritance_insn): Strengthen elements of this array from
25517         rtx to rtx_insn *.
25518         (failed_reload): Likewise for param "insn".
25519         (choose_reload_regs): Likewise for local "insn".  Replace use of
25520         NULL_RTX with NULL when referring to an insn.
25521         (input_reload_insns): Strengthen elements of this array from rtx
25522         to rtx_insn *.
25523         (other_input_address_reload_insns): Likewise for this global.
25524         (other_input_reload_insns): Likewise for this global.
25525         (input_address_reload_insns): Likwise for the elements of this
25526         array.
25527         (inpaddr_address_reload_insns): Likwise for the elements of this
25528         array.
25529         (output_reload_insns): Likewise for the elements of this array.
25530         (output_address_reload_insns): Likewise for the elements of this
25531         array.
25532         (outaddr_address_reload_insns): Likewise for the elements of this
25533         array.
25534         (operand_reload_insns): Likewise for this global.
25535         (other_operand_reload_insns): Likewise for this global.
25536         (other_output_reload_insns): Likewise for the elements of this
25537         array.
25538         (new_spill_reg_store): Likewise for the elements of this
25539         array.
25540         (emit_input_reload_insns): Likewise for locals "insn", "temp".
25541         Strengthen local "where" from rtx * to rtx_insn **.
25542         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
25543         from rtx to rtx_insn *.
25544         (do_input_reload): Likewise for local "insn".
25545         (do_output_reload): Likewise for local "insn".
25546         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
25547         (emit_insn_if_valid_for_reload): Likewise for return type and local
25548         "last".  Add checked cast to rtx_insn when returning "insn" since
25549         this has been through emit_insn.
25550         (gen_reload): Strengthen return type and locals "last", "insn", "set"
25551         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
25552         returning "insn" since it's been through
25553         emit_insn_if_valid_for_reload at this point.
25554         (delete_output_reload): Strengthen param "insn" and locals
25555         "output_reload_insn", "i2" from rtx to rtx_insn *.
25556         (delete_address_reloads): Likewise for params "dead_insn",
25557         "current_insn" and locals "prev", "next".
25558         (delete_address_reloads_1): Likewise for params "dead_insn",
25559         "current_insn" and locals "prev", "i2".
25560         (inc_for_reload): Likewise for locals "last", "add_insn".
25561         (add_auto_inc_notes): Strengthen param "insn" from rtx to
25562         rtx_insn *.
25563
25564         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
25565         param of this duplicate of the prototype from reload.h
25566
25567 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25568
25569         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
25570         rtx to rtx_insn *.
25571         (regstat_bb_compute_calls_crossed): Likewise.
25572
25573 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25574
25575         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
25576         to rtx_insn *.
25577         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
25578         with an insn.
25579         (regrename_analyze): Strengthen local "insn" from rtx to
25580         rtx_insn *.
25581         (scan_rtx_reg): Likewise for param "insn".
25582         (scan_rtx_address): Likewise.
25583         (scan_rtx): Likewise.
25584         (restore_operands): Likewise.
25585         (record_out_operands): Likewise.
25586         (build_def_use): Likewise for local "insn".  Replace use of
25587         NULL_RTX with NULL when dealing with an insn.
25588
25589 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25590
25591         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
25592         * reginfo.c (reg_scan): Likewise, also for local "insn".
25593         (reg_scan_mark_refs): Likewise for param "insn".
25594         (init_subregs_of_mode): Likewise for local "insn".
25595
25596 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25597
25598         * regcprop.c (struct queued_debug_insn_change): Strengthen field
25599         "insn" from rtx to rtx_insn *.
25600         (replace_oldest_value_reg): Likewise for param "insn".
25601         (replace_oldest_value_addr): Likewise.
25602         (replace_oldest_value_mem): Likewise.
25603         (apply_debug_insn_changes): Likewise for local "last_insn".
25604         (copyprop_hardreg_forward_1): Likewise for local "insn".
25605
25606 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25607
25608         * reg-stack.c (next_flags_user): Strengthen return type and param
25609         "insn" from rtx to rtx_insn *.
25610         (straighten_stack): Likewise for param "insn".
25611         (check_asm_stack_operands): Likewise.
25612         (remove_regno_note): Likewise.
25613         (emit_pop_insn): Likewise for return type, param "insn", local
25614         "pop_insn".
25615         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
25616         "limit" from rtx to rtx_insn *.
25617         (swap_to_top): Likewise for param "insn".
25618         (move_for_stack_reg): Likewise.
25619         (move_nan_for_stack_reg): Likewise.
25620         (swap_rtx_condition): Likewise.
25621         (compare_for_stack_reg): Likewise.
25622         (subst_all_stack_regs_in_debug_insn): Likewise.
25623         (subst_stack_regs_pat): Likewise, and local "insn2".
25624         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
25625         rtx_insn *.
25626         (subst_stack_regs): Likewise.
25627         (change_stack): Likewise.
25628         (convert_regs_1): Likewise for locals "insn", "next".
25629
25630 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25631
25632         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
25633         rtx_insn *.
25634         (combine_set_extension): Likewise for param "curr_insn".
25635         (transform_ifelse): Likewise for param "def_insn".
25636         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
25637         from vec<rtx> * to vec<rtx_insn *> *.
25638         (is_cond_copy_insn): Likewise for param "insn".
25639         (struct ext_state): Strengthen the four vec fields from vec<rtx>
25640         to vec<rtx_insn *>.
25641         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
25642         local "def_insn" from rtx to rtx_insn *.
25643         (get_sub_rtx): Likewise for param "def_insn".
25644         (merge_def_and_ext): Likewise.
25645         (combine_reaching_defs): Likewise.
25646         (add_removable_extension): Likewise for param "insn".
25647         (find_removable_extensions): Likewise for local "insn".
25648         (find_and_remove_re): Likewise for locals "curr_insn" and
25649         "def_insn".  Strengthen locals "reinsn_del_list" and
25650         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
25651
25652 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25653
25654         * recog.c (split_insn): Strengthen param "insn" and locals
25655         "first", "last" from rtx to rtx_insn *.
25656         (split_all_insns): Likewise for locals "insn", "next".
25657         (split_all_insns_noflow): Likewise.
25658
25659 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25660
25661         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
25662         const rtx_insn *.
25663         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25664         (debug_rtx_find): Likewise for param 1 "x".
25665
25666         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
25667         const_rtx to const rtx_insn *.  Likewise for local "insn".
25668         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25669         (debug_rtx_find): Likewise for param 1 "x".
25670         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
25671         from const_rtx to const rtx_insn * within the appropriate cases of
25672         the switch statement.
25673
25674         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
25675         Strengthen local "insns" from rtx to rtx_insn * since this is
25676         passed to a call to debug_rtx_list.
25677
25678 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25679
25680         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
25681         to rtx_insn *.
25682
25683         * function.c (stack_protect_epilogue): Add checked cast to
25684         rtx_insn for now when invoking predict_insn_def.
25685
25686         * predict.c (predict_insn): Strengthen param "insn" from rtx to
25687         rtx_insn *.
25688         (predict_insn_def): Likewise.
25689         (rtl_predict_edge): Likewise for local "last_insn".
25690         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
25691         const rtx_insn *.
25692         (combine_predictions_for_insn): Strengthen param "insn" from rtx
25693         to rtx_insn *.
25694         (bb_estimate_probability_locally): Likewise for local "last_insn".
25695         (expensive_function_p): Likewise for local "insn".
25696
25697         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
25698         local "jmp", since this is used when invoking predict_insn_def.
25699
25700 2014-08-22  Marek Polacek  <polacek@redhat.com>
25701
25702         PR c++/62199
25703         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
25704
25705 2014-08-22  Marek Polacek  <polacek@redhat.com>
25706
25707         PR c/61271
25708         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
25709         a comparison in parens.
25710         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
25711         in parens.
25712
25713 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25714
25715         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
25716         rtx_insn *.
25717
25718         * cprop.c (fis_get_condition): Likewise.
25719
25720         * postreload.c (reload_cse_regs): Likewise for param "first".
25721         (reload_cse_simplify): Likewise for param "insn".
25722         (reload_cse_regs_1): Likewise for local "insn".
25723         (reload_cse_simplify_set): Likewise for param "insn".
25724         (reload_cse_simplify_operands): Likewise.
25725         (struct reg_use): Likewise for field "insn".
25726         (reload_combine_purge_insn_uses): Likewise for param "insn".
25727         (fixup_debug_insns): Likewise for params "from", "to" and local
25728         "insn".
25729         (try_replace_in_use): Likewise for local "use_insn".
25730         (reload_combine_recognize_const_pattern): Likewise for param
25731         "insn" and locals "add_moved_after_insn", "use_insn".
25732         (reload_combine_recognize_pattern): Likewise for param "insn" and
25733         local "prev".
25734         (reload_combine): Likewise for locals "insn", "prev".
25735         (reload_combine_note_use): Likewise for param "insn".
25736         (move2add_use_add2_insn): Likewise.
25737         (move2add_use_add3_insn): Likewise.
25738         (reload_cse_move2add): Likewise, also for local "next".
25739         (move2add_note_store): Likewise for local "insn".
25740
25741 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25742
25743         * postreload-gcse.c (struct occr): Strengthen field "insn" from
25744         rtx to rtx_insn *.
25745         (struct unoccr): Likewise.
25746         (struct modifies_mem): Likewise.
25747         (alloc_mem): Likewise for local "insn".
25748         (insert_expr_in_table): Likewise for param "insn".
25749         (dump_expr_hash_table_entry): Likewise for local "insn".
25750         (oprs_unchanged_p): Likewise for param "insn".
25751         (load_killed_in_block_p): Likewise for local "setter".
25752         (record_last_reg_set_info): Likewise for param "insn".
25753         (record_last_reg_set_info_regno): Likewise.
25754         (record_last_mem_set_info): Likewise.
25755         (record_last_set_info): Likewise for local "last_set_insn".
25756         (record_opr_changes): Likewise for param "insn".
25757         (hash_scan_set): Likewise.
25758         (compute_hash_table): Likewise for local "insn".
25759         (get_avail_load_store_reg): Likewise for param "insn".
25760         (eliminate_partially_redundant_load): Likewise, also for locals
25761         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
25762         RTX for insns.
25763         (eliminate_partially_redundant_loads): Likewise for local "insn".
25764
25765 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25766
25767         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
25768         rtx to rtx_insn *.
25769         (expand_binop): Likewise for locals "entry_last", "last", "insns"
25770         (expand_twoval_unop): Likewise for locals entry_last", "last".
25771         (expand_twoval_binop): Likewise.
25772         (expand_twoval_binop_libfunc): Likewise for local "insns".
25773         (widen_leading): Likewise for local "last".
25774         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
25775         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
25776         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
25777         (expand_parity): Likewise for locals "last" and "seq".
25778         (expand_ffs): Likewise for local "seq".  Strengthen local
25779         "nonzero_label" from rtx to rtx_code_label *.
25780         (expand_absneg_bit): Strengthen local "insns" from rtx to
25781         rtx_insn *.
25782         (expand_unop_direct): Likewise for local "last".
25783         (expand_unop): Likewise for locals "last", "insns".
25784         (expand_abs_nojump): Likewise for local "last".
25785         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
25786         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
25787         rtx_insn *.
25788         (expand_copysign_absneg): Strengthen local "label" from rtx to
25789         rtx_code_label *.
25790         (expand_copysign_bit): Strengthen local "insns" from rtx to
25791         rtx_insn *.
25792         (struct no_conflict_data): Likewise for fields "first", "insn".
25793         (emit_libcall_block_1): Likewise for param "insns" and locals
25794         "next", "last", "insn".
25795         (emit_libcall_block): For now, add a checked cast to rtx_insn *
25796         on "insns" when invoking emit_libcall_block_1.  Ultimately we
25797         want to strengthen insns itself.
25798         (prepare_cmp_insn): Strengthen local "last" from rtx to
25799         rtx_insn *.
25800         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
25801         (prepare_float_lib_cmp): Likewise for local "insns".
25802         (emit_conditional_move): Likewise for local "last".
25803         (emit_conditional_add): Likewise.
25804         (have_sub2_insn): Likewise for local "seq".
25805         (expand_float): Likewise for local "insns".  Strengthen locals
25806         "label", "neglabel" from rtx to rtx_code_label *.
25807         (expand_fix): Likewise for locals "last", "insn", "insns" (to
25808         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
25809         (expand_fixed_convert): Likewise for local "insns" (to
25810         rtx_insn *).
25811         (expand_sfix_optab): Likewise for local "last".
25812         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
25813         to rtx_code_label *.
25814         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
25815         from rtx to rtx_insn *.
25816         (expand_atomic_fetch_op): Likewise for local "insn".
25817         (maybe_legitimize_operand_same_code): Likewise for local "last".
25818         (maybe_legitimize_operands): Likewise.
25819
25820 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25821
25822         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
25823         "insn" from rtx to rtx_insn *.
25824         (ps_rtl_insn): Likewise for return type.
25825         (doloop_register_get): Likewise for params "head", "tail" and
25826         locals "insn", "first_insn_not_to_check".
25827         (schedule_reg_move): Likewise for local "this_insn".
25828         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25829         of gen_move_insn for now.
25830         (reset_sched_times): Strengthen local "insn" from rtx to
25831         rtx_insn *.
25832         (permute_partial_schedule): Likewise.
25833         (duplicate_insns_of_cycles): Likewise for local "u_insn".
25834         (dump_insn_location): Likewise for param "insn".
25835         (loop_canon_p): Likewise for local "insn".
25836         (sms_schedule): Likewise.
25837         (print_partial_schedule): Likewise.
25838         (ps_has_conflicts): Likewise.
25839
25840 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25841
25842         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25843         "tailp" from rtx * to rtx_insn **.
25844
25845         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25846         from rtx to rtx_insn *.
25847         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25848         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
25849         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25850         rtx to rtx_insn *.
25851         * modulo-sched.c (const_iteration_count): Strengthen return type
25852         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
25853         use of NULL_RTX with NULL when working with insns.
25854         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25855         to rtx_insn *.
25856         (sms_schedule): Likewise.
25857         * sched-rgn.c (init_ready_list): Likewise, also for locals
25858         "src_head" and "src_next_tail".
25859         (compute_block_dependences): Likewise.
25860         (free_block_dependencies): Likewise.
25861         (debug_rgn_dependencies): Likewise.
25862         (free_rgn_deps): Likewise.
25863         (compute_priorities): Likewise.
25864         (schedule_region): Likewise.
25865         * sel-sched.c (find_ebb_boundaries): Likewise.
25866
25867         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25868         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25869
25870 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25871
25872         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25873         from rtx to rtx_insn *.
25874         (new_seginfo): Likewise for param "insn".
25875         (create_pre_exit): Likewise for locals "last_insn",
25876         "before_return_copy", "return_copy".
25877         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25878         "mode_set".
25879
25880 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25881
25882         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25883         from rtx to rtx_insn *.
25884         (lra_push_insn): Likewise for 1st param.
25885         (lra_push_insn_and_update_insn_regno_info): Likewise.
25886         (lra_pop_insn): Likewise for return type.
25887         (lra_invalidate_insn_data): Likewise for 1st param.
25888         (lra_set_insn_deleted): Likewise.
25889         (lra_delete_dead_insn): Likewise.
25890         (lra_process_new_insns): Likewise for first 3 params.
25891         (lra_set_insn_recog_data): Likewise for 1st param.
25892         (lra_update_insn_recog_data): Likewise.
25893         (lra_set_used_insn_alternative): Likewise.
25894         (lra_invalidate_insn_regno_info): Likewise.
25895         (lra_update_insn_regno_info): Likewise.
25896         (lra_former_scratch_operand_p): Likewise.
25897         (lra_eliminate_regs_1): Likewise.
25898         (lra_get_insn_recog_data): Likewise.
25899
25900         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25901         rtx to rtx_insn *.
25902
25903         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25904         "mv1" and "mv2".
25905         (substitute_within_insn): New.
25906         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25907         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
25908         Replace call to "substitute" with call to substitute_within_insn.
25909
25910         * lra-constraints.c (curr_insn): Strengthen from rtx to
25911         rtx_insn *.
25912         (get_equiv_with_elimination): Likewise for param "insn".
25913         (match_reload): Strengthen params "before" and "after" from rtx *
25914         to rtx_insn **.
25915         (emit_spill_move): Likewise for return type.  Add a checked cast
25916         to rtx_insn * on result of gen_move_insn for now.
25917         (check_and_process_move): Likewise for local "before".  Replace
25918         NULL_RTX with NULL when referring to insns.
25919         (process_addr_reg): Strengthen params "before" and "after" from
25920         rtx * to rtx_insn **.
25921         (insert_move_for_subreg): Likewise.
25922         (simplify_operand_subreg): Strengthen locals "before" and "after"
25923         from rtx to rtx_insn *.
25924         (process_address_1): Strengthen params "before" and "after" from
25925         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
25926         rtx to rtx_insn *.
25927         (process_address): Strengthen params "before" and "after" from
25928         rtx * to rtx_insn **.
25929         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25930         (curr_insn_transform): Strengthen locals "before" and "after"
25931         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
25932         to insns.
25933         (loc_equivalence_callback): Update cast of "data", changing
25934         resulting type from rtx to rtx_insn *.
25935         (substitute_pseudo_within_insn): New.
25936         (inherit_reload_reg): Strengthen param "insn" from rtx to
25937         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
25938         NULL when referring to insns.  Add a checked cast to rtx_insn *
25939         when using usage_insn to invoke lra_update_insn_regno_info.
25940         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25941         likewise for locals "restore", "save".  Add checked casts to
25942         rtx_insn * when using usage_insn to invoke
25943         lra_update_insn_regno_info and lra_process_new_insns.  Replace
25944         NULL_RTX with NULL when referring to insns.
25945         (split_if_necessary): Strengthen param "insn" from rtx to
25946         rtx_insn *.
25947         (update_ebb_live_info): Likewise for params "head", "tail" and local
25948         "prev_insn".
25949         (get_last_insertion_point): Likewise for return type and local "insn".
25950         (get_live_on_other_edges): Likewise for local "last".
25951         (inherit_in_ebb): Likewise for params "head", "tail" and locals
25952         "prev_insn", "next_insn", "restore".
25953         (remove_inheritance_pseudos): Likewise for local "prev_insn".
25954         (undo_optional_reloads): Likewise for local "insn".
25955
25956         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25957         "insn".
25958         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25959         insns.
25960         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25961         rtx_insn *.
25962         (spill_pseudos): Likewise for local "insn".
25963         (init_elimination): Likewise.
25964         (process_insn_for_elimination): Likewise for param "insn".
25965
25966         * lra-lives.c (curr_insn): Likewise.;
25967
25968         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25969         (remove_pseudos): Likewise for param "insn".
25970         (spill_pseudos): Likewise for local "insn".
25971         (lra_final_code_change): Likewise for locals "insn", "curr".
25972
25973         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25974         (lra_set_insn_deleted): Likewise.
25975         (lra_delete_dead_insn): Likewise, and for local "prev".
25976         (new_insn_reg): Likewise for param "insn".
25977         (lra_set_insn_recog_data): Likewise.
25978         (lra_update_insn_recog_data): Likewise.
25979         (lra_set_used_insn_alternative): Likewise.
25980         (get_insn_freq): Likewise.
25981         (invalidate_insn_data_regno_info): Likewise.
25982         (lra_invalidate_insn_regno_info): Likewise.
25983         (lra_update_insn_regno_info): Likewise.
25984         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25985         vec<rtx_insn *>.
25986         (lra_push_insn_1): Strengthen param "insn" from rtx to
25987         rtx_insn *.
25988         (lra_push_insn): Likewise.
25989         (lra_push_insn_and_update_insn_regno_info): Likewise.
25990         (lra_pop_insn): Likewise for return type and local "insn".
25991         (push_insns): Likewise for params "from", "to", and local "insn".
25992         (setup_sp_offset): Likewise for params "from", "last" and locals
25993         "before", "insn".
25994         (lra_process_new_insns): Likewise for params "insn", "before",
25995         "after" and local "last".
25996         (struct sloc): Likewise for field "insn".
25997         (lra_former_scratch_operand_p): Likewise for param "insn".
25998         (remove_scratches): Likewise for locals "insn", "last".
25999         (check_rtl): Likewise for local "insn".
26000         (add_auto_inc_notes): Likewise for param "insn".
26001         (update_inc_notes): Likewise for local "insn".
26002         (lra): Replace NULL_RTX with NULL when referring to insn.
26003
26004 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26005
26006         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
26007         to rtx_insn *.
26008         (resolve_reg_notes): Likewise.
26009         (resolve_simple_move): Likewise for return type, param "insn", and
26010         locals "insns", "minsn".
26011         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
26012         (resolve_use): Likewise.
26013         (resolve_debug): Likewise.
26014         (find_decomposable_shift_zext): Likewise.
26015         (resolve_shift_zext): Likewise for return type, param "insn", and
26016         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
26017         (decompose_multiword_subregs): Likewise for local "insn",
26018         "orig_insn", "decomposed_shift", "end".
26019
26020 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26021
26022         * basic-block.h (basic_block split_edge_and_insert): Strengthen
26023         param "insns" from rtx to rtx_insn *.
26024
26025         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
26026         rtx to rtx_insn *.
26027         (struct iv_to_split): Likewise.
26028         (loop_exit_at_end_p): Likewise for local "insn".
26029         (split_edge_and_insert): Likewise for param "insns".
26030         (compare_and_jump_seq): Likewise for return type, param "cinsn",
26031         and locals "seq", "jump".
26032         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
26033         "branch_code"; update invocations of compare_and_jump_seq to
26034         eliminate NULL_RTX in favor of NULL.
26035         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
26036         rtx to rtx_insn *.
26037         (reset_debug_uses_in_loop): Likewise.
26038         (analyze_insn_to_expand_var): Likewise for param "insn".
26039         (analyze_iv_to_split_insn): Likewise.
26040         (analyze_insns_in_loop): Likewise for local "insn".
26041         (insert_base_initialization): Likewise for param
26042         "insn" and local "seq".
26043         (split_iv): Likewise for param "insn" and local "seq".
26044         (expand_var_during_unrolling): Likewise for param "insn".
26045         (insert_var_expansion_initialization): Likewise for local "seq".
26046         (combine_var_copies_in_loop_exit): Likewise.
26047         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
26048         "insn".
26049         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
26050         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
26051         "next".
26052
26053 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26054
26055         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
26056         rtx_insn *.
26057         (iv_analyze_result): Likewise.
26058         (iv_analyze_expr): Likewise.
26059         (biv_p): Likewise.
26060
26061         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
26062         local "def_insn" from rtx to rtx_insn *.
26063         (get_biv_step_1): Likewise for local "insn".
26064         (iv_analyze_expr): Likewise for param "insn".
26065         (iv_analyze_def): Likewise for local "insn".
26066         (iv_analyze_op): Likewise for param "insn".
26067         (iv_analyze): Likewise.
26068         (iv_analyze_result): Likewise.
26069         (biv_p): Likewise.
26070         (suitable_set_for_replacement): Likewise.
26071         (simplify_using_initial_values): Likewise for local "insn".
26072         (iv_number_of_iterations): Likewise for param "insn".
26073         (check_simple_exit): Add checked cast to rtx_insn when invoking
26074         iv_number_of_iterations for now (until get_condition is
26075         strengthened).
26076
26077         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
26078         "insn" from rtx to rtx_insn *.
26079         (analyze_insns_in_loop): Likewise for local "insn".
26080
26081 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26082
26083         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
26084         to rtx_insn *.
26085         (struct invariant): Likewise.
26086         (hash_invariant_expr_1): Likewise for param "insn".
26087         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
26088         (find_exits): Likewise for local "insn".
26089         (create_new_invariant): Likewise for param "insn".
26090         (check_dependencies): Likewise.
26091         (find_invariant_insn): Likewise.
26092         (record_uses): Likewise.
26093         (find_invariants_insn): Likewise.
26094         (find_invariants_bb): Likewise for local "insn".
26095         (get_pressure_class_and_nregs): Likewise for param "insn".
26096         (calculate_loop_reg_pressure): Likewise for local "insn".
26097
26098 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26099
26100         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
26101         to rtx_insn *.
26102         (add_test): Likewise for locals "seq", "jump".
26103         (doloop_modify): Likewise for locals "sequence", "jump_insn".
26104
26105 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26106
26107         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
26108         rtx_insn *.
26109         (rebuild_jump_labels_chain): Likewise for param "chain".
26110
26111         * cfgexpand.c (pass_expand::execute): Add checked cast to
26112         rtx_insn * when calling rebuild_jump_labels_chain in region where
26113         we know e->insns.r is non-NULL.
26114
26115         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
26116         rtx_insn *.
26117         (rebuild_jump_labels): Likewise.
26118         (rebuild_jump_labels_chain): Likewise for param "chain".
26119         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
26120         (init_label_info): Likewise for param "f".
26121         (maybe_propagate_label_ref): Likewise for params "jump_insn",
26122         "prev_nonjump_insn".
26123         (mark_all_labels): Likewise for param "f" and locals "insn",
26124         "prev_nonjump_insn".
26125
26126 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26127
26128         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
26129         from rtx to rtx_insn *insn.
26130         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
26131         (ira_add_allocno_copy): Likewise.
26132         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
26133         rtx to rtx_insn *.
26134         (ira_create_copy): Likewise.
26135         (ira_add_allocno_copy): Likewise.
26136         (create_bb_allocnos): Likewise for local "insn".
26137         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
26138         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
26139         process_regs_for_copy for rtx_insn * param.
26140         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
26141         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
26142         process_regs_for_copy for rtx_insn * param.
26143         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
26144         * ira-costs.c (record_reg_classes): Likewise for param "insn".
26145         (record_operand_costs): Likewise.
26146         (scan_one_insn): Likewise for return type, and for param "insn".
26147         (process_bb_for_costs): Likewise for local "insn".
26148         (process_bb_node_for_hard_reg_moves): Likewise.
26149         * ira-emit.c (struct move): Likewise for field "insn".
26150         (create_move): Eliminate use of NULL_RTX when dealing with an
26151         rtx_insn *.
26152         (emit_move_list): Strengthen return type and locals "result",
26153         "insn" from rtx to rtx_insn *insn.
26154         (emit_moves): Likewise for locals "insns", "tmp".
26155         (ira_emit): Likewise for local "insn".
26156         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
26157         "insn".
26158         (find_call_crossed_cheap_reg): Likewise.
26159         (process_bb_node_lives): Likewise for local "insn".
26160         * ira.c (decrease_live_ranges_number): Likewise.
26161         (compute_regs_asm_clobbered): Likewise.
26162         (build_insn_chain): Likewise.
26163         (find_moveable_pseudos): Likewise, also locals "def_insn",
26164         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
26165         to rtx_insn **.  Add a checked cast when assigning from
26166         "closest_use" into closest_uses array in a region where we know
26167         it's a non-NULL insn.
26168         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
26169         to rtx_insn *.
26170         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
26171         "last_interesting_insn", "uin".
26172         (move_unallocated_pseudos): Likewise for locals "def_insn",
26173         "move_insn", "newinsn".
26174
26175 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26176
26177         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
26178         Strengthen locals "done_label", "do_error" from rtx to
26179         rtx_code_label *.
26180         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
26181         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
26182         rtx_code_label *.
26183         (ubsan_expand_si_overflow_neg_check): Likewise for locals
26184         "done_label", "do_error" to rtx_code_label * and local  "last" to
26185         rtx_insn *.
26186         (ubsan_expand_si_overflow_mul_check): Likewise for locals
26187         "done_label", "do_error", "large_op0", "small_op0_large_op1",
26188         "one_small_one_large", "both_ops_large", "after_hipart_neg",
26189         "after_lopart_neg", "do_overflow", "hipart_different"  to
26190         rtx_code_label * and local  "last" to rtx_insn *.
26191
26192 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26193
26194         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
26195         "insn" and "move_insn" from rtx to rtx_insn *.
26196
26197 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26198
26199         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
26200         rtx_insn *.
26201         (cheap_bb_rtx_cost_p): Likewise.
26202         (first_active_insn): Likewise for return type and local "insn".
26203         (last_active_insn):  Likewise for return type and locals "insn",
26204         "head".
26205         (struct noce_if_info): Likewise for fields "jump", "insn_a",
26206         "insn_b".
26207         (end_ifcvt_sequence): Likewise for return type and locals "insn",
26208         "seq".
26209         (noce_try_move): Likewise for local "seq".
26210         (noce_try_store_flag): Likewise.
26211         (noce_try_store_flag_constants): Likewise.
26212         (noce_try_addcc): Likewise.
26213         (noce_try_store_flag_mask): Likewise.
26214         (noce_try_cmove): Likewise.
26215         (noce_try_minmax): Likewise.
26216         (noce_try_abs): Likewise.
26217         (noce_try_sign_mask): Likewise.
26218         (noce_try_bitop): Likewise.
26219         (noce_can_store_speculate_p): Likewise for local "insn".
26220         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
26221         seq".
26222         (check_cond_move_block): Likewise for local "insn".
26223         (cond_move_convert_if_block): Likewise.
26224         (cond_move_process_if_block): Likewise for locals "seq",
26225         "loc_insn".
26226         (noce_find_if_block): Likewise for local "jump".
26227         (merge_if_block): Likewise for local "last".
26228         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
26229         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
26230         (block_has_only_trap): Likewise for return type and local "trap".
26231         (find_if_case_1): Likewise for local "jump".
26232         (dead_or_predicable): Likewise for locals "head", "end", "jump",
26233         "insn".
26234
26235 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26236
26237         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
26238         "last_insn", "loop_end" from rtx to rtx_insn *.
26239
26240         * hw-doloop.c (scan_loop): Likewise for local "insn".
26241         (discover_loop): Likewise for param "tail_insn".
26242         (discover_loops): Likewise for local "tail".
26243
26244         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
26245         cast to rtx_insn * when assigning from an rtx local to a
26246         hwloop_info's "last_insn" field.
26247
26248 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26249
26250         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
26251         (add_delay_dependencies): Strengthen local "pro" from rtx to
26252         rtx_insn *.
26253         (recompute_todo_spec): Likewise.
26254         (dep_cost_1): Likewise for locals "insn", "used".
26255         (schedule_insn): Likewise for local "dbg".
26256         (schedule_insn): Likewise for locals "pro", "next".
26257         (unschedule_insns_until): Likewise for local "con".
26258         (restore_pattern): Likewise for local "next".
26259         (estimate_insn_tick): Likewise for local "pro".
26260         (resolve_dependencies): Likewise for local "next".
26261         (fix_inter_tick): Likewise.
26262         (fix_tick_ready): Likewise for local "pro".
26263         (add_to_speculative_block): Likewise for locals "check", "twin",
26264         "pro".
26265         (sched_extend_bb): Likewise for locals "end", "insn".
26266         (init_before_recovery): Likewise for local "x".
26267         (sched_create_recovery_block): Likewise for local "barrier".
26268         (create_check_block_twin): Likewise for local "pro".
26269         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
26270         "consumer".
26271         (unlink_bb_notes): Update for change to type of bb_header.
26272         Strengthen locals "prev", "label", "note", "next" from rtx to
26273         rtx_insn *.
26274         (clear_priorities): Likewise for local "pro".
26275
26276 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26277
26278         * gcse.c (struct occr): Strengthen field "insn" from rtx to
26279         rtx_insn *.
26280         (test_insn): Likewise for this global.
26281         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
26282         const rtx_insn *.
26283         (oprs_anticipatable_p): Likewise.
26284         (oprs_available_p): Likewise.
26285         (insert_expr_in_table): Strengthen param "insn" from  rtx to
26286         rtx_insn *.
26287         (hash_scan_set): Likewise.
26288         (hash_scan_clobber): Likewise.
26289         (hash_scan_call): Likewise.
26290         (hash_scan_insn): Likewise.
26291         (compute_hash_table_work): Likewise for local "insn".
26292         (process_insert_insn): Likewise for return type and local "pat".
26293         (insert_insn_end_basic_block): Likewise for locals "new_insn",
26294         "pat", "pat_end", "maybe_cc0_setter".
26295         (pre_edge_insert): Likewise for local "insn".
26296         (pre_insert_copy_insn): Likewise for param "insn".
26297         (pre_insert_copies): Likewise for local "insn".
26298         (struct set_data): Likewise for field "insn".
26299         (single_set_gcse): Likewise for param "insn".
26300         (gcse_emit_move_after): Likewise.
26301         (pre_delete): Likewise for local "insn".
26302         (update_bb_reg_pressure): Likewise for param "from" and local
26303         "insn".
26304         (should_hoist_expr_to_dom): Likewise for param "from".
26305         (hoist_code): Likewise for local "insn".
26306         (get_pressure_class_and_nregs): Likewise for param "insn".
26307         (calculate_bb_reg_pressure): Likewise for local "insn".
26308         (compute_ld_motion_mems): Likewise.
26309
26310 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26311
26312         * genpeep.c (main): Rename param back from "uncast_ins1" to
26313         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
26314         checked cast.
26315
26316         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
26317
26318 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
26319
26320         PR target/62195
26321         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
26322         documentation to state it is only for VSX operations.
26323
26324         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
26325         constraint only active if VSX.
26326
26327         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
26328         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
26329         (lfiwzx): Likewise.
26330
26331 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26332
26333         * fwprop.c (single_def_use_dom_walker::before_dom_children):
26334         Strengthen local "insn" from rtx to rtx_insn *.
26335         (use_killed_between): Likewise for param "target_insn".
26336         (all_uses_available_at): Likewise for param "target_insn" and
26337         local "next".
26338         (update_df_init): Likewise for params "def_insn", "insn".
26339         (update_df): Likewise for param "insn".
26340         (try_fwprop_subst): Likewise for param "def_insn" and local
26341         "insn".
26342         (free_load_extend): Likewise for param "insn".
26343         (forward_propagate_subreg): Likewise for param "def_insn" and
26344         local "use_insn".
26345         (forward_propagate_asm): Likewise for param "def_insn" and local
26346         "use_insn".
26347         (forward_propagate_and_simplify): Likewise for param "def_insn"
26348         and local "use_insn".
26349         (forward_propagate_into): Likewise for locals "def_insn" and
26350         "use_insn".
26351
26352 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26353
26354         * function.c (emit_initial_value_sets): Strengthen local "seq"
26355         from rtx to rtx_insn *.
26356         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
26357         local "seq".
26358         (instantiate_virtual_regs): Likewise for local "insn".
26359         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
26360         (reorder_blocks_1): Likewise for param "insns" and local "insn".
26361         (expand_function_end): Likewise for locals "insn" and "seq".
26362         (epilogue_done): Likewise for local "insn".
26363         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
26364         "last", "trial".
26365         (reposition_prologue_and_epilogue_notes): Likewise for locals
26366         "insn", "last", "note", "first".
26367         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
26368         (pass_match_asm_constraints::execute): Likewise for local "insn".
26369
26370 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26371
26372         * output.h (final_scan_insn): Strengthen return type from rtx to
26373         rtx_insn *.
26374         (final_forward_branch_p): Likewise for param.
26375         (current_output_insn): Likewise for this global.
26376
26377         * final.c (rtx debug_insn): Likewise for this variable.
26378         (current_output_insn): Likewise.
26379         (get_attr_length_1): Rename param "insn" to "uncast_insn",
26380         adding "insn" back in as an rtx_insn * with a checked cast, so
26381         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
26382         first param.
26383         (compute_alignments): Strengthen local "label" from rtx to
26384         rtx_insn *.
26385         (shorten_branches): Rename param from "first" to "uncast_first",
26386         introducing a new local rtx_insn * "first" using a checked cast to
26387         effectively strengthen "first" from rtx to rtx_insn * without
26388         affecting the type signature.  Strengthen locals "insn", "seq",
26389         "next", "label" from rtx to rtx_insn *.
26390         (change_scope): Strengthen param "orig_insn" and local "insn" from
26391         rtx to rtx_insn *.
26392         (final_start_function): Rename param from "first" to "uncast_first",
26393         introducing a new local rtx_insn * "first" using a checked cast to
26394         effectively strengthen "first" from rtx to rtx_insn * without
26395         affecting the type signature.  Strengthen local "insn" from rtx to
26396         rtx_insn *.
26397         (dump_basic_block_info): Strengthen param "insn" from rtx to
26398         rtx_insn *.
26399         (final): Rename param from "first" to "uncast_first",
26400         introducing a new local rtx_insn * "first" using a checked cast to
26401         effectively strengthen "first" from rtx to rtx_insn * without
26402         affecting the type signature.  Strengthen locals "insn", "next"
26403         from rtx to rtx_insn *.
26404         (output_alternate_entry_point): Strengthen param "insn" from rtx to
26405         rtx_insn *.
26406         (call_from_call_insn): Strengthen param "insn" from rtx to
26407         rtx_call_insn *.
26408         (final_scan_insn): Rename param from "insn" to "uncast_insn",
26409         introducing a new local rtx_insn * "insn" using a checked cast to
26410         effectively strengthen "insn" from rtx to rtx_insn * without
26411         affecting the type signature.  Strengthen return type and locals
26412         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
26413         now-redundant checked cast to rtx_insn * from both invocations of
26414         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
26415         introducing a local "call_insn" for use when invoking
26416         call_from_call_insn.
26417         (notice_source_line): Strengthen param "insn" from rtx to
26418         rtx_insn *.
26419         (leaf_function_p): Likewise for local "insn".
26420         (final_forward_branch_p): Likewise.
26421         (leaf_renumber_regs): Likewise for param "first".
26422         (rest_of_clean_state): Likewise for locals "insn" and "next".
26423         (self_recursive_call_p): Likewise for param "insn".
26424         (collect_fn_hard_reg_usage): Likewise for local "insn".
26425         (get_call_fndecl): Likewise for param "insn".
26426         (get_call_cgraph_rtl_info): Likewise.
26427         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
26428         introducing a new local rtx_insn * "insn" using a checked cast to
26429         effectively strengthen "insn" from rtx to rtx_insn * without
26430         affecting the type signature.
26431
26432         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
26433         cast when assigning from param "insn" to current_output_insn.
26434         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
26435         so that we can assign it back to current_output_insn.
26436
26437 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
26438
26439         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
26440         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
26441         atmxt540s and atmxt540sreva devices.
26442         * config/avr/avr-tables.opt: Regenerate.
26443         * config/avr/t-multilib: Regenerate.
26444         * doc/avr-mmcu.texi: Regenerate.
26445
26446 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26447
26448         * expr.c (convert_move): Strengthen local "insns" from rtx to
26449         rtx_insn *.
26450         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
26451         "top_label" from rtx to rtx_code_label *.
26452         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
26453         rtx_insn *.
26454         (emit_single_push_insn): Likewise for locals "prev", "last".
26455         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
26456         to rtx_code_label *.
26457         (store_constructor): Likewise for locals "loop_start", "loop_end".
26458         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
26459         rtx_insn *.
26460         (expand_expr_real_2): Likewise.
26461         (expand_expr_real_1): Strengthen local "label" from rtx to
26462         rtx_code_label *.
26463
26464 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26465
26466         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
26467         from rtx to rtx_insn *.
26468         (store_bit_field_1): Likewise.
26469         (extract_bit_field_1): Likewise.
26470         (expand_mult_const): Likewise for local "insns".
26471         (expmed_mult_highpart): Strengthen local "label" from rtx to
26472         rtx_code_label *.
26473         (expand_smod_pow2): Likewise.
26474         (expand_sdiv_pow2): Likewise.
26475         (expand_divmod): Strengthen locals "last", "insn" from rtx to
26476         rtx_insn *.  Strengthen locals "label", "label1", "label2",
26477         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
26478         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
26479         (emit_store_flag): Likewise.
26480         (emit_store_flag_force): Strengthen local "label" from rtx to
26481         rtx_code_label *.
26482         (do_cmp_and_jump): Likewise for param "label".
26483
26484 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26485
26486         * explow.c (force_reg): Strengthen local "insn" from rtx to
26487         rtx_insn *.
26488         (adjust_stack_1): Likewise.
26489         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
26490         "final_label", "available_label", "space_available" from rtx to
26491         rtx_code_label *.
26492         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
26493         (anti_adjust_stack_and_probe): Likewise.
26494
26495 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26496
26497         * except.h (sjlj_emit_function_exit_after): Strengthen param
26498         "after" from rtx to rtx_insn *.  This is only called with
26499         result of get_last_insn (in function.c) so type-change should be
26500         self-contained.
26501
26502         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
26503         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
26504         to rtx_insn *.  These fields are only used from except.c so this
26505         type-change should be self-contained to this patch.
26506
26507         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
26508         local "last" from rtx to rtx_insn *.
26509         (dw2_build_landing_pads): Likewise for local "seq".
26510         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
26511         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
26512         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
26513         rtx to rtx_insn *.
26514         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
26515         to rtx_insn *.
26516         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
26517         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
26518         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
26519         referring to an insn.  Strengthen local "dispatch_label" from
26520         rtx to rtx_code_label *.
26521         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
26522         rtx_insn *.
26523         (expand_eh_return): Strengthen local "around_label" from
26524         rtx to rtx_code_label *.
26525         (convert_to_eh_region_ranges): Strengthen locals "iter",
26526         "last_action_insn", "first_no_action_insn",
26527         "first_no_action_insn_before_switch",
26528         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
26529
26530 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26531
26532         * dwarf2out.c (last_var_location_insn): Strengthen this variable
26533         from rtx to rtx_insn *.
26534         (cached_next_real_insn): Likewise.
26535         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
26536         working with insns.
26537         (dwarf2out_var_location): Strengthen locals "next_real",
26538         "next_note", "expected_next_loc_note", "last_start", "insn" from
26539         rtx to rtx_insn *.
26540
26541 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26542
26543         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
26544         from rtx to rtx_insn *.
26545         (create_pseudo_cfg): Likewise for local "insn".
26546
26547 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26548
26549         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
26550         from rtx to rtx_insn *.
26551         (df_bb_regno_last_def_find): Likewise.
26552
26553         * df-problems.c (df_rd_bb_local_compute): Likewise.
26554         (df_lr_bb_local_compute): Likewise.
26555         (df_live_bb_local_compute): Likewise.
26556         (df_chain_remove_problem): Likewise.
26557         (df_chain_create_bb): Likewise.
26558         (df_word_lr_bb_local_compute): Likewise.
26559         (df_remove_dead_eq_notes): Likewise for param "insn".
26560         (df_note_bb_compute): Likewise for local "insn".
26561         (simulate_backwards_to_point): Likewise.
26562         (df_md_bb_local_compute): Likewise.
26563
26564         * df-scan.c (df_scan_free_bb_info): Likewise.
26565         (df_scan_start_dump): Likewise.
26566         (df_scan_start_block): Likewise.
26567         (df_install_ref_incremental): Likewise for local "insn".
26568         (df_insn_rescan_all): Likewise.
26569         (df_reorganize_refs_by_reg_by_insn): Likewise.
26570         (df_reorganize_refs_by_insn_bb): Likewise.
26571         (df_recompute_luids): Likewise.
26572         (df_bb_refs_record): Likewise.
26573         (df_update_entry_exit_and_calls): Likewise.
26574         (df_bb_verify): Likewise.
26575
26576 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26577
26578         * ddg.h (struct ddg_node): Strengthen fields "insn" and
26579         "first_note" from rtx to rtx_insn *.
26580         (get_node_of_insn): Likewise for param 2 "insn".
26581         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
26582
26583         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
26584         rtx_insn *.
26585         (mem_write_insn_p): Likewise.
26586         (mem_access_insn_p): Likewise.
26587         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
26588         (def_has_ccmode_p): Likewise for param "insn".
26589         (add_cross_iteration_register_deps): Likewise for locals
26590         "def_insn" and "use_insn".
26591         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
26592         (build_intra_loop_deps): Likewise for local "src_insn".
26593         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
26594         to rtx_insn *.
26595         (get_node_of_insn): Likewise for param "insn".
26596
26597 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26598
26599         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
26600         (deletable_insn_p): Strengthen param "insn" from rtx to
26601         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
26602         find_call_stack_args, since this is guarded by CALL_P (insn).
26603         (marked_insn_p): Strengthen param "insn" from rtx to
26604         rtx_insn *.
26605         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
26606         invoking find_call_stack_args, since this is guarded by
26607         CALL_P (insn).
26608         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
26609         rtx_insn *; we know this is an insn since this was called by
26610         mark_nonreg_stores.
26611         (mark_nonreg_stores_2): Likewise.
26612         (mark_nonreg_stores): Strengthen param "insn" from rtx to
26613         rtx_insn *.
26614         (find_call_stack_args): Strengthen param "call_insn" from rtx to
26615         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
26616         to rtx_insn *.
26617         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
26618         from rtx to rtx_insn *.
26619         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
26620         "next", "ref_insn".
26621         (delete_unmarked_insns): Likewise for locals "insn", "next".
26622         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
26623         (mark_reg_dependencies): Likewise for param "insn".
26624         (rest_of_handle_ud_dce): Likewise for local "insn".
26625         (word_dce_process_block): Likewise.
26626         (dce_process_block): Likewise.
26627
26628 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26629
26630         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
26631         from rtx to rtx_insn *.
26632         (struct change_cc_mode_args): Likewise for field "insn".
26633         (this_insn): Strengthen from rtx to rtx_insn *.
26634         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
26635         with insn.
26636         (validate_canon_reg): Strengthen param "insn" from rtx to
26637         rtx_insn *.
26638         (canon_reg): Likewise.
26639         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
26640         dealing with insn.
26641         (record_jump_equiv): Strengthen param "insn" from rtx to
26642         rtx_insn *.
26643         (try_back_substitute_reg): Likewise, also for locals "prev",
26644         "bb_head".
26645         (find_sets_in_insn): Likewise for param "insn".
26646         (canonicalize_insn): Likewise.
26647         (cse_insn): Likewise.  Add a checked cast.
26648         (invalidate_from_clobbers): Likewise for param "insn".
26649         (invalidate_from_sets_and_clobbers): Likewise.
26650         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
26651         dealing with insn.
26652         (cse_prescan_path): Strengthen local "insn" from rtx to
26653         rtx_insn *.
26654         (cse_extended_basic_block): Likewise for locals "insn" and
26655         "prev_insn".
26656         (cse_main): Likewise for param "f".
26657         (check_for_label_ref): Likewise for local "insn".
26658         (set_live_p): Likewise for second param ("insn").
26659         (insn_live_p): Likewise for first param ("insn") and for local
26660         "next".
26661         (cse_change_cc_mode_insn): Likewise for first param "insn".
26662         (cse_change_cc_mode_insns): Likewise for first and second params
26663         "start" and "end".
26664         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
26665         and "end".
26666         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
26667         "cc_src_insn".
26668
26669 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26670             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26671             Anna Tikhonova  <anna.tikhonova@intel.com>
26672             Ilya Tocar  <ilya.tocar@intel.com>
26673             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26674             Ilya Verbin  <ilya.verbin@intel.com>
26675             Kirill Yukhin  <kirill.yukhin@intel.com>
26676             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26677
26678         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
26679         New.
26680         * config/i386/sse.md
26681         (define_mode_iterator VI248_AVX2): Delete.
26682         (define_mode_iterator VI2_AVX2_AVX512BW): New.
26683         (define_mode_iterator VI48_AVX2): Ditto.
26684         (define_insn <shift_insn><mode>3): Delete.
26685         (define_insn "<shift_insn><mode>3<mask_name>" with
26686         VI2_AVX2_AVX512BW): New.
26687         (define_insn "<shift_insn><mode>3<mask_name>" with
26688         VI48_AVX2): Ditto.
26689
26690 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26691             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26692             Anna Tikhonova  <anna.tikhonova@intel.com>
26693             Ilya Tocar  <ilya.tocar@intel.com>
26694             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26695             Ilya Verbin  <ilya.verbin@intel.com>
26696             Kirill Yukhin  <kirill.yukhin@intel.com>
26697             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26698
26699         * config/i386/sse.md
26700         (define_mode_iterator VI4F_BRCST32x2): New.
26701         (define_mode_attr 64x2_mode): Ditto.
26702         (define_mode_attr 32x2mode): Ditto.
26703         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
26704         with VI4F_BRCST32x2): Ditto.
26705         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
26706         with V16FI mode iterator): Ditto.
26707         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26708         with V16FI): Ditto.
26709         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26710         with VI8F_BRCST64x2): Ditto.
26711
26712 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26713             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26714             Anna Tikhonova  <anna.tikhonova@intel.com>
26715             Ilya Tocar  <ilya.tocar@intel.com>
26716             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26717             Ilya Verbin  <ilya.verbin@intel.com>
26718             Kirill Yukhin  <kirill.yukhin@intel.com>
26719             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26720
26721         * config/i386/sse.md
26722         (define_mode_iterator VI8_AVX512VL): New.
26723         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
26724
26725 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
26726
26727         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
26728         (define_mode_iterator V48_AVX512VL): New.
26729         (define_mode_iterator V12_AVX512VL): Ditto.
26730         (define_insn <avx512>_load<mode>_mask): Split into two similar
26731         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
26732         Refactor output template.
26733         (define_insn "<avx512>_store<mode>_mask"): Ditto.
26734
26735 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26736
26737         * cprop.c (struct occr): Strengthen field "insn" from rtx to
26738         rtx_insn *.
26739         (reg_available_p): Likewise for param "insn".
26740         (insert_set_in_table): Likewise.
26741         (hash_scan_set): Likewise.
26742         (hash_scan_insn): Likewise.
26743         (make_set_regs_unavailable): Likewise.
26744         (compute_hash_table_work): Likewise for local "insn".
26745         (reg_not_set_p): Strengthen param "insn" from const_rtx to
26746         const rtx_insn *.
26747         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
26748         (try_replace_reg): Likewise.
26749         (find_avail_set): Likewise.
26750         (cprop_jump): Likewise for params "setcc", "jump".
26751         (constprop_register): Likewise for param "insn".
26752         (cprop_insn): Likewise.
26753         (do_local_cprop): Likewise.
26754         (local_cprop_pass): Likewise for local "insn".
26755         (bypass_block): Likewise for params "setcc" and "jump".
26756         (bypass_conditional_jumps): Likewise for locals "setcc" and
26757         "insn".
26758         (one_cprop_pass): Likewise for local "insn".
26759
26760 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26761
26762         * compare-elim.c (struct comparison_use): Strengthen field "insn"
26763         from rtx to rtx_insn *.
26764         (struct comparison): Likewise, also for field "prev_clobber".
26765         (conforming_compare): Likewise for param "insn".
26766         (arithmetic_flags_clobber_p): Likewise.
26767         (find_flags_uses_in_insn): Likewise.
26768         (find_comparison_dom_walker::before_dom_children): Likewise for
26769         locals "insn", "next", "last_clobber".
26770         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
26771
26772 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26773
26774         * combine-stack-adj.c (struct csa_reflist): Strengthen field
26775         "insn" from rtx to rtx_insn *.
26776         (single_set_for_csa): Likewise for param "insn".
26777         (record_one_stack_ref): Likewise.
26778         (try_apply_stack_adjustment): Likewise.
26779         (struct record_stack_refs_data): Likewise for field "insn".
26780         (maybe_move_args_size_note): Likewise for params "last" and "insn".
26781         (prev_active_insn_bb): Likewise for return type and param "insn".
26782         (next_active_insn_bb): Likewise.
26783         (force_move_args_size_note): Likewise for params "prev" and "last"
26784         and locals "test", "next_candidate", "prev_candidate".
26785         (combine_stack_adjustments_for_block): Strengthen locals
26786         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
26787         rtx_insn *.
26788
26789 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26790
26791         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
26792         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
26793         (subst_insn): Likewise for this variable.
26794         (added_links_insn): Likewise.
26795         (struct insn_link): Likewise for field "insn".
26796         (alloc_insn_link): Likewise for param "insn".
26797         (struct undobuf): Likewise for field "other_insn".
26798         (find_single_use): Likewise for param "insn" and local "next".
26799         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
26800         (delete_noop_moves): Likewise for locals "insn", "next".
26801         (create_log_links): Likewise for locals "insn", "use_insn".
26802         Strengthen local "next_use" from rtx * to rtx_insn **.
26803         (insn_a_feeds_b): Likewise for params "a", "b".
26804         (combine_instructions): Likewise for param "f" and locals "insn",
26805         "next", "prev", "first", "last_combined_insn", "link", "link1",
26806         "temp".  Replace use of NULL_RTX with NULL when referring to
26807         insns.
26808         (setup_incoming_promotions): Likewise for param "first"
26809         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
26810         (can_combine_p): Likewise for params "insn", "i3", "pred",
26811         "pred2", "succ", "succ2" and for local "p".
26812         (combinable_i3pat): Likewise for param "i3".
26813         (cant_combine_insn_p): Likewise for param "insn".
26814         (likely_spilled_retval_p): Likewise.
26815         (adjust_for_new_dest): Likewise.
26816         (update_cfg_for_uncondjump): Likewise, also for local "insn".
26817         (try_combine): Likewise for return type and for params "i3", "i2",
26818         "i1", "i0", "last_combined_insn", and for locals "insn",
26819         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
26820         "i0_insn".  Eliminate local "tem" in favor of new locals
26821         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
26822         checked cast for now to rtx_insn * on the return type of
26823         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
26824         insns.
26825         (find_split_point): Strengthen param "insn" from rtx to
26826         rtx_insn *.
26827         (simplify_set): Likewise for local "other_insn".
26828         (recog_for_combine): Likewise for param "insn".
26829         (record_value_for_reg): Likewise.
26830         (record_dead_and_set_regs_1): Likewise for local
26831         "record_dead_insn".
26832         (record_dead_and_set_regs): Likewise for param "insn".
26833         (record_promoted_value): Likewise.
26834         (check_promoted_subreg): Likewise.
26835         (get_last_value_validate): Likewise.
26836         (reg_dead_at_p): Likewise.
26837         (move_deaths): Likewise for param "to_insn".
26838         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26839         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
26840         in favor of new locals "tem_note" and "tem_insn", the latter being
26841         an rtx_insn *.
26842         (distribute_links): Strengthen locals "place", "insn" from rtx to
26843         rtx_insn *.
26844
26845 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26846
26847         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26848         than a const_rtx.
26849         (can_delete_label_p): Require a const rtx_code_label * rather than
26850         a const_rtx.
26851         (delete_insn): Add checked cast to rtx_code_label * when we know
26852         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
26853         rtx to rtx_insn *.
26854         (delete_insn_chain): Strengthen locals "prev" and "current" from
26855         rtx to rtx_insn *.  Add a checked cast when assigning from
26856         "finish" (strengthening the params will come later).  Add a
26857         checked cast to rtx_note * in region where we know
26858         NOTE_P (current).
26859         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26860         rtx_insn *.
26861         (compute_bb_for_insn): Likewise.
26862         (free_bb_for_insn): Likewise for local "insn".
26863         (compute_bb_for_insn): Likewise.
26864         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26865         local "insn" from rtx to rtx_insn *
26866         (flow_active_insn_p): Require a const rtx_insn * rather than a
26867         const_rtx.
26868         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26869         rtx_insn *.
26870         (can_fallthru): Likewise for locals "insn" and "insn2".
26871         (bb_note): Likewise for local "note".
26872         (first_insn_after_basic_block_note): Likewise for local "note" and
26873         for return type.
26874         (rtl_split_block): Likewise for locals "insn" and "next".
26875         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26876         "end".
26877         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26878         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26879         "prev", "tmp".
26880         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26881         them), "kill_from", "barrier", "new_insn".
26882         (patch_jump_insn): Likewise for params "insn", "old_label".
26883         (redirect_branch_edge): Likewise for locals "old_label", "insn".
26884         (force_nonfallthru_and_redirect): Likewise for locals "insn",
26885         "old_label", "new_label".
26886         (rtl_tidy_fallthru_edge): Likewise for local "q".
26887         (rtl_split_edge): Likewise for locals "before", "last".
26888         (commit_one_edge_insertion): Likewise for locals "before",
26889         "after", "insns", "tmp", "last", adding a checked cast where
26890         currently necessary.
26891         (commit_edge_insertions): Likewise.
26892         (rtl_dump_bb): Likewise for locals "insn", "last".
26893         (print_rtl_with_bb): Likewise for local "x".
26894         (rtl_verify_bb_insns): Likewise for local "x".
26895         (rtl_verify_bb_pointers): Likewise for local "insn".
26896         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26897         "head", "end".
26898         (rtl_verify_fallthru): Likewise for local "insn".
26899         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26900         (purge_dead_edges): Likewise for local "insn".
26901         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26902         (skip_insns_after_block): Likewise for return type and for locals
26903         "insn", "last_insn", "next_head", "prev".
26904         (record_effective_endpoints): Likewise for locals "next_insn",
26905         "insn", "end".
26906         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26907         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26908         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26909         (duplicate_insn_chain): For now, add checked cast from rtx to
26910         rtx_insn * when returning insn.
26911         (cfg_layout_duplicate_bb): Likewise for local "insn".
26912         (cfg_layout_delete_block): Likewise for locals "insn", "next",
26913         "prev", "remaints".
26914         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26915         (rtl_block_empty_p): Likewise.
26916         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26917         "split_point", "last".
26918         (rtl_block_ends_with_call_p): Likewise for local "insn".
26919         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26920         const rtx_insn *.
26921         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26922         "split_at_insn" from rtx to rtx_insn *.
26923         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26924         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26925         to const rtx_insn *.
26926         (rtl_account_profile_record): Likewise.
26927
26928 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26929
26930         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26931         rtx to rtx_insn *.
26932         (average_num_loop_insns): Likewise.
26933         (init_set_costs): Likewise for local "seq".
26934         (seq_cost): Likewise for param "seq", from const_rtx to const
26935         rtx_insn *.
26936
26937 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26938
26939         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26940         rtx to rtx_insn *.
26941
26942 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26943
26944         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26945         "f1" and "f2" from rtx * to rtx_insn **.
26946         (flow_find_head_matching_sequence): Likewise.
26947
26948         * cfgcleanup.c (try_simplify_condjump): Strengthen local
26949         "cbranch_insn" from rtx to rtx_insn *.
26950         (thread_jump): Likewise for local "insn".
26951         (try_forward_edges): Likewise for local "last".
26952         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26953         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26954         "real_b_end".
26955         (can_replace_by): Likewise for params "i1", "i2".
26956         (old_insns_match_p): Likewise.
26957         (merge_notes): Likewise.
26958         (walk_to_nondebug_insn): Likewise for param "i1".
26959         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26960         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
26961         "afterlast1", "afterlast2" from rtx to rtx_insn *.
26962         (flow_find_head_matching_sequence): Strengthen params "f1" and
26963         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
26964         "last1", "last2", "beforelast1", "beforelast2" from rtx to
26965         rtx_insn *.
26966         (outgoing_edges_match): Likewise for locals "last1", "last2".
26967         (try_crossjump_to_edge): Likewise for local "insn".
26968         Replace call to for_each_rtx with for_each_rtx_in_insn.
26969
26970         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26971         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26972         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
26973         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26974         (try_optimize_cfg): Strengthen local "last" from rtx to
26975         rtx_insn *.
26976         (delete_dead_jumptables): Likewise for locals "insn", "next",
26977         "label".
26978
26979         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26980         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26981         "rtx else_first_tail", to reflect the basic-block.h changes above.
26982
26983 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26984
26985         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26986         rtx_insn *.
26987         (purge_dead_tablejump_edges): Likewise.
26988         (find_bb_boundaries): Likewise for locals "insn", "end",
26989         "flow_transfer_insn".
26990
26991 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26992
26993         * caller-save.c (save_call_clobbered_regs): Strengthen locals
26994         "ins" and "prev" from rtx to rtx_insn *.
26995
26996 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26997
26998         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26999         rtx_insn *.
27000         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
27001         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
27002         "scan_start".
27003         (load_register_parameters): Likewise for local "before_arg".
27004         (check_sibcall_argument_overlap): Likewise for param "insn".
27005         (expand_call): Likewise for locals "normal_call_insns",
27006         "tail_call_insns", "insns", "before_call", "after_args",
27007         "before_arg", "last", "prev".  Strengthen one of the "last" from
27008         rtx to rtx_call_insn *.
27009         (fixup_tail_calls): Strengthen local "insn" from rtx to
27010         rtx_insn *.
27011         (emit_library_call_value_1): Likewise for locals "before_call" and
27012         "last".
27013
27014 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27015
27016         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
27017         and "last" from rtx to rtx_insn *.
27018         (expand_builtin_nonlocal_goto): Likewise for local "insn".
27019         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
27020         rtx_call_insn *.
27021         (expand_errno_check): Strengthen local "lab" from rtx to
27022         rtx_code_label *.
27023         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
27024         rtx_insn *.
27025         (expand_builtin_mathfn_2): Likewise.
27026         (expand_builtin_mathfn_ternary): Likewise.
27027         (expand_builtin_mathfn_3): Likewise.
27028         (expand_builtin_interclass_mathfn): Likewise for local "last".
27029         (expand_builtin_int_roundingfn): Likewise for local "insns".
27030         (expand_builtin_int_roundingfn_2): Likewise.
27031         (expand_builtin_strlen): Likewise for local "before_strlen".
27032         (expand_builtin_strncmp): Likewise for local "seq".
27033         (expand_builtin_signbit): Likewise for local "last".
27034         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
27035         from rtx to rtx_code_label *.
27036         (expand_stack_restore):  Strengthen local "prev" from rtx to
27037         rtx_insn *.
27038
27039 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27040
27041         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
27042         to rtx_insn *.
27043         (struct btr_def_s): Likewise.
27044         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
27045         const rtx_insn *.
27046         (add_btr_def): Likewise.
27047         (new_btr_user): Likewise.
27048         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
27049         rtx to rtx_insn *.
27050         (link_btr_uses): Likewise.
27051         (move_btr_def): Likewise for locals "insp", "old_insn",
27052         "new_insn".  Add checked cast to rtx_insn * for now on result of
27053         gen_move_insn.
27054         (can_move_up): Strengthen param "insn" from const_rtx to
27055         const rtx_insn *.
27056
27057 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27058
27059         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
27060         rtx_insn *.
27061         (get_uncond_jump_length): Likewise for locals "label", "jump".
27062         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
27063         "jump", "insn".
27064         (add_labels_and_missing_jumps): Likewise for local "new_jump".
27065         (fix_up_fall_thru_edges): Likewise for local "old_jump".
27066         (find_jump_block): Likewise for local "insn".
27067         (fix_crossing_conditional_branches): Likewise for locals
27068         "old_jump", "new_jump".
27069         (fix_crossing_unconditional_branches): Likewise for locals
27070         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
27071         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
27072
27073 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27074
27075         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
27076         rtx to rtx_insn *.
27077         (struct mem_insn): Likewise for field "insn".
27078         (reg_next_use): Strengthen from rtx * to rtx_insn **.
27079         (reg_next_inc_use): Likewise.
27080         (reg_next_def): Likewise.
27081         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
27082         from rtx to rtx_insn *.
27083         (move_insn_before): Likewise for param "next_insn" and local "insns".
27084         (attempt_change): Likewise for local "mov_insn".
27085         (try_merge): Likewise for param "last_insn".
27086         (get_next_ref): Likewise for return type and local "insn".
27087         Strengthen param "next_array" from rtx * to rtx_insn **.
27088         (parse_add_or_inc): Strengthen param "insn" from rtx to
27089         rtx_insn *.
27090         (find_inc): Likewise for locals "insn" and "other_insn" (three of
27091         the latter).
27092         (merge_in_block): Likewise for locals "insn", "curr",
27093         "other_insn".
27094         (pass_inc_dec::execute): Update allocations of the arrays to
27095         reflect the stronger types.
27096
27097 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27098
27099         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
27100         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
27101         from rtx to rtx_code_label *.
27102
27103 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27104
27105         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
27106         to rtx_insn *.
27107
27108 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
27109
27110         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
27111         generated a warning and prevented bootstrapping the compiler.
27112
27113 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27114
27115         * rtl.h (delete_related_insns): Strengthen return type from rtx to
27116         rtx_insn *.
27117
27118         * jump.c (delete_related_insns): Likewise, also for locals "next"
27119         and "prev".
27120
27121 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27122
27123         * genautomata.c (output_internal_insn_latency_func): When writing
27124         the function "internal_insn_latency" to insn-automata.c,
27125         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
27126         allowing the optional guard function of (define_bypass) clauses to
27127         expect a pair of rtx_insn *, rather than a pair of rtx.
27128         (output_insn_latency_func): When writing the function
27129         "insn_latency", add an "uncast_" prefix to params "insn" and
27130         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
27131         using checked casts from the params, thus enabling the above
27132         change to the generated "internal_insn_latency" function.
27133
27134 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
27135
27136         PR tree-optimization/62091
27137         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
27138         handle correctly arrays.
27139         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
27140         inheritance binfos.
27141         (record_known_type): Walk into inner type.
27142         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
27143         condition on no type changes.
27144
27145 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27146
27147         * genattrtab.c (write_attr_get): Within the generated get_attr_
27148         functions, rename param "insn" to "uncast_insn" and reintroduce
27149         "insn" as an local rtx_insn * using a checked cast, so that "insn"
27150         is an rtx_insn * within insn-attrtab.c
27151
27152 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27153
27154         * output.h (peephole): Strengthen return type from rtx to
27155         rtx_insn *.
27156         * rtl.h (delete_for_peephole): Likewise for both params.
27157         * genpeep.c (main): In generated "peephole" function, strengthen
27158         return type and local "insn" from rtx to rtx_insn *.  For now,
27159         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
27160         rtx_insn *, with a checked cast.
27161         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
27162         locals "insn", "next", "prev" from rtx to rtx_insn *.
27163
27164 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
27165
27166         PR tree-optimization/62112
27167         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
27168         * gimple-iterator.h (gsi_replace): Return bool.
27169         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
27170         moved from ref_may_alias_global_p.
27171         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
27172         New overloads.
27173         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
27174         (stmt_kills_ref_p_1): Rename...
27175         (stmt_kills_ref_p): ... to this.
27176         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
27177         stmt_kills_ref_p): Declare.
27178         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
27179         Move the self-assignment case...
27180         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
27181
27182 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27183
27184         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
27185
27186         * emit-rtl.c (try_split): Likewise, also for locals "before" and
27187         "after".  For now, don't strengthen param "trial", which requires
27188         adding checked casts when returning it.
27189
27190 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27191
27192         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
27193         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
27194         "var_location" hook from rtx to rtx_insn *.
27195         (debug_nothing_rtx): Delete in favor of...
27196         (debug_nothing_rtx_code_label): New prototype.
27197         (debug_nothing_rtx_rtx): Delete unused prototype.
27198         (debug_nothing_rtx_insn): New prototype.
27199
27200         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
27201         invoking debug_hooks->var_location (in two places, one in a NOTE
27202         case of a switch statement, the other guarded by a CALL_P
27203         conditional.  Add checked cast to rtx_code_label * when invoking
27204         debug_hooks->label (within CODE_LABEL case of switch statement).
27205
27206         * dbxout.c (dbx_debug_hooks): Update "label" hook from
27207         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
27208         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
27209         (xcoff_debug_hooks): Likewise.
27210         * debug.c (do_nothing_debug_hooks): Likewise.
27211         (debug_nothing_rtx): Delete in favor of...
27212         (debug_nothing_rtx_insn): New function.
27213         (debug_nothing_rtx_rtx): Delete unused function.
27214         (debug_nothing_rtx_code_label): New function.
27215         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
27216         debug_nothing_rtx to debug_nothing_rtx_code_label.
27217         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
27218         to rtx_insn *.
27219         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
27220         debug_nothing_rtx to debug_nothing_rtx_insn.
27221         (sdbout_label): Strengthen param "insn" from rtx to
27222         rtx_code_label *.
27223         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
27224         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
27225         "var_location" hook from debug_nothing_rtx to
27226         debug_nothing_rtx_insn.
27227
27228 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27229
27230         * recog.h (insn_output_fn): Update this function typedef to match
27231         the changes below to the generated output functions, strengthening
27232         the 2nd param from rtx to rtx_insn *.
27233
27234         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
27235         insn when invoking an output function, to match the new signature
27236         of insn_output_fn with a stronger second param.
27237
27238         * genconditions.c (write_header): In the generated code for
27239         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
27240         to match the other changes in this patch.
27241
27242         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
27243         the generated "gen_" functions from rtx to rtx_insn * within their
27244         implementations.
27245
27246         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
27247         the subfunctions within the generated "recog_", "split", "peephole2"
27248         function trees from rtx to rtx_insn *.  For now, the top-level
27249         generated functions ("recog", "split", "peephole2") continue to
27250         take a plain rtx for "insn", to avoid introducing dependencies on
27251         other patches.  Rename this 2nd param from "insn" to
27252         "uncast_insn", and reintroduce "insn" as a local variable of type
27253         rtx_insn *, initialized at the top of the generated function with
27254         a checked cast on "uncast_insn".
27255         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
27256         the generated "gen_" functions from rtx to rtx_insn * within their
27257         prototypes.
27258
27259         * genoutput.c (process_template): Strengthen the 2nd param within
27260         the generated "output_" functions "insn" from rtx to rtx_insn *.
27261
27262 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
27263
27264         * tree-profile.c (tree_profiling): Skip external functions
27265         when doing coverage instrumentation.
27266         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
27267
27268 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27269
27270         * config/rs6000/altivec.h (vec_cpsgn): New #define.
27271         (vec_mergee): Likewise.
27272         (vec_mergeo): Likewise.
27273         (vec_cntlz): Likewise.
27274         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
27275         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
27276         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
27277         VMRGEW, and VMRGOW.
27278         * doc/extend.texi: Document various forms of vec_cpsgn,
27279         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
27280         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
27281         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
27282         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
27283         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
27284
27285 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27286
27287         * config/rs6000/rs6000.c (context.h): New include.
27288         (tree-pass.h): Likewise.
27289         (make_pass_analyze_swaps): New decl.
27290         (rs6000_option_override): Register pass_analyze_swaps.
27291         (swap_web_entry): New subsclass of web_entry_base (df.h).
27292         (special_handling_values): New enum.
27293         (union_defs): New function.
27294         (union_uses): Likewise.
27295         (insn_is_load_p): Likewise.
27296         (insn_is_store_p): Likewise.
27297         (insn_is_swap_p): Likewise.
27298         (rtx_is_swappable_p): Likewise.
27299         (insn_is_swappable_p): Likewise.
27300         (chain_purpose): New enum.
27301         (chain_contains_only_swaps): New function.
27302         (mark_swaps_for_removal): Likewise.
27303         (swap_const_vector_halves): Likewise.
27304         (adjust_subreg_index): Likewise.
27305         (permute_load): Likewise.
27306         (permute_store): Likewise.
27307         (handle_special_swappables): Likewise.
27308         (replace_swap_with_copy): Likewise.
27309         (dump_swap_insn_table): Likewise.
27310         (rs6000_analyze_swaps): Likewise.
27311         (pass_data_analyze_swaps): New pass_data.
27312         (pass_analyze_swaps): New rtl_opt_pass.
27313         (make_pass_analyze_swaps): New function.
27314         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
27315
27316 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27317
27318         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
27319         type from rtx to rtx_insn *.
27320         (create_copy_of_insn_rtx): Likewise.
27321         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
27322         (create_copy_of_insn_rtx): Likewise, also for local "res".
27323
27324 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27325
27326         * rtl.h (find_first_parameter_load): Strengthen return type from
27327         rtx to rtx_insn *.
27328         * rtlanal.c (find_first_parameter_load): Strengthen return type
27329         from rtx to rtx_insn *.  Add checked cast for now, to postpone
27330         strengthening the params.
27331
27332 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27333
27334         PR fortran/44054
27335         * diagnostic.c: Set default caret.
27336         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
27337         line is needed.
27338         * diagnostic.h (struct diagnostic_context):
27339
27340 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27341
27342         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
27343         (sel_bb_head): Strengthen return type insn_t (currently just an
27344         rtx) to rtx_insn *.
27345         (sel_bb_end): Likewise.
27346
27347         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
27348         (sel_bb_head): Strengthen return type and local "head" from
27349         insn_t (currently just an rtx) to rtx_insn *.
27350         (sel_bb_end): Likewise for return type.
27351         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
27352         working with insn.
27353
27354 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
27355
27356         * basic-block.h (get_last_bb_insn): Strengthen return type from
27357         rtx to rtx_insn *.
27358         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
27359         end".
27360
27361 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27362
27363         PR fortran/44054
27364         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
27365         to here ...
27366         (diagnostic_report_diagnostic): ... from here.
27367         * toplev.c (general_init): Move code to c-family.
27368
27369 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27370
27371         * df.h (web_entry_base): Replace existing struct web_entry with a
27372         new class web_entry_base with only the predecessor member.
27373         (unionfind_root): Remove declaration and move to class member.
27374         (unionfind_union): Remove declaration and move to friend
27375         function.
27376         (union_defs): Remove declaration.
27377         * web.c (web_entry_base::unionfind_root): Modify to be member
27378         function and adjust accessors.
27379         (unionfind_union): Modify to be friend function and adjust
27380         accessors.
27381         (web_entry): New subclass of web_entry_base containing the reg
27382         member.
27383         (union_match_dups): Modify for struct -> class changes.
27384         (union_defs): Likewise.
27385         (entry_register): Likewise.
27386         (pass_web::execute): Likewise.
27387
27388 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
27389
27390         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
27391         builtin define __VEC_ELEMENT_REG_ORDER__.
27392
27393 2014-08-20  Martin Jambor  <mjambor@suse.cz>
27394             Wei Mi  <wmi@google.com>
27395
27396         PR ipa/60449
27397         PR middle-end/61776
27398         * tree-ssa-operands.c (update_stmt_operands): Remove
27399         MODIFIED_NORETURN_CALLS.
27400         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
27401         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
27402         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
27403         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
27404         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
27405         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
27406         (gimple_call_set_ctrl_altering): New func.
27407         (gimple_call_ctrl_altering_p): Ditto.
27408         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
27409         (make_blocks): Use gimple_call_initialize_ctrl_altering.
27410         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
27411         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
27412         remove MODIFIED_NORETURN_CALLS.
27413
27414 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
27415
27416         * coverage.c (coverage_compute_profile_id): Return non-0;
27417         also handle symbols with unique name.
27418         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
27419
27420 2014-08-20  Steve Ellcey  <sellcey@mips.com>
27421
27422         PR middle-end/49191
27423         * doc/sourcebuild.texi (non_strict_align): New.
27424
27425 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
27426
27427         * cgraphunit.c (ipa_passes, compile): Reshedule
27428         symtab_remove_unreachable_nodes passes; update comments.
27429         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
27430         TODO_remove_functions before the pass; the functions ought to be
27431         already removed.
27432         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
27433         TODO_remove_functions.
27434         * passes.c (pass_data_early_local_passes): Do not schedule function
27435         removal.
27436         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
27437
27438 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27439
27440         PR c/59304
27441         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
27442         before setting the option.
27443         * diagnostic.c (diagnostic_classify_diagnostic): Record
27444         command-line status.
27445
27446 2014-08-20  Richard Biener  <rguenther@suse.de>
27447
27448         PR lto/62190
27449         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
27450         to build uint{16,32,64}_type_node.
27451
27452 2014-08-20  Terry Guo  <terry.guo@arm.com>
27453
27454         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
27455         with immediate_operand.
27456
27457 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
27458
27459         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
27460         "insn" from an as_a to a safe_as_a, for the case when "insn" is
27461         NULL.
27462
27463 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27464
27465         PR preprocessor/51303
27466         * incpath.c (remove_duplicates): Use cpp_warning.
27467
27468 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27469
27470         PR c/60975
27471         PR c/53063
27472         * doc/options.texi (CPP): Document it.
27473         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
27474         * optc-gen.awk: Handle CPP.
27475         * opth-gen.awk: Likewise.
27476
27477 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27478
27479         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
27480         rtx_insn *.
27481         (duplicate_insn_chain): Likewise.
27482         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
27483         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
27484         checked cast for now (until we can strengthen the params in the
27485         same way).
27486         (duplicate_insn_chain): Likewise.
27487
27488 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27489
27490         * rtl.h (next_cc0_user): Strengthen return type from rtx to
27491         rtx_insn *.
27492         (prev_cc0_setter): Likewise.
27493
27494         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
27495         rtx_insn *, adding checked casts for now as necessary.
27496         (prev_cc0_setter): Likewise.
27497
27498 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27499
27500         * expr.h (emit_move_insn): Strengthen return type from rtx to
27501         rtx_insn *.
27502         (emit_move_insn_1): Likewise.
27503         (emit_move_complex_push): Likewise.
27504         (emit_move_complex_parts): Likewise.
27505
27506         * expr.c (emit_move_via_integer): Strengthen return type from rtx
27507         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
27508         with insns.
27509         (emit_move_complex_push): Strengthen return type from rtx to
27510         rtx_insn *.
27511         (emit_move_complex): Likewise, also for local "ret".
27512         (emit_move_ccmode): Likewise.
27513         (emit_move_multi_word): Likewise for return type and locals
27514         "last_insn", "seq".
27515         (emit_move_insn_1): Likewise for return type and locals "result",
27516         "ret".
27517         (emit_move_insn): Likewise for return type and local "last_insn".
27518         (compress_float_constant): Likewise.
27519
27520 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27521
27522         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
27523         from rtx to rtx_insn *.
27524
27525         * rtl.h (emit_insn_before): Likewise.
27526         (emit_insn_before_noloc): Likewise.
27527         (emit_insn_before_setloc): Likewise.
27528         (emit_jump_insn_before): Likewise.
27529         (emit_jump_insn_before_noloc): Likewise.
27530         (emit_jump_insn_before_setloc): Likewise.
27531         (emit_call_insn_before): Likewise.
27532         (emit_call_insn_before_noloc): Likewise.
27533         (emit_call_insn_before_setloc): Likewise.
27534         (emit_debug_insn_before): Likewise.
27535         (emit_debug_insn_before_noloc): Likewise.
27536         (emit_debug_insn_before_setloc): Likewise.
27537         (emit_label_before): Likewise.
27538         (emit_insn_after): Likewise.
27539         (emit_insn_after_noloc): Likewise.
27540         (emit_insn_after_setloc): Likewise.
27541         (emit_jump_insn_after): Likewise.
27542         (emit_jump_insn_after_noloc): Likewise.
27543         (emit_jump_insn_after_setloc): Likewise.
27544         (emit_call_insn_after): Likewise.
27545         (emit_call_insn_after_noloc): Likewise.
27546         (emit_call_insn_after_setloc): Likewise.
27547         (emit_debug_insn_after): Likewise.
27548         (emit_debug_insn_after_noloc): Likewise.
27549         (emit_debug_insn_after_setloc): Likewise.
27550         (emit_label_after): Likewise.
27551         (emit_insn): Likewise.
27552         (emit_debug_insn): Likewise.
27553         (emit_jump_insn): Likewise.
27554         (emit_call_insn): Likewise.
27555         (emit_label): Likewise.
27556         (gen_clobber): Likewise.
27557         (emit_clobber): Likewise.
27558         (gen_use): Likewise.
27559         (emit_use): Likewise.
27560         (emit): Likewise.
27561
27562         (emit_barrier_before): Strengthen return type from rtx to
27563         rtx_barrier *.
27564         (emit_barrier_after): Likewise.
27565         (emit_barrier): Likewise.
27566
27567         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
27568         from rtx to rtx_insn *.  Add checked casts for now when converting
27569         "last" from rtx to rtx_insn *.
27570         (emit_insn_before_noloc): Likewise for return type.
27571         (emit_jump_insn_before_noloc): Likewise.
27572         (emit_call_insn_before_noloc): Likewise.
27573         (emit_debug_insn_before_noloc): Likewise.
27574         (emit_barrier_before): Strengthen return type and local "insn"
27575         from rtx to rtx_barrier *.
27576         (emit_label_before): Strengthen return type from rtx to
27577         rtx_insn *.  Add checked cast for now when returning param
27578         (emit_pattern_after_noloc): Strengthen return type from rtx to
27579         rtx_insn *.  Add checked casts for now when converting "last" from
27580         rtx to rtx_insn *.
27581         (emit_insn_after_noloc): Strengthen return type from rtx to
27582         rtx_insn *.
27583         (emit_jump_insn_after_noloc): Likewise.
27584         (emit_call_insn_after_noloc): Likewise.
27585         (emit_debug_insn_after_noloc): Likewise.
27586         (emit_barrier_after): Strengthen return type from rtx to
27587         rtx_barrier *.
27588         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
27589         Add checked cast for now when converting "label" from rtx to
27590         rtx_insn *.
27591         (emit_pattern_after_setloc): Strengthen return type from rtx to
27592         rtx_insn *.  Add checked casts for now when converting "last" from
27593         rtx to rtx_insn *.
27594         (emit_pattern_after): Strengthen return type from rtx to
27595         rtx_insn *.
27596         (emit_insn_after_setloc): Likewise.
27597         (emit_insn_after): Likewise.
27598         (emit_jump_insn_after_setloc): Likewise.
27599         (emit_jump_insn_after): Likewise.
27600         (emit_call_insn_after_setloc): Likewise.
27601         (emit_call_insn_after): Likewise.
27602         (emit_debug_insn_after_setloc): Likewise.
27603         (emit_debug_insn_after): Likewise.
27604         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
27605         when converting "last" from rtx to rtx_insn *.
27606         (emit_pattern_before): Strengthen return type from rtx to
27607         rtx_insn *.
27608         (emit_insn_before_setloc): Likewise.
27609         (emit_insn_before): Likewise.
27610         (emit_jump_insn_before_setloc): Likewise.
27611         (emit_jump_insn_before): Likewise.
27612         (emit_call_insn_before_setloc): Likewise.
27613         (emit_call_insn_before): Likewise.
27614         (emit_debug_insn_before_setloc): Likewise.
27615         (emit_debug_insn_before): Likewise.
27616         (emit_insn): Strengthen return type and locals "last", "insn",
27617         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
27618         within cases where we know we have an insn.
27619         (emit_debug_insn): Likewise.
27620         (emit_jump_insn): Likewise.
27621         (emit_call_insn): Strengthen return type and local "insn" from rtx
27622         to rtx_insn *.
27623         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
27624         a checked cast to rtx_insn * for now on "label".
27625         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
27626         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
27627         (emit_use): Likewise.
27628         (gen_use): Likewise, also for local "seq".
27629         (emit): Likewise for return type and local "insn".
27630         (rtx_insn): Likewise for return type and local "new_rtx".
27631
27632         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
27633         from rtx to rtx_barrier *.
27634
27635         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
27636         changed return type from rtx to rtx_insn *, we must update
27637         "emit_fn" type, and this in turn means updating...
27638         (frame_insn): ...this.  Strengthen return type from rtx to
27639         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
27640
27641 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27642
27643         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
27644         rtx to rtx_jump_table_data *.  Also for local.
27645         * rtl.h (emit_jump_table_data): Likewise.
27646
27647 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27648
27649         * basic-block.h (create_basic_block_structure): Strengthen third
27650         param "bb_note" from rtx to rtx_note *.
27651         * rtl.h (emit_note_before): Strengthen return type from rtx to
27652         rtx_note *.
27653         (emit_note_after): Likewise.
27654         (emit_note): Likewise.
27655         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27656         * function.h (struct rtl_data): Strengthen field
27657         "x_stack_check_probe_note" from rtx to rtx_note *.
27658
27659         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
27660         from rtx to rtx_note *.
27661         * cfgrtl.c (create_basic_block_structure): Strengthen third param
27662         "bb_note" from rtx to rtx_note *.
27663         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
27664         when calling emit_note_copy.
27665         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
27666         rtx_note *.
27667         (emit_note_after): Likewise.
27668         (emit_note_before): Likewise.
27669         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27670         (emit_note): Likewise.
27671         * except.c (emit_note_eh_region_end): Likewise for return type.
27672         Strengthen local "next" from rtx to rtx_insn *.
27673         (convert_to_eh_region_ranges): Strengthen local "note"
27674         from rtx to rtx_note *.
27675         * final.c (change_scope): Likewise.
27676         (reemit_insn_block_notes): Likewise, for both locals named "note".
27677         Also, strengthen local "insn" from rtx to rtx_insn *.
27678         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
27679         rtx to rtx_note *.
27680         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
27681         strengthen local "seq" from rtx to rtx_insn *.
27682         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
27683         to rtx_note *.
27684         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
27685         vec<rtx_note *>.
27686         (get_bb_note_from_pool): Strengthen return type from rtx to
27687         rtx_note *.
27688         (sel_create_basic_block): Strengthen local "new_bb_note" from
27689         insn_t to rtx_note *.
27690         * var-tracking.c (emit_note_insn_var_location): Strengthen local
27691         "note" from rtx to rtx_note *.
27692         (emit_notes_in_bb): Likewise.
27693
27694 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27695
27696         * function.h (struct rtl_data): Strengthen field
27697         "x_parm_birth_insn" from rtx to rtx_insn *.
27698         * function.c (struct assign_parm_data_all): Strengthen fields
27699         "first_conversion_insn" and "last_conversion_insn" from rtx to
27700         rtx_insn *.
27701
27702 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27703
27704         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
27705         to rtx_insn *; also for local "var_end_seq".
27706         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
27707         (maybe_cleanup_end_of_block): Likewise for param "last" and local
27708         "insn".
27709         (expand_gimple_cond): Likewise for locals "last2" and "last".
27710         (mark_transaction_restart_calls): Likewise for local "insn".
27711         (expand_gimple_stmt): Likewise for return type and locals "last"
27712         and "insn".
27713         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
27714         (avoid_complex_debug_insns): Likewise for param "insn".
27715         (expand_debug_locations): Likewise for locals "insn", "last",
27716         "prev_insn" and "insn2".
27717         (expand_gimple_basic_block): Likewise for local "last".
27718         (construct_exit_block): Likewise for locals "head", "end",
27719         "orig_end".
27720         (pass_expand::execute): Likewise for locals "var_seq",
27721         "var_ret_seq", "next".
27722
27723 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27724
27725         * asan.h (asan_emit_stack_protection): Strengthen return type from
27726         rtx to rtx_insn *.
27727         * asan.c (asan_emit_stack_protection): Likewise.  Add local
27728         "insns" to hold the return value.
27729
27730 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27731
27732         * basic-block.h (bb_note): Strengthen return type from rtx to
27733         rtx_note *.
27734         * sched-int.h (bb_note): Likewise.
27735         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
27736
27737 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27738
27739         * rtl.h (make_insn_raw): Strengthen return type from rtx to
27740         rtx_insn *.
27741
27742         * emit-rtl.c (make_insn_raw): Strengthen return type and local
27743         "insn" from rtx to rtx_insn *.
27744         (make_debug_insn_raw): Strengthen return type from rtx to
27745         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
27746         (make_jump_insn_raw):  Strengthen return type from rtx to
27747         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
27748         (make_call_insn_raw):  Strengthen return type from rtx to
27749         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
27750         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
27751         callback from rtx to rtx_insn *; likewise for local "insn" and
27752         "next", adding a checked cast to rtx_insn in the relevant cases of
27753         the switch statement.
27754         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
27755         callback from rtx to rtx_insn *.
27756         (emit_pattern_after_setloc): Likewise.
27757         (emit_pattern_after): Likewise.
27758         (emit_pattern_before_setloc): Likewise.
27759         (emit_pattern_before): Likewise.
27760
27761 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27762
27763         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
27764         rtx_call_insn *.
27765         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
27766         accepting an rtx_insn *.
27767         (last_call_insn): Strengthen return type from rtx to
27768         rtx_call_insn *.
27769
27770 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27771
27772         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
27773         "insns" from rtx to rtx_insn *.
27774         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
27775         locals "insn" and "prev".
27776
27777 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27778
27779         * rtl.h (tablejump_p): Strengthen third param from rtx * to
27780         rtx_jump_table_data **.
27781
27782         * cfgbuild.c (make_edges): Introduce local "table", using it in
27783         place of "tmp" for jump table data.
27784         (find_bb_boundaries): Strengthen local "table" from rtx to
27785         rtx_jump_table_data *.
27786         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27787         (outgoing_edges_match): Likewise for locals "table1" and "table2".
27788         (try_crossjump_to_edge): Likewise.
27789         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
27790         "table".
27791         (patch_jump_insn): Introduce local "table", using it in place of
27792         "tmp" for jump table data.
27793         (force_nonfallthru_and_redirect): Introduce local "table", so that
27794         call to tablejump_p can receive an rtx_jump_table_data **.  Update
27795         logic around the call to overwrite "note" appropriately if
27796         tablejump_p returns non-zero.
27797         (get_last_bb_insn): Introduce local "table", using it in place of
27798         "tmp" for jump table data.
27799         * dwarf2cfi.c (create_trace_edges): Likewise.
27800
27801         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
27802         from rtx to rtx_jump_table_data *.
27803         (create_fix_barrier): Strengthen local "tmp" from rtx to
27804         rtx_jump_table_data *.
27805         (arm_reorg): Likewise for local "table".
27806
27807         * config/s390/s390.c (s390_chunkify_start): Likewise.
27808
27809         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
27810
27811         * jump.c (delete_related_insns): Strengthen local "lab_next" from
27812         rtx to rtx_jump_table_data *.
27813
27814         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
27815         rtx_jump_table_data **.  Add a checked cast when writing through
27816         the pointer: we know there that local "table" is non-NULL and that
27817         JUMP_TABLE_DATA_P (table) holds.
27818         (label_is_jump_target_p): Introduce local "table", using it in
27819         place of "tmp" for jump table data.
27820
27821 2014-08-19  Marek Polacek  <polacek@redhat.com>
27822
27823         PR c++/62153
27824         * doc/invoke.texi: Document -Wbool-compare.
27825
27826 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27827
27828         * rtl.h (entry_of_function): Strengthen return type from rtx to
27829         rtx_insn *.
27830         * cfgrtl.c (entry_of_function): Likewise.
27831
27832 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27833
27834         * emit-rtl.h (get_insns): Strengthen return type from rtx to
27835         rtx_insn *, adding a checked cast for now.
27836         (get_last_insn): Likewise.
27837
27838 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27839
27840         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27841         rtx_code_label *.
27842
27843         * emit-rtl.c (gen_label_rtx): Likewise.
27844
27845 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27846
27847         * rtl.h (previous_insn): Strengthen return type from rtx to
27848         rtx_insn *.
27849         (next_insn): Likewise.
27850         (prev_nonnote_insn): Likewise.
27851         (prev_nonnote_insn_bb): Likewise.
27852         (next_nonnote_insn): Likewise.
27853         (next_nonnote_insn_bb): Likewise.
27854         (prev_nondebug_insn): Likewise.
27855         (next_nondebug_insn): Likewise.
27856         (prev_nonnote_nondebug_insn): Likewise.
27857         (next_nonnote_nondebug_insn): Likewise.
27858         (prev_real_insn): Likewise.
27859         (next_real_insn): Likewise.
27860         (prev_active_insn): Likewise.
27861         (next_active_insn): Likewise.
27862
27863         * emit-rtl.c (next_insn): Strengthen return type from rtx to
27864         rtx_insn *, adding a checked cast.
27865         (previous_insn): Likewise.
27866         (next_nonnote_insn): Likewise.
27867         (next_nonnote_insn_bb): Likewise.
27868         (prev_nonnote_insn): Likewise.
27869         (prev_nonnote_insn_bb): Likewise.
27870         (next_nondebug_insn): Likewise.
27871         (prev_nondebug_insn): Likewise.
27872         (next_nonnote_nondebug_insn): Likewise.
27873         (prev_nonnote_nondebug_insn): Likewise.
27874         (next_real_insn): Likewise.
27875         (prev_real_insn): Likewise.
27876         (next_active_insn): Likewise.
27877         (prev_active_insn): Likewise.
27878
27879         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27880         param "stepfunc" so that it returns an rtx_insn * rather than an
27881         rtx, to track the change to prev_nonnote_insn_bb, which is the
27882         only function this is called with.
27883         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27884
27885 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
27886
27887         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27888         assert.
27889
27890 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27891
27892         * coretypes.h (class rtx_debug_insn): Add forward declaration.
27893         (class rtx_nonjump_insn): Likewise.
27894         (class rtx_jump_insn): Likewise.
27895         (class rtx_call_insn): Likewise.
27896         (class rtx_jump_table_data): Likewise.
27897         (class rtx_barrier): Likewise.
27898         (class rtx_code_label): Likewise.
27899         (class rtx_note): Likewise.
27900
27901         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27902         adding the invariant DEBUG_INSN_P (X).
27903         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27904         the invariant NONJUMP_INSN_P (X).
27905         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27906         the invariant JUMP_P (X).
27907         (class rtx_call_insn): New, a subclass of rtx_insn, adding
27908         the invariant CALL_P (X).
27909         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27910         invariant JUMP_TABLE_DATA_P (X).
27911         (class rtx_barrier): New, a subclass of rtx_insn, adding the
27912         invariant BARRIER_P (X).
27913         (class rtx_code_label): New, a subclass of rtx_insn, adding
27914         the invariant LABEL_P (X).
27915         (class rtx_note): New, a subclass of rtx_insn, adding
27916         the invariant NOTE_P(X).
27917         (is_a_helper <rtx_debug_insn *>::test): New.
27918         (is_a_helper <rtx_nonjump_insn *>::test): New.
27919         (is_a_helper <rtx_jump_insn *>::test): New.
27920         (is_a_helper <rtx_call_insn *>::test): New.
27921         (is_a_helper <rtx_jump_table_data *>::test): New functions,
27922         overloaded for both rtx and rtx_insn *.
27923         (is_a_helper <rtx_barrier *>::test): New.
27924         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27925         for both rtx and rtx_insn *.
27926         (is_a_helper <rtx_note *>::test): New.
27927
27928 2014-08-19  Marek Polacek  <polacek@redhat.com>
27929
27930         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27931         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27932         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27933         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27934
27935 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27936
27937         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27938         rtx_insn *.  To help with transition, for now, convert from an
27939         access macro into a pair of functions: BND_TO, returning an
27940         rtx_insn *, and...
27941         (SET_BND_TO): New function, for use where BND_TO is used as an
27942         lvalue.
27943
27944         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27945         SET_BND_TO.
27946         (BND_TO): New function, adding a checked cast.
27947         (SET_BND_TO): New function.
27948
27949         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27950         SET_BND_TO.
27951         (compute_av_set_on_boundaries): Likewise.
27952
27953 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27954
27955         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27956         destination if it is used in source.
27957         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27958         (*popcount<mode>2_falsedep_1): Likewise.
27959
27960 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27961
27962         PR other/62168
27963         * configure.ac: Set install_gold_as_default to no first.
27964         * configure: Regenerated.
27965
27966 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27967
27968         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27969         "note_list" field will eventually be an rtx_insn *.  To help with
27970         transition, for now, convert from an access macro into a pair of
27971         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27972         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27973         used as an lvalue.
27974
27975         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27976         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27977
27978         * sel-sched-ir.c (init_bb): Likewise.
27979         (sel_restore_notes): Likewise.
27980         (move_bb_info): Likewise.
27981         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27982         (SET_BB_NOTE_LIST): New function.
27983
27984 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27985
27986         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27987         field will eventually be an rtx_insn *.  To help with transition,
27988         for now, convert from an access macro into a pair of functions:
27989         VINSN_INSN_RTX, returning an rtx_insn *, and...
27990         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27991         is used as an lvalue.
27992
27993         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27994         SET_VINSN_INSN_RTX where it's used as an lvalue.
27995         (VINSN_INSN_RTX): New function.
27996         (SET_VINSN_INSN_RTX): New function.
27997
27998 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27999
28000         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
28001         eventually be rtx_insn *, but to help with transition, for now,
28002         convert from an access macro into a pair of functions: DEP_PRO
28003         returning an rtx_insn * and...
28004         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
28005         lvalue, returning an rtx&.
28006         (DEP_CON): Analogous changes to DEP_PRO above.
28007         (SET_DEP_CON): Likewise.
28008
28009         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
28010         an lvalue to SET_DEP_CON.
28011         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
28012         (sd_copy_back_deps): Likewise for DEP_CON.
28013         (DEP_PRO): New function, adding a checked cast for now.
28014         (DEP_CON): Likewise.
28015         (SET_DEP_PRO): New function.
28016         (SET_DEP_CON): Likewise.
28017
28018 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
28019
28020         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
28021         (extra_options): Add i386/cygwin.opt.
28022         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
28023         (CPP_SPEC): Accept -pthread.
28024         (LINK_SPEC): Ditto.
28025         (GOMP_SELF_SPECS): Update comment.
28026         * config/i386/cygwin.opt: New file for -pthread flag.
28027
28028 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
28029
28030         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
28031         * df.h (DF_REF_INSN): Convert from a macro to a function, so
28032         that we can return an rtx_insn *.
28033
28034 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
28035
28036         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
28037         when building executables, not DLLs.  Add --large-address-aware
28038         under the same conditions.
28039         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
28040         when building executables, not DLLs.  Add --large-address-aware
28041         under the same conditions when using -m32.
28042
28043         * config/i386/cygwin-stdint.h: Throughout, make type
28044         definitions dependent on target architecture, not host.
28045
28046 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
28047
28048         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
28049         the return type from rtx to rtx_insn *,  which will enable various
28050         conversions in followup patches.  For now this is is done by a
28051         checked cast.
28052         (NEXT_INSN): Likewise.
28053         (SET_PREV_INSN): Convert to an inline function.  This is intended
28054         for use as an lvalue, and so returns an rtx& to allow in-place
28055         modification.
28056         (SET_NEXT_INSN): Likewise.
28057
28058 2014-07-08  Mark Wielaard  <mjw@redhat.com>
28059
28060         PR debug/59051
28061         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
28062
28063 2014-08-19  Marek Polacek  <polacek@redhat.com>
28064
28065         PR c/61271
28066         * cgraphunit.c (handle_alias_pairs): Fix condition.
28067
28068 2014-08-19  Richard Biener  <rguenther@suse.de>
28069
28070         * gimple-fold.c (fold_gimple_assign): Properly build a
28071         null-pointer constant when devirtualizing addresses.
28072
28073 2014-07-07  Mark Wielaard  <mjw@redhat.com>
28074
28075         * dwarf2out.c (decl_quals): New function.
28076         (modified_type_die): Take one cv_quals argument instead of two,
28077         one for const and one for volatile.
28078         (add_type_attribute): Likewise.
28079         (generic_parameter_die): Call add_type_attribute with one modifier
28080         argument.
28081         (base_type_for_mode): Likewise.
28082         (add_bounds_info): Likewise.
28083         (add_subscript_info): Likewise.
28084         (gen_array_type_die): Likewise.
28085         (gen_descr_array_type_die): Likewise.
28086         (gen_entry_point_die): Likewise.
28087         (gen_enumeration_type_die): Likewise.
28088         (gen_formal_parameter_die): Likewise.
28089         (gen_subprogram_die): Likewise.
28090         (gen_variable_die): Likewise.
28091         (gen_const_die): Likewise.
28092         (gen_field_die): Likewise.
28093         (gen_pointer_type_die): Likewise.
28094         (gen_reference_type_die): Likewise.
28095         (gen_ptr_to_mbr_type_die): Likewise.
28096         (gen_inheritance_die): Likewise.
28097         (gen_subroutine_type_die): Likewise.
28098         (gen_typedef_die): Likewise.
28099         (force_type_die): Likewise.
28100
28101 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28102
28103         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
28104         if unset.
28105         * configure: Regenerate.
28106
28107 2014-08-19  Richard Biener  <rguenther@suse.de>
28108
28109         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
28110         DECL_EXTERNALs in BLOCKs as non-references.
28111         * tree-streamer-out.c (streamer_write_chain): Likewise.
28112
28113 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28114             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28115             Anna Tikhonova  <anna.tikhonova@intel.com>
28116             Ilya Tocar  <ilya.tocar@intel.com>
28117             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28118             Ilya Verbin  <ilya.verbin@intel.com>
28119             Kirill Yukhin  <kirill.yukhin@intel.com>
28120             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28121
28122         * config/i386/sse.md
28123         (define_mode_iterator VI48_AVX512F): Delete.
28124         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
28125         (define_mode_iterator VI2_AVX512VL): Ditto.
28126         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
28127         Delete.
28128         (define_insn
28129         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
28130         New.
28131         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
28132         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
28133         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
28134         with VI48_AVX512F_AVX512VL): New.
28135         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
28136         with VI2_AVX512VL): Ditto.
28137
28138 2014-08-19  Marek Polacek  <polacek@redhat.com>
28139
28140         * doc/invoke.texi: Document -Wc99-c11-compat.
28141
28142 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
28143
28144         * rtl.h (PREV_INSN): Split macro in two: the existing one,
28145         for rvalues, and...
28146         (SET_PREV_INSN): New macro, for use as an lvalue.
28147         (NEXT_INSN, SET_NEXT_INSN): Likewise.
28148
28149         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
28150         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
28151         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
28152         (fixup_abnormal_edges): Likewise.
28153         (unlink_insn_chain): Likewise.
28154         (fixup_reorder_chain): Likewise.
28155         (cfg_layout_delete_block): Likewise.
28156         (cfg_layout_merge_blocks): Likewise.
28157         * combine.c (update_cfg_for_uncondjump): Likewise.
28158         * emit-rtl.c (link_insn_into_chain): Likewise.
28159         (remove_insn): Likewise.
28160         (delete_insns_since): Likewise.
28161         (reorder_insns_nobb): Likewise.
28162         (emit_insn_after_1): Likewise.
28163         * final.c (rest_of_clean_state): Likewise.
28164         (final_scan_insn): Likewise.
28165         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
28166         * haifa-sched.c (concat_note_lists): Likewise.
28167         (remove_notes): Likewise.
28168         (restore_other_notes): Likewise.
28169         (move_insn): Likewise.
28170         (unlink_bb_notes): Likewise.
28171         (restore_bb_notes): Likewise.
28172         * jump.c (delete_for_peephole): Likewise.
28173         * optabs.c (emit_libcall_block_1): Likewise.
28174         * reorg.c (emit_delay_sequence): Likewise.
28175         (fill_simple_delay_slots): Likewise.
28176         * sel-sched-ir.c (sel_move_insn): Likewise.
28177         (sel_remove_insn): Likewise.
28178         (get_bb_note_from_pool): Likewise.
28179         * sel-sched.c (move_nop_to_previous_block): Likewise.
28180
28181         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
28182         * config/c6x/c6x.c (gen_one_bundle): Likewise.
28183         (c6x_gen_bundles): Likewise.
28184         (hwloop_optimize): Likewise.
28185         * config/frv/frv.c (frv_function_prologue): Likewise.
28186         (frv_register_nop): Likewise.
28187         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
28188         (ia64_reorg): Likewise.
28189         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
28190         (mep_make_bundle): Likewise.
28191         (mep_bundle_insns): Likewise.
28192         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
28193         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
28194         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
28195
28196 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
28197
28198         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
28199         return type from rtx to rtx_insn *.
28200         (BB_END): Likewise.
28201         (BB_HEADER): Likewise.
28202         (BB_FOOTER): Likewise.
28203         (SET_BB_HEAD): Convert to a function.
28204         (SET_BB_END): Likewise.
28205         (SET_BB_HEADER): Likewise.
28206         (SET_BB_FOOTER): Likewise.
28207
28208         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
28209         Strengthen the return type from rtx to rtx_insn *.  For now, this
28210         is done by adding a checked cast, but this will eventually
28211         become a field lookup.
28212         (BB_END): Likewise.
28213         (BB_HEADER): Likewise.
28214         (BB_FOOTER): Likewise.
28215         (SET_BB_HEAD): New function, from macro of same name.  This is
28216         intended for use as an lvalue, and so returns an rtx& to allow
28217         in-place modification.
28218         (SET_BB_END): Likewise.
28219         (SET_BB_HEADER): Likewise.
28220         (SET_BB_FOOTER): Likewise.
28221
28222 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28223
28224         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
28225         for rvalues, and...
28226         (SET_BB_HEAD): New macro, for use as a lvalue.
28227         (BB_END, SET_BB_END): Likewise.
28228         (BB_HEADER, SET_BB_HEADER): Likewise.
28229         (BB_FOOTER, SET_BB_FOOTER): Likewise.
28230
28231         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
28232         of BB_* macros into SET_BB_* macros.
28233         (fix_crossing_unconditional_branches): Likewise.
28234         * caller-save.c (save_call_clobbered_regs): Likewise.
28235         (insert_one_insn): Likewise.
28236         * cfgbuild.c (find_bb_boundaries): Likewise.
28237         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
28238         (outgoing_edges_match): Likewise.
28239         (try_optimize_cfg): Likewise.
28240         * cfgexpand.c (expand_gimple_cond): Likewise.
28241         (expand_gimple_tailcall): Likewise.
28242         (expand_gimple_basic_block): Likewise.
28243         (construct_exit_block): Likewise.
28244         * cfgrtl.c (delete_insn): Likewise.
28245         (create_basic_block_structure): Likewise.
28246         (rtl_delete_block): Likewise.
28247         (rtl_split_block): Likewise.
28248         (emit_nop_for_unique_locus_between): Likewise.
28249         (rtl_merge_blocks): Likewise.
28250         (block_label): Likewise.
28251         (try_redirect_by_replacing_jump): Likewise.
28252         (emit_barrier_after_bb): Likewise.
28253         (fixup_abnormal_edges): Likewise.
28254         (record_effective_endpoints): Likewise.
28255         (relink_block_chain): Likewise.
28256         (fixup_reorder_chain): Likewise.
28257         (fixup_fallthru_exit_predecessor): Likewise.
28258         (cfg_layout_duplicate_bb): Likewise.
28259         (cfg_layout_split_block): Likewise.
28260         (cfg_layout_delete_block): Likewise.
28261         (cfg_layout_merge_blocks): Likewise.
28262         * combine.c (update_cfg_for_uncondjump): Likewise.
28263         * emit-rtl.c (add_insn_after): Likewise.
28264         (remove_insn): Likewise.
28265         (reorder_insns): Likewise.
28266         (emit_insn_after_1): Likewise.
28267         * haifa-sched.c (get_ebb_head_tail): Likewise.
28268         (restore_other_notes): Likewise.
28269         (move_insn): Likewise.
28270         (sched_extend_bb): Likewise.
28271         (fix_jump_move): Likewise.
28272         * ifcvt.c (noce_process_if_block): Likewise.
28273         (dead_or_predicable): Likewise.
28274         * ira.c (update_equiv_regs): Likewise.
28275         * reg-stack.c (change_stack): Likewise.
28276         * sel-sched-ir.c (sel_move_insn): Likewise.
28277         * sel-sched.c (move_nop_to_previous_block): Likewise.
28278
28279         * config/c6x/c6x.c (hwloop_optimize): Likewise.
28280         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
28281
28282 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28283
28284         * rtl.h (for_each_rtx_in_insn): New function.
28285         * rtlanal.c (for_each_rtx_in_insn): Likewise.
28286
28287 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28288
28289         * coretypes.h (class rtx_insn): Add forward declaration.
28290
28291         * rtl.h: Include is-a.h.
28292         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
28293         workaround to ensure gengtype knows inheritance is occurring,
28294         whilst continuing to use the pre-existing special-casing for
28295         rtx_def.
28296         (class rtx_insn): New subclass of rtx_def, adding the
28297         invariant that we're dealing with something we can sanely use
28298         INSN_UID, NEXT_INSN, PREV_INSN on.
28299         (is_a_helper <rtx_insn *>::test): New.
28300         (is_a_helper <const rtx_insn *>::test): New.
28301
28302 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
28303
28304         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
28305
28306 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
28307
28308         * ipa-visibility.c (update_visibility_by_resolution_info): Do no
28309         turn UNDEF comdats as extern.
28310
28311 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
28312
28313         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
28314         to BUILT_IN_UNREACHABLE.
28315
28316 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
28317
28318         PR target/62011
28319         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
28320         New tune flag.
28321         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
28322         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
28323         (ffs<mode>2): Do not expand with tzcnt for
28324         TARGET_AVOID_FALSE_DEP_FOR_BMI.
28325         (ffssi2_no_cmove): Ditto.
28326         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
28327         (ctz<mode>2): New expander.
28328         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
28329         (*ctz<mode>2_falsedep): New insn.
28330         (*ctz<mode>2): Rename from ctz<mode>2.
28331         (clz<mode>2_lzcnt): New expander.
28332         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
28333         (*clz<mode>2_lzcnt_falsedep): New insn.
28334         (*clz<mode>2): Rename from ctz<mode>2.
28335         (popcount<mode>2): New expander.
28336         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
28337         (*popcount<mode>2_falsedep): New insn.
28338         (*popcount<mode>2): Rename from ctz<mode>2.
28339         (*popcount<mode>2_cmp): Remove.
28340         (*popcountsi2_cmp_zext): Ditto.
28341
28342 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
28343
28344         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
28345         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
28346         * config/microblaze/microblaze.h
28347         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
28348
28349 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
28350
28351         PR other/62168
28352         * configure.ac: Set install_gold_as_default to no for
28353         --enable-gold=no.
28354         * configure: Regenerated.
28355
28356 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
28357
28358         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
28359         * config.in: Add undef of HAVE_isl.
28360         * configure: Regenerate.
28361         * configure.ac: Add definition of HAVE_isl.
28362         * graphite-blocking.c: Add checking of HAVE_isl.
28363         * graphite-dependences.c: Likewise.
28364         * graphite-interchange.c: Likewise.
28365         * graphite-isl-ast-to-gimple.c: Likewise.
28366         * graphite-optimize-isl.c: Likewise.
28367         * graphite-poly.c: Likewise.
28368         * graphite-scop-detection.c: Likewise.
28369         * graphite-sese-to-poly.c: Likewise.
28370         * graphite.c: Likewise.
28371         * toplev.c: Replace the checking of HAVE_cloog with the checking
28372         of HAVE_isl.
28373
28374 2014-08-18  Richard Biener  <rguenther@suse.de>
28375
28376         PR tree-optimization/62090
28377         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
28378         (fold_builtin_3): Do not fold snprintf.
28379         (fold_builtin_4): Likewise.
28380         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
28381         moved from builtins.c.
28382         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
28383         (gimple_fold_builtin): Do not fold sprintf here.
28384
28385 2014-08-18  Richard Biener  <rguenther@suse.de>
28386
28387         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
28388         code to ...
28389         (maybe_canonicalize_mem_ref_addr): ... this function.
28390         (fold_stmt_1): Apply it here before all simplification.
28391
28392 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
28393
28394         PR ipa/61800
28395         * cgraph.h (cgraph_node::create_indirect_edge): Add
28396         compute_indirect_info param.
28397         * cgraph.c (cgraph_node::create_indirect_edge): Compute
28398         indirect_info only when it is required.
28399         * cgraphclones.c (cgraph_clone_edge): Do not recompute
28400         indirect_info fore cloned indirect edge.
28401
28402 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28403             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28404             Anna Tikhonova  <anna.tikhonova@intel.com>
28405             Ilya Tocar  <ilya.tocar@intel.com>
28406             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28407             Ilya Verbin  <ilya.verbin@intel.com>
28408             Kirill Yukhin  <kirill.yukhin@intel.com>
28409             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28410
28411         * config/i386/sse.md
28412         (define_mode_iterator VI8_AVX2_AVX512BW): New.
28413         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
28414
28415 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28416             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28417             Anna Tikhonova  <anna.tikhonova@intel.com>
28418             Ilya Tocar  <ilya.tocar@intel.com>
28419             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28420             Ilya Verbin  <ilya.verbin@intel.com>
28421             Kirill Yukhin  <kirill.yukhin@intel.com>
28422             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28423
28424         * config/i386/sse.md
28425         (define_mode_iterator VF1_AVX512VL): New.
28426         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
28427         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
28428         New.
28429
28430 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28431             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28432             Anna Tikhonova  <anna.tikhonova@intel.com>
28433             Ilya Tocar  <ilya.tocar@intel.com>
28434             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28435             Ilya Verbin  <ilya.verbin@intel.com>
28436             Kirill Yukhin  <kirill.yukhin@intel.com>
28437             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28438
28439         * config/i386/i386.c: Rename ufloatv8siv8df_mask to
28440         ufloatv8siv8df2_mask.
28441         * config/i386/i386.md
28442         (define_code_iterator any_float): New.
28443         (define_code_attr floatsuffix): New.
28444         * config/i386/sse.md
28445         (define_mode_iterator VF1_128_256VL): New.
28446         (define_mode_iterator VF2_512_256VL): New.
28447         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove
28448         unnecessary TARGET check.
28449         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
28450         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
28451         New.
28452         (define_mode_attr qq2pssuff): New.
28453         (define_mode_attr sselongvecmode): New.
28454         (define_mode_attr sselongvecmodelower): New.
28455         (define_mode_attr sseintvecmode3): New.
28456         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
28457         New.
28458         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
28459         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
28460         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
28461         (define_insn "ufloatv2siv2df2<mask_name>"): New.
28462
28463 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28464             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28465             Anna Tikhonova  <anna.tikhonova@intel.com>
28466             Ilya Tocar  <ilya.tocar@intel.com>
28467             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28468             Ilya Verbin  <ilya.verbin@intel.com>
28469             Kirill Yukhin  <kirill.yukhin@intel.com>
28470             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28471
28472         * config/i386/sse.md
28473         (define_mode_iterator VF2_AVX512VL): New.
28474         (define_mode_attr sseintvecmode2): New.
28475         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
28476         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
28477         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
28478         (define_insn
28479         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
28480         Ditto.
28481         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
28482         Ditto.
28483         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
28484         Ditto.
28485
28486 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28487             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28488             Anna Tikhonova  <anna.tikhonova@intel.com>
28489             Ilya Tocar  <ilya.tocar@intel.com>
28490             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28491             Ilya Verbin  <ilya.verbin@intel.com>
28492             Kirill Yukhin  <kirill.yukhin@intel.com>
28493             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28494
28495         * config/i386/i386.md
28496         (define_insn "*movoi_internal_avx"): Add evex version.
28497         (define_insn "*movti_internal"): Ditto.
28498
28499 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28500             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28501             Anna Tikhonova  <anna.tikhonova@intel.com>
28502             Ilya Tocar  <ilya.tocar@intel.com>
28503             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28504             Ilya Verbin  <ilya.verbin@intel.com>
28505             Kirill Yukhin  <kirill.yukhin@intel.com>
28506             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28507
28508         * config/i386/i386.md
28509         (define_attr "isa"): Add avx512dq, noavx512dq.
28510         (define_attr "enabled"): Ditto.
28511         * config/i386/sse.md
28512         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
28513
28514 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28515             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28516             Anna Tikhonova  <anna.tikhonova@intel.com>
28517             Ilya Tocar  <ilya.tocar@intel.com>
28518             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28519             Ilya Verbin  <ilya.verbin@intel.com>
28520             Kirill Yukhin  <kirill.yukhin@intel.com>
28521             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28522
28523         * config/i386/i386.c
28524         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
28525         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
28526         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
28527         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
28528         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
28529         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
28530         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
28531         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
28532         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
28533         * config/i386/sse.md
28534         (define_mode_iterator VMOVE): Allow V4TI mode.
28535         (define_mode_iterator V_AVX512VL): New.
28536         (define_mode_iterator V): New handling for AVX512VL.
28537         (define_insn "avx512f_load<mode>_mask"): Delete.
28538         (define_insn "<avx512>_load<mode>_mask"): New.
28539         (define_insn "avx512f_store<mode>_mask"): Delete.
28540         (define_insn "<avx512>_store<mode>_mask"): New.
28541
28542
28543 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
28544
28545         PR sanitizer/62089
28546         * asan.c (instrument_derefs): Fix bitfield check.
28547
28548 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28549
28550         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
28551         * config/rs6000/htm.md (ttest): Remove clobber.
28552         * config/rs6000/predicates.md (any_mask_operand): New predicate.
28553         (and_operand): Reformat.
28554         (and_2rld_operand): New predicate.
28555         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
28556         parameter.
28557         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
28558         parameter.  Handle AND directly.
28559         (rs6000_split_logical_di): Remove last parameter.
28560         (rs6000_split_logical): Remove last parameter.  Remove obsolete
28561         comment.
28562         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
28563         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
28564         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
28565         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
28566         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
28567         and 5 anonymous splitters):  Delete.
28568         (and<mode>3): New expander.
28569         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
28570         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
28571         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
28572         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
28573         (floatdisf2_internal1): Remove clobbers.
28574         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
28575         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
28576         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
28577         (and<mode>3 for BOOL_128): Remove clobber.
28578         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
28579         rs6000_split_logical.
28580         (*bool<mode>3_internal for BOOL_128): Adjust call of
28581         rs6000_split_logical.
28582         (*boolc<mode>3_internal1 for BOOL_128,
28583         *boolc<mode>3_internal2 for BOOL_128,
28584         *boolcc<mode>3_internal1 for BOOL_128,
28585         *boolcc<mode>3_internal2 for BOOL_128,
28586         *eqv<mode>3_internal1 for BOOL_128,
28587         *eqv<mode>3_internal2 for BOOL_128,
28588         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
28589         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
28590         clobber.
28591         (*vec_reload_and_reg_<mptrsize>): Delete.
28592
28593 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28594
28595         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
28596         and split, *boolccsi3_internal3 and split): Delete.
28597         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
28598         *boolccdi3_internal3 and split): Delete.
28599         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
28600         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
28601
28602 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28603
28604         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
28605         and split, *boolcsi3_internal3 and split): Delete.
28606         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
28607         *boolcdi3_internal3 and split): Delete.
28608         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
28609
28610 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
28611
28612         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
28613         <'u'>: Also support printing the low-order 16 bits.
28614         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
28615         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
28616         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
28617         *booldi3_internal3 and split): Delete.
28618         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
28619         *bool<mode>3_dot2): New.
28620         (two anonymous define_splits for non_logical_cint_operand): Merge.
28621
28622 2014-08-17  Marek Polacek  <polacek@redhat.com>
28623             Manuel López-Ibáñez  <manu@gcc.gnu.org>
28624
28625         PR c/62059
28626         * diagnostic.c (adjust_line): Add gcc_checking_assert.
28627         (diagnostic_show_locus): Don't print caret diagnostic
28628         if a column is larger than the line_width.
28629
28630 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
28631
28632         * common.opt: Make the ISL AST generator to be the main code generator
28633         of Graphite.
28634
28635 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
28636
28637         * wide-int.h (generic_wide_int): Declare as class instead of struct.
28638
28639 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
28640
28641         PR target/61641
28642         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
28643         Declare.
28644         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
28645         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
28646         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
28647         Define.
28648         * config/pa/pa.md (begin_brtab): Delete insn.
28649         (end_brtab): Likewise.
28650
28651 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28652
28653         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
28654
28655 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
28656
28657         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
28658         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
28659         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
28660         (get_dynamic_type): Remove.
28661         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
28662         (clear_speculation): Bring to ipa-deivrt.h
28663         (get_class_context): Rename to ...
28664         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
28665         (contains_type_p): Update.
28666         (get_dynamic_type): Rename to ...
28667         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
28668         (possible_polymorphic_call_targets): UPdate.
28669         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
28670         * ipa-prop.c (ipa_analyze_call_uses): Update.
28671
28672 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
28673
28674         * doc/invoke.texi (SH options): Document missing processor variant
28675         options.  Remove references to Hitachi.  Undocument deprecated mspace
28676         option.
28677
28678 2014-08-15  Jason Merrill  <jason@redhat.com>
28679
28680         * tree.c (type_hash_canon): Uncomment assert.
28681
28682 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28683
28684         * input.h (in_system_header_at): Add comment.
28685
28686 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28687
28688         PR fortran/44054
28689         * diagnostic.c (build_message_string): Make it extern.
28690         * diagnostic.h (build_message_string): Make it extern.
28691
28692 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
28693
28694         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
28695         load/store from/to non-floating class pseudo.
28696
28697 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28698
28699         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
28700
28701 2014-08-15  Richard Biener  <rguenther@suse.de>
28702
28703         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
28704         (get_constraint_for_ssa_var): Remove dead code.
28705         (get_constraint_for_1): Adjust.
28706         (find_what_var_points_to): Likewise.
28707         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
28708
28709 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
28710
28711         PR target/61878
28712         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
28713         (_mm512_mask_cmpge_epu32_mask): Ditto.
28714         (_mm512_cmpge_epu32_mask): Ditto.
28715         (_mm512_mask_cmpge_epi64_mask): Ditto.
28716         (_mm512_cmpge_epi64_mask): Ditto.
28717         (_mm512_mask_cmpge_epu64_mask): Ditto.
28718         (_mm512_cmpge_epu64_mask): Ditto.
28719         (_mm512_mask_cmple_epi32_mask): Ditto.
28720         (_mm512_cmple_epi32_mask): Ditto.
28721         (_mm512_mask_cmple_epu32_mask): Ditto.
28722         (_mm512_cmple_epu32_mask): Ditto.
28723         (_mm512_mask_cmple_epi64_mask): Ditto.
28724         (_mm512_cmple_epi64_mask): Ditto.
28725         (_mm512_mask_cmple_epu64_mask): Ditto.
28726         (_mm512_cmple_epu64_mask): Ditto.
28727         (_mm512_mask_cmplt_epi32_mask): Ditto.
28728         (_mm512_cmplt_epi32_mask): Ditto.
28729         (_mm512_mask_cmplt_epu32_mask): Ditto.
28730         (_mm512_cmplt_epu32_mask): Ditto.
28731         (_mm512_mask_cmplt_epi64_mask): Ditto.
28732         (_mm512_cmplt_epi64_mask): Ditto.
28733         (_mm512_mask_cmplt_epu64_mask): Ditto.
28734         (_mm512_cmplt_epu64_mask): Ditto.
28735         (_mm512_mask_cmpneq_epi32_mask): Ditto.
28736         (_mm512_mask_cmpneq_epu32_mask): Ditto.
28737         (_mm512_cmpneq_epu32_mask): Ditto.
28738         (_mm512_mask_cmpneq_epi64_mask): Ditto.
28739         (_mm512_cmpneq_epi64_mask): Ditto.
28740         (_mm512_mask_cmpneq_epu64_mask): Ditto.
28741         (_mm512_cmpneq_epu64_mask): Ditto.
28742         (_mm512_castpd_ps): Ditto.
28743         (_mm512_castpd_si512): Ditto.
28744         (_mm512_castps_pd): Ditto.
28745         (_mm512_castps_si512): Ditto.
28746         (_mm512_castsi512_ps): Ditto.
28747         (_mm512_castsi512_pd): Ditto.
28748         (_mm512_castpd512_pd128): Ditto.
28749         (_mm512_castps512_ps128): Ditto.
28750         (_mm512_castsi512_si128): Ditto.
28751         (_mm512_castpd512_pd256): Ditto.
28752         (_mm512_castps512_ps256): Ditto.
28753         (_mm512_castsi512_si256): Ditto.
28754         (_mm512_castpd128_pd512): Ditto.
28755         (_mm512_castps128_ps512): Ditto.
28756         (_mm512_castsi128_si512): Ditto.
28757         (_mm512_castpd256_pd512): Ditto.
28758         (_mm512_castps256_ps512): Ditto.
28759         (_mm512_castsi256_si512): Ditto.
28760         (_mm512_cmpeq_epu32_mask): Ditto.
28761         (_mm512_mask_cmpeq_epu32_mask): Ditto.
28762         (_mm512_mask_cmpeq_epu64_mask): Ditto.
28763         (_mm512_cmpeq_epu64_mask): Ditto.
28764         (_mm512_cmpgt_epu32_mask): Ditto.
28765         (_mm512_mask_cmpgt_epu32_mask): Ditto.
28766         (_mm512_mask_cmpgt_epu64_mask): Ditto.
28767         (_mm512_cmpgt_epu64_mask): Ditto.
28768         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
28769         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
28770         * config/i386/i386.c (enum ix86_builtins): Add
28771         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
28772         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
28773         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
28774         (bdesc_args): Add __builtin_ia32_si512_256si,
28775         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
28776         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
28777         __builtin_ia32_pd512_pd.
28778         (ix86_expand_args_builtin): Handle new FTYPEs.
28779         * config/i386/sse.md (castmode): Add 512-bit modes.
28780         (AVX512MODE2P): New.
28781         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
28782         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
28783
28784 2014-08-15  Richard Biener  <rguenther@suse.de>
28785
28786         * fold-const.c (tree_swap_operands_p): Put all constants
28787         last, also strip sign-changing NOPs when considering further
28788         canonicalization.  Canonicalize also when optimizing for size.
28789
28790 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28791
28792         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
28793         one_match > zero_match case to just before simple_sequence.
28794
28795 2014-08-15  Richard Biener  <rguenther@suse.de>
28796
28797         * data-streamer.h (streamer_string_index, string_for_index):
28798         Remove.
28799         * data-streamer-out.c (streamer_string_index): Make static.
28800         * data-streamer-in.c (string_for_index): Likewise.
28801         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
28802         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
28803
28804 2014-08-15  Richard Biener  <rguenther@suse.de>
28805
28806         PR tree-optimization/62031
28807         * tree-data-ref.c (dr_analyze_indices): Do not set
28808         DR_UNCONSTRAINED_BASE.
28809         (dr_may_alias_p): All indirect accesses have to go the
28810         formerly DR_UNCONSTRAINED_BASE path.
28811         * tree-data-ref.h (struct indices): Remove
28812         unconstrained_base member.
28813         (DR_UNCONSTRAINED_BASE): Remove.
28814
28815 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
28816
28817         PR middle-end/62092
28818         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
28819         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
28820         in OMP_CLAUSE_MAP in some outer target region.
28821
28822 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
28823
28824         * tree-ssa-loop-ivopts.c (ivopts_data): New field
28825         name_expansion_cache.
28826         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
28827         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
28828         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
28829         (difference_cannot_overflow_p): New parameter.  Use affine
28830         expansion for equality check.
28831         (iv_elimination_compare_lt): Pass new argument.
28832
28833 2014-08-14  DJ Delorie  <dj@redhat.com>
28834
28835         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28836         variables to the accumulator.
28837
28838         * config/rl78/predicates.md (rl78_near_mem_operand): New.
28839         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28840         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28841         with far-far moves.
28842
28843         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28844         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28845         (umulqihi3_virt): Likewise.
28846         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28847         (umulqihi3_real): Likewise.
28848
28849         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28850
28851 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28852
28853         PR tree-optimization/62091
28854         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28855         function_entry_reached.
28856         (walk_aliased_vdefs): Clear it here.
28857         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28858
28859 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28860
28861         * ipa-utils.h (compare_virtual_tables): Declare.
28862         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28863
28864 2014-08-14  Marek Polacek  <polacek@redhat.com>
28865
28866         DR 458
28867         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28868         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28869
28870 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28871
28872         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28873
28874 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28875
28876         PR rtl-optimization/62004
28877         PR rtl-optimization/62030
28878         * ifcvt.c (rtx_interchangeable_p): New function.
28879         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28880         * emit-rtl.h (mem_attrs_eq_p): Declare.
28881
28882 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
28883
28884         * graphite-scop-detection.c:
28885         Add inclusion of cp-tree.h.
28886         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28887         in case they are pointers to object types
28888
28889 2014-08-14  Richard Biener  <rguenther@suse.de>
28890
28891         * BASE-VER: Change to 5.0.0
28892
28893 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28894             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28895             Anna Tikhonova  <anna.tikhonova@intel.com>
28896             Ilya Tocar  <ilya.tocar@intel.com>
28897             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28898             Ilya Verbin  <ilya.verbin@intel.com>
28899             Kirill Yukhin  <kirill.yukhin@intel.com>
28900             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28901
28902         * config/i386/sse.md (define_mode_attr avx512): New.
28903         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28904         V4DI modes.
28905         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28906         (define_mode_attr ssse3_avx2): Ditto.
28907         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28908         (define_mode_attr avx2_avx512bw): New.
28909         (define_mode_attr ssedoublemodelower): New.
28910         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28911         V32HI, V64QI modes.
28912         (define_mode_attr ssebytemode): Allow V8DI modes.
28913         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28914         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28915         (define_mode_attr ssePSmode2): New.
28916         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28917         V16HI, V32HI modes.
28918         (define_mode_attr dbpsadbwmode): New.
28919         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28920         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28921         (vi8_sse4_1_avx2_avx512): New.
28922         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28923         mode attribute.
28924         (define_mode_attr blendbits): Move before its immediate use.
28925
28926 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28927             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28928             Anna Tikhonova  <anna.tikhonova@intel.com>
28929             Ilya Tocar  <ilya.tocar@intel.com>
28930             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28931             Ilya Verbin  <ilya.verbin@intel.com>
28932             Kirill Yukhin  <kirill.yukhin@intel.com>
28933             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28934
28935         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28936         * config/i386/subst.md
28937         (define_mode_iterator SUBST_V): Update.
28938         (define_mode_iterator SUBST_A): Ditto.
28939         (define_subst_attr "mask_operand7"): New.
28940         (define_subst_attr "mask_operand10"): New.
28941         (define_subst_attr "mask_operand_arg34") : New.
28942         (define_subst_attr "mask_expand_op3"): New.
28943         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28944         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28945         (define_subst_attr "mask_avx512vl_condition"): New.
28946         (define_subst_attr "round_mask_operand4"): Ditto.
28947         (define_subst_attr "round_mask_scalar_op3"): Delete.
28948         (define_subst_attr "round_mask_op4"): New.
28949         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28950         V16SImode.
28951         (define_subst_attr "round_modev8sf_condition"): New.
28952         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28953         <MODE>mode.
28954         (define_subst_attr "round_saeonly_mask_operand4"): New.
28955         (define_subst_attr "round_saeonly_mask_op4"): New.
28956         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28957         V8DImode, V16SImode.
28958         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28959         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28960         (define_subst_attr "mask_expand4_args"): New.
28961         (define_subst "mask_expand4"): New.
28962
28963 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28964             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28965             Anna Tikhonova  <anna.tikhonova@intel.com>
28966             Ilya Tocar  <ilya.tocar@intel.com>
28967             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28968             Ilya Verbin  <ilya.verbin@intel.com>
28969             Kirill Yukhin  <kirill.yukhin@intel.com>
28970             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28971
28972         * config/i386/i386.md
28973         (define_attr "isa"): Add avx512bw,noavx512bw.
28974         (define_attr "enabled"): Ditto.
28975         (define_split): Add 32/64-bit mask logic.
28976         (define_insn "*k<logic>qi"): New.
28977         (define_insn "*k<logic>hi"): New.
28978         (define_insn "*anddi_1"): Add mask version.
28979         (define_insn "*andsi_1"): Ditto.
28980         (define_insn "*<code><mode>_1"): Ditto.
28981         (define_insn "*<code>hi_1"): Ditto.
28982         (define_insn "kxnor<mode>"): New.
28983         (define_insn "kunpcksi"): New.
28984         (define_insn "kunpckdi"): New.
28985         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28986         (define_insn "*one_cmplhi2_1"): Ditto.
28987
28988 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28989             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28990             Anna Tikhonova  <anna.tikhonova@intel.com>
28991             Ilya Tocar  <ilya.tocar@intel.com>
28992             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28993             Ilya Verbin  <ilya.verbin@intel.com>
28994             Kirill Yukhin  <kirill.yukhin@intel.com>
28995             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28996
28997         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28998         V32HImode.
28999
29000 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29001             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29002             Anna Tikhonova  <anna.tikhonova@intel.com>
29003             Ilya Tocar  <ilya.tocar@intel.com>
29004             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29005             Ilya Verbin  <ilya.verbin@intel.com>
29006             Kirill Yukhin  <kirill.yukhin@intel.com>
29007             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29008
29009         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
29010         registers.
29011         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
29012         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
29013         xmm/ymm16+ when availble.
29014         * config/i386/i386.h
29015         (HARD_REGNO_NREGS): Add mask regs.
29016         (VALID_AVX512F_REG_MODE): Ditto.
29017         (VALID_AVX512F_REG_MODE) : Define.
29018         (VALID_MASK_AVX512BW_MODE): Ditto.
29019         (reg_class) (MASK_REG_P(X)): Define.
29020         * config/i386/i386.md: Do not split long moves with mask register,
29021         use kmovb if avx512bw is availible.
29022         (movdi_internal): Handle mask registers.
29023
29024 2014-08-14  Richard Biener  <rguenther@suse.de>
29025
29026         PR tree-optimization/62081
29027         * tree-ssa-loop.c (pass_fix_loops): New pass.
29028         (pass_tree_loop::gate):  Do not fixup loops here.
29029         * tree-pass.h (make_pass_fix_loops): Declare.
29030         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
29031
29032 2014-08-14  Richard Biener  <rguenther@suse.de>
29033
29034         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
29035         (type_hash_canon): ... this and avoid 2nd lookup for the add.
29036
29037 2014-08-14  Richard Biener  <rguenther@suse.de>
29038
29039         PR tree-optimization/62090
29040         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
29041         (fold_builtin_2): Do not fold sprintf.
29042         (fold_builtin_3): Likewise.
29043         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
29044         moved from builtins.c.
29045         (gimple_fold_builtin): Fold sprintf.
29046
29047 2014-08-14  Richard Biener  <rguenther@suse.de>
29048
29049         PR rtl-optimization/62079
29050         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
29051         run cleanup_cfg.
29052
29053 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
29054
29055         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
29056         current_function_decl.
29057
29058 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
29059
29060         * cgraph.c (cgraph_node::function_symbol): Fix wrong
29061         cgraph_function_node to cgraph_node::function_symbol
29062         refactoring.
29063
29064 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29065
29066         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
29067         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
29068
29069 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
29070
29071         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
29072         warning.
29073
29074 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
29075
29076         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
29077         generator.
29078
29079 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
29080
29081         PR target/62025
29082         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
29083         any registers that are used in mem_insn.
29084
29085 2014-08-12  Steve Ellcey  <sellcey@mips.com>
29086
29087         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
29088
29089 2014-08-12  Steve Ellcey  <sellcey@mips.com>
29090
29091         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
29092         (MULTILIB_DIRNAMES): Ditto.
29093         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
29094         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
29095         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
29096         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
29097         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
29098         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
29099
29100 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29101
29102         PR target/61413
29103         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
29104         of __ARM_SIZEOF_WCHAR_T.
29105
29106 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29107
29108         PR target/62098
29109         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
29110         Remove unnecessary attributes.
29111
29112 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
29113
29114         * internal-fn.c (init_internal_fns): Fix off-by-one.
29115
29116 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29117             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29118             Anna Tikhonova  <anna.tikhonova@intel.com>
29119             Ilya Tocar  <ilya.tocar@intel.com>
29120             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29121             Ilya Verbin  <ilya.verbin@intel.com>
29122             Kirill Yukhin  <kirill.yukhin@intel.com>
29123             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29124
29125         * config/i386/i386.c (standard_sse_constant_opcode): Use
29126         vpxord/vpternlog if avx512 is availible.
29127
29128 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29129
29130         PR middle-end/62103
29131         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
29132         bitfields, that is when size doesn't match the size of type or the
29133         size of the constructor.
29134
29135 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
29136
29137         * config/rs6000/constraints.md (wh constraint): New constraint,
29138         for FP registers if direct move is available.
29139         (wi constraint): New constraint, for VSX/FP registers that can
29140         handle 64-bit integers.
29141         (wj constraint): New constraint for VSX/FP registers that can
29142         handle 64-bit integers for direct moves.
29143         (wk constraint): New constraint for VSX/FP registers that can
29144         handle 64-bit doubles for direct moves.
29145         (wy constraint): Make documentation match implementation.
29146
29147         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
29148         scalar_in_vmx_p field to simplify tests of whether SFmode or
29149         DFmode can go in the Altivec registers.
29150         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
29151         (rs6000_setup_reg_addr_masks): Likewise.
29152         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
29153         field, and wh/wi/wj/wk constraints.
29154         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
29155         the wh/wi/wj/wk constraints.
29156         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
29157         upper registers, prefer VSX registers unless the operation is a
29158         memory operation with REG+OFFSET addressing.
29159
29160         * config/rs6000/vsx.md (VSr mode attribute): Add support for
29161         DImode.  Change SFmode to use ww constraint instead of d to allow
29162         SF registers in the upper registers.
29163         (VSr2): Likewise.
29164         (VSr3): Likewise.
29165         (VSr5): Fix thinko in comment.
29166         (VSa): New mode attribute that is an alternative to wa, that
29167         returns the VSX register class that a mode can go in, but may not
29168         be the preferred register class.
29169         (VS_64dm): New mode attribute for appropriate register classes for
29170         referencing 64-bit elements of vectors for direct moves and normal
29171         moves.
29172         (VS_64reg): Likewise.
29173         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
29174         register allocator to only registers the data type can handle.
29175         (vsx_le_perm_load_<mode>): Likewise.
29176         (vsx_le_perm_store_<mode>): Likewise.
29177         (vsx_xxpermdi2_le_<mode>): Likewise.
29178         (vsx_xxpermdi4_le_<mode>): Likewise.
29179         (vsx_lxvd2x2_le_<mode>): Likewise.
29180         (vsx_lxvd2x4_le_<mode>): Likewise.
29181         (vsx_stxvd2x2_le_<mode>): Likewise.
29182         (vsx_add<mode>3): Likewise.
29183         (vsx_sub<mode>3): Likewise.
29184         (vsx_mul<mode>3): Likewise.
29185         (vsx_div<mode>3): Likewise.
29186         (vsx_tdiv<mode>3_internal): Likewise.
29187         (vsx_fre<mode>2): Likewise.
29188         (vsx_neg<mode>2): Likewise.
29189         (vsx_abs<mode>2): Likewise.
29190         (vsx_nabs<mode>2): Likewise.
29191         (vsx_smax<mode>3): Likewise.
29192         (vsx_smin<mode>3): Likewise.
29193         (vsx_sqrt<mode>2): Likewise.
29194         (vsx_rsqrte<mode>2): Likewise.
29195         (vsx_tsqrt<mode>2_internal): Likewise.
29196         (vsx_fms<mode>4): Likewise.
29197         (vsx_nfma<mode>4): Likewise.
29198         (vsx_eq<mode>): Likewise.
29199         (vsx_gt<mode>): Likewise.
29200         (vsx_ge<mode>): Likewise.
29201         (vsx_eq<mode>_p): Likewise.
29202         (vsx_gt<mode>_p): Likewise.
29203         (vsx_ge<mode>_p): Likewise.
29204         (vsx_xxsel<mode>): Likewise.
29205         (vsx_xxsel<mode>_uns): Likewise.
29206         (vsx_copysign<mode>3): Likewise.
29207         (vsx_float<VSi><mode>2): Likewise.
29208         (vsx_floatuns<VSi><mode>2): Likewise.
29209         (vsx_fix_trunc<mode><VSi>2): Likewise.
29210         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
29211         (vsx_x<VSv>r<VSs>i): Likewise.
29212         (vsx_x<VSv>r<VSs>ic): Likewise.
29213         (vsx_btrunc<mode>2): Likewise.
29214         (vsx_b2trunc<mode>2): Likewise.
29215         (vsx_floor<mode>2): Likewise.
29216         (vsx_ceil<mode>2): Likewise.
29217         (vsx_<VS_spdp_insn>): Likewise.
29218         (vsx_xscvspdp): Likewise.
29219         (vsx_xvcvspuxds): Likewise.
29220         (vsx_float_fix_<mode>2): Likewise.
29221         (vsx_set_<mode>): Likewise.
29222         (vsx_extract_<mode>_internal1): Likewise.
29223         (vsx_extract_<mode>_internal2): Likewise.
29224         (vsx_extract_<mode>_load): Likewise.
29225         (vsx_extract_<mode>_store): Likewise.
29226         (vsx_splat_<mode>): Likewise.
29227         (vsx_xxspltw_<mode>): Likewise.
29228         (vsx_xxspltw_<mode>_direct): Likewise.
29229         (vsx_xxmrghw_<mode>): Likewise.
29230         (vsx_xxmrglw_<mode>): Likewise.
29231         (vsx_xxsldwi_<mode>): Likewise.
29232         (vsx_xscvdpspn): Tighten constraints to only use register classes
29233         the types use.
29234         (vsx_xscvspdpn): Likewise.
29235         (vsx_xscvdpspn_scalar): Likewise.
29236
29237         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
29238         wj, and wk constraints.
29239         (GPR_REG_CLASS_P): New helper macro for register classes targeting
29240         general purpose registers.
29241
29242         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
29243         direct moves.
29244         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
29245         DImode instead of wm.  Use wk constraint for direct move of DFmode
29246         instead of wm.
29247         (extendsidi2_lfiwax): Likewise.
29248         (lfiwax): Likewise.
29249         (lfiwzx): Likewise.
29250         (movdi_internal64): Likewise.
29251
29252         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
29253         wk constraints. Make the wy constraint documentation match them
29254         implementation.
29255
29256 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
29257
29258         Replacement of isl_int by isl_val
29259         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
29260         (compute_bounds_for_param): use isl_val instead of isl_int
29261         (compute_bounds_for_loop): likewise
29262         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
29263         (build_linearized_memory_access): use isl_val instead of isl_int
29264         (pdr_stride_in_loop): likewise
29265         * graphite-optimize-isl.c:
29266         (getPrevectorMap): use isl_val instead of isl_int
29267         * graphite-poly.c:
29268         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
29269         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
29270         (extern the_isl_ctx): declare
29271         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
29272         (extract_affine_gmp): likewise
29273         (wrap): likewise
29274         (build_loop_iteration_domains): likewise
29275         (add_param_constraints): likewise
29276
29277 2014-08-11  Richard Biener  <rguenther@suse.de>
29278
29279         PR tree-optimization/62075
29280         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
29281         handle uses in patterns.
29282
29283 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29284             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29285             Anna Tikhonova  <anna.tikhonova@intel.com>
29286             Ilya Tocar  <ilya.tocar@intel.com>
29287             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29288             Ilya Verbin  <ilya.verbin@intel.com>
29289             Kirill Yukhin  <kirill.yukhin@intel.com>
29290             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29291
29292         * common/config/i386/i386-common.c
29293         (OPTION_MASK_ISA_AVX512VL_SET): Define.
29294         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
29295         (ix86_handle_option): Handle OPT_mavx512vl.
29296         * config/i386/cpuid.h (bit_AVX512VL): Define.
29297         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
29298         set -mavx512vl accordingly.
29299         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29300         OPTION_MASK_ISA_AVX512VL.
29301         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
29302         (ix86_option_override_internal): Define PTA_AVX512VL, handle
29303         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
29304         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
29305         * config/i386/i386.h (TARGET_AVX512VL): Define.
29306         (TARGET_AVX512VL_P(x)): Ditto.
29307         * config/i386/i386.opt: Add mavx512vl.
29308
29309 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
29310
29311         PR tree-optimization/62073
29312         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
29313         a basic block.
29314
29315 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29316             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29317             Anna Tikhonova  <anna.tikhonova@intel.com>
29318             Ilya Tocar  <ilya.tocar@intel.com>
29319             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29320             Ilya Verbin  <ilya.verbin@intel.com>
29321             Kirill Yukhin  <kirill.yukhin@intel.com>
29322             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29323
29324         * common/config/i386/i386-common.c
29325         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
29326         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
29327         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
29328         (ix86_handle_option): Handle OPT_mavx512bw.
29329         * config/i386/cpuid.h (bit_AVX512BW): Define.
29330         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
29331         set -mavx512bw accordingly.
29332         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29333         OPTION_MASK_ISA_AVX512BW.
29334         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
29335         (ix86_option_override_internal): Define PTA_AVX512BW, handle
29336         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
29337         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
29338         * config/i386/i386.h (TARGET_AVX512BW): Define.
29339         (TARGET_AVX512BW_P(x)): Ditto.
29340         * config/i386/i386.opt: Add mavx512bw.
29341
29342 2014-08-11  Richard Biener  <rguenther@suse.de>
29343
29344         PR tree-optimization/62070
29345         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
29346         Remove SSA checking.
29347
29348 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
29349
29350         * asan.c (asan_check_flags): New enum.
29351         (build_check_stmt_with_calls): Removed function.
29352         (build_check_stmt): Split inlining logic to
29353         asan_expand_check_ifn.
29354         (instrument_derefs): Rename parameter.
29355         (instrument_mem_region_access): Rename parameter.
29356         (instrument_strlen_call): Likewise.
29357         (asan_expand_check_ifn): New function.
29358         (asan_instrument): Remove old code.
29359         (pass_sanopt::execute): Change handling of
29360         asan-instrumentation-with-call-threshold.
29361         (asan_clear_shadow): Fix formatting.
29362         (asan_function_start): Likewise.
29363         (asan_emit_stack_protection): Likewise.
29364         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
29365         Update description.
29366         * internal-fn.c (expand_ASAN_CHECK): New function.
29367         * internal-fn.def (ASAN_CHECK): New internal function.
29368         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
29369         Update description.
29370         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
29371         * tree.c: Small comment fix.
29372
29373 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
29374
29375         * gimple.c (gimple_call_fnspec): Support internal functions.
29376         (gimple_call_return_flags): Use const.
29377         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
29378         * internal-fn.def: Add fnspec information.
29379         * internal-fn.h (internal_fn_fnspec): New function.
29380         (init_internal_fns): Declare new function.
29381         * internal-fn.c (internal_fn_fnspec_array): New global variable.
29382         (init_internal_fns): New function.
29383         * tree-core.h: Update macro call.
29384         * tree.c (build_common_builtin_nodes): Initialize internal fns.
29385
29386 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
29387
29388         * lto-streamer.h (struct output_block::symbol): Change from
29389         struct symtab_node to plain symtab_node.
29390         (referenced_from_this_partition_p): Change first parameter
29391         from struct symtab_node to plain symtab_node.
29392
29393 2014-08-10  Marek Polacek  <polacek@redhat.com>
29394
29395         PR c/51849
29396         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
29397
29398 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
29399
29400         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
29401         DECL correctly; do not give up on types in static storage.
29402
29403 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
29404
29405         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
29406
29407 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
29408
29409         * graphite-isl-ast-to-gimple.c:
29410         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
29411
29412         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
29413
29414 2014-08-08  Guozhi Wei  <carrot@google.com>
29415
29416         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
29417
29418 2014-08-08  Cary Coutant  <ccoutant@google.com>
29419
29420         * dwarf2out.c (get_skeleton_type_unit): Remove.
29421         (output_skeleton_debug_sections): Remove skeleton type units.
29422         (output_comdat_type_unit): Likewise.
29423         (dwarf2out_finish): Likewise.
29424
29425 2014-08-07  Yi Yang  <ahyangyi@google.com>
29426
29427         * predict.c (expr_expected_value_1): Remove the redundant assignment.
29428
29429 2014-08-08  Richard Biener  <rguenther@suse.de>
29430
29431         * lto-streamer.h (struct lto_input_block): Make it a class
29432         with a constructor.
29433         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
29434         (struct lto_function_header, struct lto_simple_header,
29435         struct lto_simple_header_with_strings,
29436         struct lto_decl_header, struct lto_function_header): Make
29437         a simple inheritance hieararchy.  Remove unused fields.
29438         (struct lto_asm_header): Remove.
29439         * lto-streamer-out.c (produce_asm): Adjust.
29440         (lto_output_toplevel_asms): Likewise.
29441         (produce_asm_for_decls): Likewise.
29442         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
29443         * data-streamer-in.c (string_for_index): Likewise.
29444         * ipa-inline-analysis.c (inline_read_section): Likewise.
29445         * ipa-prop.c (ipa_prop_read_section): Likewise.
29446         (read_replacements_section): Likewise.
29447         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
29448         * lto-section-in.c (lto_create_simple_input_block): Likewise.
29449         (lto_destroy_simple_input_block): Likewise.
29450         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
29451         (lto_input_toplevel_asms): Likewise.
29452
29453 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29454             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
29455             Anna Tikhonova  <anna.tikhonova@intel.com>
29456             Ilya Tocar  <ilya.tocar@intel.com>
29457             Andrey Turetskiy  <andrey.turetskiy@intel.com>
29458             Ilya Verbin  <ilya.verbin@intel.com>
29459             Kirill Yukhin  <kirill.yukhin@intel.com>
29460             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
29461
29462         * common/config/i386/i386-common.c
29463         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
29464         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
29465         (ix86_handle_option): Handle OPT_mavx512dq.
29466         * config/i386/cpuid.h (bit_AVX512DQ): Define.
29467         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
29468         set -mavx512dq accordingly.
29469         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
29470         OPTION_MASK_ISA_AVX512DQ.
29471         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
29472         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
29473         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
29474         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
29475         * config/i386/i386.h (TARGET_AVX512DQ): Define.
29476         (TARGET_AVX512DQ_P(x)): Ditto.
29477         * config/i386/i386.opt: Add mavx512dq.
29478
29479 2014-08-08  Richard Biener  <rguenther@suse.de>
29480
29481         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
29482         target_percent, target_percent_s): Export.
29483         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
29484         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
29485         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
29486         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
29487         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
29488         Move to gimple-fold.c.
29489         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
29490         strcat and strcpy.
29491         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
29492         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
29493         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
29494         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
29495         (rewrite_call_expr_array): Remove.
29496         (fold_builtin_sprintf_chk): Likewise.
29497         (fold_builtin_snprintf_chk): Likewise.
29498         (fold_builtin_varargs): Remove handling of sprintf_chk,
29499         vsprintf_chk, snprintf_chk and vsnprintf_chk.
29500         (gimple_fold_builtin_sprintf_chk): Remove.
29501         (gimple_fold_builtin_snprintf_chk): Likewise.
29502         (gimple_fold_builtin_varargs): Likewise.
29503         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
29504         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
29505         * gimple.c (gimple_seq_add_seq_without_update): New function.
29506         * gimple.h (gimple_seq_add_seq_without_update): Declare.
29507         * gimple-fold.c: Include output.h.
29508         (gsi_replace_with_seq_vops): New function, split out from ...
29509         (gimplify_and_update_call_from_tree): ... here.
29510         (replace_call_with_value): New function.
29511         (replace_call_with_call_and_fold): Likewise.
29512         (var_decl_component_p): Moved from builtins.c.
29513         (gimple_fold_builtin_memory_op): Moved from builtins.c
29514         fold_builtin_memory_op and rewritten to GIMPLE.
29515         (gimple_fold_builtin_memset): Likewise.
29516         (gimple_fold_builtin_strcpy): Likewise.
29517         (gimple_fold_builtin_strncpy): Likewise.
29518         (gimple_fold_builtin_strcat): Likewise.
29519         (gimple_fold_builtin_fputs): Likewise.
29520         (gimple_fold_builtin_memory_chk): Likewise.
29521         (gimple_fold_builtin_stxcpy_chk): Likewise.
29522         (gimple_fold_builtin_stxncpy_chk): Likewise.
29523         (gimple_fold_builtin_snprintf_chk): Likewise.
29524         (gimple_fold_builtin_sprintf_chk): Likewise.
29525         (gimple_fold_builtin_strlen): New function.
29526         (gimple_fold_builtin_with_strlen): New function split out from
29527         gimple_fold_builtin.
29528         (gimple_fold_builtin): Change signature and handle
29529         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
29530         here.  Call gimple_fold_builtin_with_strlen.
29531         (gimple_fold_call): Adjust.
29532
29533 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
29534
29535         * calls.c (precompute_arguments): Check
29536         promoted_for_signed_and_unsigned_p and set the promoted mode.
29537         (promoted_for_signed_and_unsigned_p): New function.
29538         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
29539         and set the promoted mode.
29540         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
29541         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
29542         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
29543
29544
29545 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
29546
29547         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
29548         instead of SUBREG_PROMOTED_UNSIGNED_SET.
29549         (expand_call): Likewise.
29550         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
29551         to get promoted mode.
29552         * combine.c (record_promoted_value): Skip > 0 comparison with
29553         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
29554         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
29555         of SUBREG_PROMOTED_UNSIGNED_P.
29556         (convert_modes): Likewise.
29557         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
29558         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
29559         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
29560         SUBREG_PROMOTED_UNSIGNED_SET.
29561         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
29562         instead of SUBREG_PROMOTED_UNSIGNED_SET.
29563         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
29564         SUBREG_PROMOTED_SET.
29565         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
29566         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
29567         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
29568         of SUBREG_PROMOTED_UNSIGNED_P.
29569         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
29570         (SUBREG_PROMOTED_SET): New define.
29571         (SUBREG_PROMOTED_GET): Likewise.
29572         (SUBREG_PROMOTED_SIGN): Likewise.
29573         (SUBREG_PROMOTED_SIGNED_P): Likewise.
29574         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
29575         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
29576         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
29577         instead of SUBREG_PROMOTED_UNSIGNED_GET.
29578         (nonzero_bits1): Skip > 0 comparison with the results as
29579         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
29580         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
29581         of !SUBREG_PROMOTED_UNSIGNED_P.
29582         * simplify-rtx.c (simplify_unary_operation_1): Use new
29583         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
29584         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
29585         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
29586         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
29587
29588 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
29589
29590         * ipa-devirt.c: Include gimple-pretty-print.h
29591         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
29592         further tests.
29593         (decl_maybe_in_construction_p): Fix conditional on cdtor check
29594         (get_polymorphic_call_info): Fix return value
29595         (type_change_info): New sturcture based on ipa-prop
29596         variant.
29597         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
29598         based on ipa-prop variant.
29599         (extr_type_from_vtbl_ptr_store): New function
29600         based on ipa-prop variant.
29601         (record_known_type): New function.
29602         (check_stmt_for_type_change): New function.
29603         (get_dynamic_type): New function.
29604         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
29605         * tree-ssa-pre.c: ipa-utils.h
29606         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
29607         machinery; sanity check with ipa-prop devirtualization.
29608         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
29609         polymorphic flag.
29610
29611 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
29612
29613         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
29614         * alias.c, cfgexpand.c, cgraphbuild.c,
29615         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
29616         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
29617         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
29618         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
29619         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
29620         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
29621         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
29622         dse.c, except.c, gengtype.c, gimple-expr.c,
29623         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
29624         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
29625         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
29626         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
29627         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
29628         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
29629         pointer-set.h.
29630         * pointer-set.c: Remove file.
29631         * pointer-set.h: Remove file.
29632
29633 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29634
29635         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
29636         * config/arm/types.md (f_sels, f_seld): Delete.
29637
29638 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29639
29640         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
29641         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
29642         (aarch64_movdi_<mode>high): Likewise.
29643         (aarch64_mov<mode>high_di): Likewise.
29644         (aarch64_movdi_<mode>low): Likewise.
29645         (aarch64_mov<mode>low_di): Likewise.
29646         (aarch64_movtilow_tilow): Likewise.
29647         Add comment explaining usage of fp,simd attributes and of
29648         TARGET_FLOAT and TARGET_SIMD.
29649
29650 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
29651             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29652
29653         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
29654         Use MOVN when one of the half-words is 0xffff.
29655
29656 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29657
29658         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
29659
29660 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29661
29662         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
29663         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
29664         (rfs_str): String corresponding to RFS_* constants.
29665         (rank_for_schedule_stats_t): New typedef.
29666         (rank_for_schedule_stats): New static variable.
29667         (rfs_result): New static function.
29668         (rank_for_schedule): Track statistics for deciding heuristics.
29669         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
29670         static functions.
29671         (ready_sort): Use them for debug printouts.
29672         (schedule_block): Init statistics state.  Print statistics on
29673         rank_for_schedule decisions.
29674
29675 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29676
29677         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
29678
29679 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
29680
29681         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
29682         constraint.
29683
29684 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
29685
29686         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
29687         function to not conflict.
29688         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
29689         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
29690         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
29691         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
29692         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
29693         of pointer_map.
29694
29695 2014-08-07  Marek Polacek  <polacek@redhat.com>
29696
29697         * fold-const.c (fold_binary_loc): Add folding of
29698         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
29699
29700 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
29701
29702         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
29703         instead of type size.
29704         (ASM_FINISH_DECLARE_OBJECT): Likewise.
29705
29706 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29707
29708         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
29709         (*thumb1_movqi_insn): Likewise.
29710         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
29711
29712 2014-08-07  Tom de Vries  <tom@codesourcery.com>
29713
29714         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29715         (glibc_2_11_or_earlier): Remove effective-target keywords.
29716
29717 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
29718
29719         * config/arm/arm.c (bdesc_2arg): Fix typo.
29720         (arm_atomic_assign_expand_fenv): Remove The default implementation.
29721
29722 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29723
29724         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
29725
29726 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
29727
29728         PR debug/61923
29729         * haifa-sched.c (advance_one_cycle): Fix dump.
29730         (schedule_block): Don't advance cycle if we are already at the
29731         beginning of the cycle.
29732
29733 2014-08-06  Martin Jambor  <mjambor@suse.cz>
29734
29735         PR ipa/61393
29736         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
29737
29738 2014-08-06  Richard Biener  <rguenther@suse.de>
29739
29740         PR lto/62034
29741         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
29742         SCCs here.
29743         (lto_input_tree): Pop SCCs here.
29744
29745 2014-08-06  Richard Biener  <rguenther@suse.de>
29746
29747         PR tree-optimization/61320
29748         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
29749         handle misaligned loads.
29750
29751 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
29752
29753         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
29754         (aarch64_expand_vec_perm_const): Check for dup before zip.
29755
29756 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29757
29758         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
29759         CONST_INT_P instead of GET_CODE and compare.
29760         (aarch64_select_cc_mode): Likewise.
29761         (aarch64_print_operand): Likewise.
29762         (aarch64_rtx_costs): Likewise.
29763         (aarch64_simd_valid_immediate): Likewise.
29764         (aarch64_simd_check_vect_par_cnst_half): Likewise.
29765         (aarch64_simd_emit_pair_result_insn): Likewise.
29766
29767 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
29768
29769         * gdbhooks.py (find_gcc_source_dir): New helper function.
29770         (class PassNames): New class, locating and parsing passes.def.
29771         (class BreakOnPass): New command "break-on-pass".
29772
29773 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
29774
29775         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
29776         getting olde.
29777
29778 2014-08-05  Richard Biener  <rguenther@suse.de>
29779
29780         PR rtl-optimization/61672
29781         * emit-rtl.h (mem_attrs_eq_p): Declare.
29782         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
29783         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
29784         * cfgcleanup.c (merge_memattrs): Likewise.
29785         Include emit-rtl.h.
29786
29787 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29788
29789         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
29790         rather than singleton vectors.
29791         (vqdmlsls_lane_s32): Likewise.
29792
29793 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29794
29795         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
29796         Use VSDQ_HSI mode iterator.
29797         (aarch64_sqrdmulh_laneq<mode>): Likewise.
29798         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
29799         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
29800         Use BUILTIN_VDQHS macro.
29801         (sqrdmulh_laneq): Likewise.
29802         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
29803         (vqdmlals_laneq_s32): Likewise.
29804         (vqdmlslh_laneq_s16): Likewise.
29805         (vqdmlsls_laneq_s32): Likewise.
29806         (vqdmulhh_laneq_s16): Likewise.
29807         (vqdmulhs_laneq_s32): Likewise.
29808         (vqrdmulhh_laneq_s16): Likewise.
29809         (vqrdmulhs_laneq_s32): Likewise.
29810
29811 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29812
29813         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
29814         (vmuld_laneq_f64): Likewise.
29815         (vmuls_laneq_f32): Likewise.
29816         (vmul_n_f64): Likewise.
29817         (vmuld_lane_f64): Reimplement in C.
29818         (vmuls_lane_f32): Likewise.
29819
29820 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29821
29822         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
29823         to reservation.
29824         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
29825
29826 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29827
29828         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
29829         (rbitsi2): Likewise.
29830         (*arm_rev): Set predicable and predicable_short_it attributes.
29831
29832 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29833
29834         * convert.c (convert_to_integer): Guard transformation to lrint by
29835         -fno-math-errno.
29836
29837 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
29838
29839         * config/aarch64/aarch64-builtins.c
29840         (aarch64_simd_builtin_type_mode): Delete.
29841         (v8qi_UP): Remap to V8QImode.
29842         (v4hi_UP): Remap to V4HImode.
29843         (v2si_UP): Remap to V2SImode.
29844         (v2sf_UP): Remap to V2SFmode.
29845         (v1df_UP): Remap to V1DFmode.
29846         (di_UP): Remap to DImode.
29847         (df_UP): Remap to DFmode.
29848         (v16qi_UP):V16QImode.
29849         (v8hi_UP): Remap to V8HImode.
29850         (v4si_UP): Remap to V4SImode.
29851         (v4sf_UP): Remap to V4SFmode.
29852         (v2di_UP): Remap to V2DImode.
29853         (v2df_UP): Remap to V2DFmode.
29854         (ti_UP): Remap to TImode.
29855         (ei_UP): Remap to EImode.
29856         (oi_UP): Remap to OImode.
29857         (ci_UP): Map to CImode.
29858         (xi_UP): Remap to XImode.
29859         (si_UP): Remap to SImode.
29860         (sf_UP): Remap to SFmode.
29861         (hi_UP): Remap to HImode.
29862         (qi_UP): Remap to QImode.
29863         (aarch64_simd_builtin_datum): Make mode a machine_mode.
29864         (VAR1): Build builtin name.
29865         (aarch64_init_simd_builtins): Remove dead code.
29866
29867 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29868
29869         * graphite-isl-ast-to-gimple.c:
29870         (set_options): New function.
29871         (scop_to_isl_ast): Add calling of set_options.
29872
29873 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
29874
29875         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29876         (analyze_iv_to_split_insn): Don't initialize them.
29877         (get_ivts_expr): Removed.
29878         (allocate_basic_variable, insert_base_initialization): Use
29879         SET_SRC instead of *get_ivts_expr.
29880         (split_iv): Use &SET_SRC instead of get_ivts_expr.
29881
29882 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29883
29884         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29885         (translate_isl_ast_for_loop): Add checking of the
29886         flag_loop_parallelize_all.
29887         (ast_build_before_for): New function.
29888         (scop_to_isl_ast): Add checking of the
29889         flag_loop_parallelize_all.
29890         * graphite-dependences.c: Move the defenition of the
29891         scop_get_dependences from graphite-optimize-isl.c to this file.
29892         (apply_schedule_on_deps): Add checking of the ux's emptiness.
29893         (carries_deps): Add checking of the x's value.
29894         * graphite-optimize-isl.c: Move the defenition of the
29895         scop_get_dependences to graphite-dependences.c.
29896         * graphite-poly.h: Add declarations of scop_get_dependences
29897         and carries_deps.
29898
29899 2014-08-04  Rohit  <rohitarulraj@freescale.com>
29900
29901         PR target/60102
29902         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29903         names.
29904         (alt_reg_names): Likewise.
29905         (rs6000_dwarf_register_span): For SPE high registers, replace
29906         dwarf register numbers with GCC hard register numbers.
29907         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29908         (rs6000_dbx_register_number): For SPE high registers, return dwarf
29909         register number for the corresponding GCC hard register number.
29910         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29911         newly added GCC hard register numbers for SPE high registers.
29912         (DWARF_FRAME_REGISTERS):  Likewise.
29913         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29914         (DWARF_FRAME_REGNUM): Likewise.
29915         (FIXED_REGISTERS): Likewise.
29916         (CALL_USED_REGISTERS): Likewise.
29917         (CALL_REALLY_USED_REGISTERS): Likewise.
29918         (REG_ALLOC_ORDER): Likewise.
29919         (enum reg_class): Likewise.
29920         (REG_CLASS_NAMES): Likewise.
29921         (REG_CLASS_CONTENTS): Likewise.
29922         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29923
29924 2014-08-04  Richard Biener  <rguenther@suse.de>
29925
29926         * gimple-fold.h (gimple_fold_builtin): Remove.
29927         * gimple-fold.c (gimple_fold_builtin): Make static.
29928         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29929         fold_stmt, not gimple_fold_builtin.
29930
29931 2014-08-04  Martin Liska <mliska@suse.cz>
29932
29933         * cgraph.h (csi_end_p): Removed.
29934         (csi_next): Likewise.
29935         (csi_node): Likewise.
29936         (csi_start): Likewise.
29937         (cgraph_node_in_set_p): Likewise.
29938         (cgraph_node_set_size): Likewise.
29939         (vsi_end_p): Likewise.
29940         (vsi_next): Likewise.
29941         (vsi_node): Likewise.
29942         (vsi_start): Likewise.
29943         (varpool_node_set_size): Likewise.
29944         (cgraph_node_set_nonempty_p): Likewise.
29945         (varpool_node_set_nonempty_p): Likewise.
29946         * cgraphunit.c (cgraph_process_new_functions): vec replaces
29947         cgraph_node_set.
29948         * ipa-inline-transform.c: Likewise.
29949         * ipa-utils.c (cgraph_node_set_new): Removed.
29950         (cgraph_node_set_add): Likewise.
29951         (cgraph_node_set_remove): Likewise.
29952         (cgraph_node_set_find): Likewise.
29953         (dump_cgraph_node_set): Likewise.
29954         (debug_cgraph_node_set): Likewise.
29955         (free_cgraph_node_set): Likewise.
29956         (varpool_node_set_new): Likewise.
29957         (varpool_node_set_add): Likewise.
29958         (varpool_node_set_remove): Likewise.
29959         (varpool_node_set_find): Likewise.
29960         (dump_varpool_node_set): Likewise.
29961         (free_varpool_node_set): Likewise.
29962         (debug_varpool_node_set): Likewise.
29963         * tree-emutls.c (struct tls_var_data):
29964         (emutls_index): Removed.
29965         (emutls_decl): Likewise.
29966         (gen_emutls_addr): Function implementation uses newly added
29967         hash_map<varpool_node *, tls_var_data>.
29968         (clear_access_vars): Likewise.
29969         (create_emultls_var): Likewise.
29970         (ipa_lower_emutls): Likewise.
29971         (reset_access): New function.
29972
29973 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29974
29975         * config/i386/i386.c (ix86_option_override_internal): Add
29976         PTA_RDRND and PTA_MOVBE for bdver4.
29977
29978 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29979             James Greenhalgh  <james.greenhalgh@arm.com>
29980
29981         * doc/md.texi (clrsb): Document.
29982         (clz): Change reference to x into operand 1.
29983         (ctz): Likewise.
29984         (popcount): Likewise.
29985
29986 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29987
29988         PR target/61713
29989         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29990         move to subtarget in serial version if result is ignored.
29991
29992 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29993             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29994
29995         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29996         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
29997         (sched_analyze_insn): Update use of try_group_insn to
29998         sched_macro_fuse_insns.
29999         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
30000         arguments that are not conditional jumps.
30001
30002 2014-08-04  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
30003
30004         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
30005         extended family information. Handle BTVER2 cpu with cpuid family value.
30006
30007 2014-08-04  Tom de Vries  <tom@codesourcery.com>
30008
30009         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
30010         (glibc_2_11_or_earlier): Document effective-target keywords.
30011
30012 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
30013
30014         * ipa-devirt.c (odr_type_warn_count): Add type.
30015         (possible_polymorphic_call_targets): Set it.
30016         (ipa_devirt): Use it.
30017
30018 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
30019
30020         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
30021         Document.
30022         * ipa-devirt.c: Include hash-map.h
30023         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
30024         (clear_speculation): Break out of ...
30025         (get_class_context): ... here; speed up handling obviously useless
30026         speculations.
30027         (odr_type_warn_count, decl_warn_count): New structures.
30028         (final_warning_record): New structure.
30029         (final_warning_records): New static variable.
30030         (possible_polymorphic_call_targets): Cleanup handling of
30031         speculative info; do not build speculation when user do not care;
30032         record info about warnings when asked for.
30033         (add_decl_warning): New function.
30034         (type_warning_cmp): New function.
30035         (decl_warning_cmp): New function.
30036         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
30037         (gate): Enable pass when warnings are requested.
30038         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
30039         options.
30040
30041 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
30042
30043         * hash-map.h (default_hashmap_traits::mark_key_deleted):
30044         Fix cast.
30045         (hash_map::remove): New method.
30046         (hash_map::traverse): New method.
30047         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
30048         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
30049         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
30050         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
30051         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
30052         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
30053         pointer_map.
30054
30055 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
30056
30057         * hash-set.h: new File.
30058         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
30059         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
30060         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
30061         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
30062         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
30063         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
30064         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
30065         varpool.c: Use hash_set instead of pointer_set.
30066
30067 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
30068
30069         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
30070
30071 2014-08-01  Jiong Wang <jiong.wang@arm.com>
30072
30073         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
30074         for frame access when strict_p is false.
30075
30076 2014-08-01  Renlin Li <renlin.li@arm.com>
30077 2014-08-01  Jiong Wang <jiong.wang@arm.com>
30078
30079         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
30080         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
30081         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
30082         Declaration.
30083         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
30084         predicate.
30085         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
30086         aarch64_mem_pair_offset.
30087
30088 2014-08-01  Jiong Wang <jiong.wang@arm.com>
30089
30090         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
30091         offset.
30092         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
30093         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
30094
30095 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
30096
30097         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
30098
30099 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
30100
30101         PR regression/61510
30102         * cgraphunit.c (analyze_functions): Use get_create rather than get
30103         for decls which are clones of abstract functions.
30104
30105 2014-08-01  Martin Liska  <mliska@suse.cz>
30106
30107         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
30108         * ipa-prop.h (count_formal_params): Global function created from static.
30109         * ipa-prop.c (count_formal_params): Likewise.
30110         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
30111         profiles for semantically equivalent functions.
30112         * passes.c (do_per_function): If we load body of a function
30113         during WPA, this condition should behave same.
30114         * varpool.c (ctor_for_folding): More tolerant assert for variable
30115         aliases created during WPA.
30116
30117 2014-08-01  Martin Liska  <mliska@suse.cz>
30118
30119         * doc/invoke.texi (Options That Control Optimization): Documentation
30120         for -foptimize-strlen introduced. Optimization levels default options
30121         fixed.
30122
30123 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
30124
30125         * opts.c (common_handle_option): Handle -fsanitize=alignment.
30126         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
30127         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
30128         type to bool.
30129         * stor-layout.h (min_align_of_type): New prototype.
30130         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
30131         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
30132         check.
30133         * ubsan.c: Include builtins.h.
30134         (ubsan_expand_bounds_ifn): Change return type to bool,
30135         always return true.
30136         (ubsan_expand_null_ifn): Change return type to bool, change
30137         argument to gimple_stmt_iterator *.  Handle both null and alignment
30138         sanitization, take type from ckind argument's type rather than
30139         first argument.
30140         (instrument_member_call): Removed.
30141         (instrument_mem_ref): Remove t argument, add mem and base arguments.
30142         Handle both null and alignment sanitization, don't say whole
30143         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
30144         call instead of 2 argument.
30145         (instrument_null): Adjust instrument_mem_ref caller.  Don't
30146         instrument calls here.
30147         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
30148         like SANITIZE_NULL.
30149         * stor-layout.c (min_align_of_type): New function.
30150         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
30151         Or it into SANITIZE_UNDEFINED.
30152         * doc/invoke.texi (-fsanitize=alignment): Document.
30153
30154 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30155
30156         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
30157
30158 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30159
30160         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
30161         inchash.
30162         (vn_reference_compute_hash): Dito.
30163         (vn_nary_op_compute_hash): Dito.
30164         (vn_phi_compute_hash): Dito.
30165         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
30166
30167 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30168
30169         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
30170         Rename to inchash:add_expr_commutative. Convert to inchash.
30171         (iterative_hash_hashable_expr): Rename to
30172         inchash:add_hashable_expr. Convert to inchash.
30173         (avail_expr_hash): Dito.
30174
30175 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30176
30177         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
30178         Convert to inchash.
30179
30180 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30181
30182         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
30183
30184 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30185
30186         * Makefile.in (OBJS): Add rtlhash.o
30187         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
30188         (loc_checksum): Dito.
30189         (loc_checksum_ordered): Dito.
30190         (hash_loc_operands): Dito.
30191         (hash_locs): Dito.
30192         (hash_loc_list): Dito.
30193         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
30194         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
30195         * rtlhash.c: New file.
30196         * rtlhash.h: New file.
30197
30198 2014-07-31  Andi Kleen  <ak@linux.intel.com>
30199
30200         * inchash.h (inchash): Change inchash class to namespace.
30201         (class hash): ... Rename from inchash.
30202         (add_object): Move from macro to class template.
30203         * lto-streamer-out.c (hash_tree): Change inchash
30204         to inchash::hash.
30205         * tree.c (build_type_attribute_qual_variant): Dito.
30206         (type_hash_list): Dito.
30207         (attribute_hash_list): Dito.
30208         (iterative_hstate_expr): Rename to inchash::add_expr
30209         (build_range_type_1): Change inchash to inchash::hash
30210         and use hash::add_expr.
30211         (build_array_type_1): Dito.
30212         (build_function_type): Dito
30213         (build_method_type_directly): Dito.
30214         (build_offset_type): Dito.
30215         (build_complex_type): Dito.
30216         (make_vector_type): Dito.
30217         * tree.h (iterative_hash_expr): Dito.
30218
30219 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
30220
30221         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
30222
30223 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
30224
30225         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
30226         correct alphabetical position.
30227         (vpaddd_f64): Rewrite using builtins.
30228         (vpaddd_s64): Move to correct alphabetical position.
30229         (vpaddd_u64): New.
30230
30231 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
30232
30233         PR target/61844
30234         * config/sh/sh.c (sh_legitimate_address_p,
30235         sh_legitimize_reload_address): Handle reg+reg address modes when
30236         ALLOW_INDEXED_ADDRESS is false.
30237         * config/sh/predicates.md (general_movsrc_operand,
30238         general_movdst_operand): Likewise.
30239
30240 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
30241
30242         * config/aarch64/aarch64-builtins.c
30243         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
30244         BYTES_BIG_ENDIAN.
30245
30246 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
30247
30248         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
30249         the generated mask based on BYTES_BIG_ENDIAN.
30250         (aarch64_simd_check_vect_par_cnst_half): New.
30251         * config/aarch64/aarch64-protos.h
30252         (aarch64_simd_check_vect_par_cnst_half): New.
30253         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
30254         the check out to aarch64_simd_check_vect_par_cnst_half.
30255         (vect_par_cnst_lo_half): Likewise.
30256         * config/aarch64/aarch64-simd.md
30257         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
30258         (move_hi_quad_<mode>): Always generate a low mask.
30259
30260 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
30261
30262         * doc/invoke.texi (AVR Options): Add documentation about
30263         __AVR_DEVICE_NAME__ built-in macro.
30264
30265 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
30266
30267         PR target/61948
30268         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
30269         constraints are satisfied.
30270         (<shift>di3_neon): Likewise.
30271
30272 2014-07-31  Richard Biener  <rguenther@suse.de>
30273
30274         PR tree-optimization/61964
30275         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
30276         by structural equality.
30277
30278 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
30279
30280         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
30281         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
30282         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
30283         New enums.
30284         * gcc.c (sanitize_spec_function): Support new option.
30285         (SANITIZER_SPEC): Remove now redundant check.
30286         * opts.c (common_handle_option): Support new option.
30287         (finish_options): Check for incompatibilities.
30288         * toplev.c (process_options): Split userspace-specific checks.
30289
30290 2014-07-31  Richard Biener  <rguenther@suse.de>
30291
30292         * lto-streamer.h (struct output_block): Remove global.
30293         (struct data_in): Remove labels, num_named_labels and
30294         num_unnamed_labels.
30295         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
30296         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
30297
30298 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
30299
30300         PR c++/60517
30301         * common.opt (-Wreturn-local-addr): Moved from c.opt.
30302         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
30303         (isolate_path): New argument to avoid inserting a trap.
30304         (find_implicit_erroneous_behaviour): Handle returning the address
30305         of a local variable.
30306         (find_explicit_erroneous_behaviour): Likewise.
30307
30308 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
30309
30310         PR lto/61868
30311         * toplev.c (init_random_seed): Move piece of code never called to
30312         set_random_seed.
30313         (set_random_seed): see above.
30314
30315 2014-07-31  Tom de Vries  <tom@codesourcery.com>
30316
30317         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
30318
30319 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
30320
30321         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
30322         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
30323
30324 2014-07-31  Richard Biener  <rguenther@suse.de>
30325
30326         * data-streamer.h (streamer_write_data_stream): Declare here,
30327         renamed from ...
30328         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
30329         * lto-cgraph.c (lto_output_node): Adjust.
30330         (lto_output_varpool_node): Likewise.
30331         * data-streamer-out.c (streamer_string_index): Likewise.
30332         (streamer_write_data_stream, lto_append_block): Move from ...
30333         * lto-section-out.c (lto_output_data_stream,
30334         lto_append_block): ... here.
30335
30336 2014-07-30  Mike Stump  <mikestump@comcast.net>
30337
30338         * configure.ac: Also check for popen.
30339         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
30340         * configure: Regenerate.
30341         * config.in:  Regenerate.
30342
30343 2014-07-30  Martin Jambor  <mjambor@suse.cz>
30344
30345         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
30346         parameter to gimple.
30347
30348 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30349
30350         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
30351         address as second parameter to __tpf_eh_return routine.
30352
30353 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
30354
30355         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
30356         Thumb2.
30357
30358 2014-07-30  Tom Tromey  <tromey@redhat.com>
30359
30360         PR c/59855
30361         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
30362         * doc/extend.texi (Type Attributes): Document designated_init
30363         attribute.
30364
30365 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
30366
30367         * graphite-isl-ast-to-gimple.c:
30368         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
30369         (gcc_expression_from_isl_expression): Pass type to
30370         gcc_expression_from_isl_ast_expr_id.
30371
30372 2014-07-30  Richard Biener  <rguenther@suse.de>
30373
30374         * lto-streamer.h (lto_write_data): New function.
30375         * langhooks.c (lhd_append_data): Do not free block.
30376         * lto-section-out.c (lto_write_data): New function writing
30377         raw data to the current section.
30378         (lto_write_stream): Adjust for langhook semantic change.
30379         (lto_destroy_simple_output_block): Write header directly.
30380         * lto-opts.c (lto_write_options): Write options directly.
30381         * lto-streamer-out.c (produce_asm): Write heaeder directly.
30382         (lto_output_toplevel_asms): Likewise.
30383         (copy_function_or_variable): Copy data directly.
30384         (write_global_references): Output index table directly.
30385         (lto_output_decl_state_refs): Likewise.
30386         (write_symbol): Write data directly.
30387         (produce_symtab): Adjust.
30388         (produce_asm_for_decls): Output header and refs directly.
30389
30390 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
30391
30392         * ipa-devirt.c (polymorphic_call_target_d): Rename
30393         nonconstruction_targets to speculative_targets
30394         (get_class_context): Fix handling of contextes without outer type;
30395         avoid matching non-polymorphic types in LTO.
30396         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
30397         parameter to speculative_targetsp; handle speculation.
30398         (dump_possible_polymorphic_call_targets): Update dumping.
30399
30400 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
30401
30402         * common.opt (Wodr): Enable by default.
30403
30404 2014-07-29  Olivier Hainque  <hainque@adacore.com>
30405
30406         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
30407
30408 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
30409
30410         PR bootstrap/61914
30411         * gengtype.c (strtoken): New function.
30412         (create_user_defined_type): Replace strtok with strtoken.
30413
30414 2014-07-29  Nathan Sidwell  <nathan@acm.org>
30415
30416         * gcov-io.c (gcov_var): Make hidden.
30417         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
30418         (gcov_do_dump): Declare.
30419         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
30420
30421 2014-07-29  Martin Jambor  <mjambor@suse.cz>
30422
30423         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
30424         parameter to gimple.
30425         (sra_modify_assign): Likewise.
30426
30427 2014-07-29  Richard Biener  <rguenther@suse.de>
30428
30429         PR middle-end/52478
30430         * expr.c (expand_expr_real_2): Revert last change.
30431
30432 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
30433
30434         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
30435         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
30436         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
30437         call.
30438         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
30439         (contains_type_p): Forward declare.
30440         (polymorphic_call_target_hasher::hash): Hash speculative info.
30441         (polymorphic_call_target_hasher::equal): Compare speculative info.
30442         (get_class_context): Handle speuclation.
30443         (contains_type_p): Update.
30444         (get_polymorphic_call_info_for_decl): Update.
30445         (walk_ssa_copies): Break out from ...
30446         (get_polymorphic_call_info): ... here; set speculative context
30447         before giving up.
30448         * ipa-prop.c (ipa_write_indirect_edge_info,
30449         ipa_read_indirect_edge_info): Stream speculative context.
30450         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
30451         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
30452         SPECULATIVE_MAYBE_DERIVED_TYPE).
30453         (possible_polymorphic_call_targets overriders): Update.
30454         (dump_possible_polymorphic_call_targets overriders): Update.
30455         (dump_possible_polymorphic_call_target_p overriders): Update.
30456
30457 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
30458
30459         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
30460         ipa-devirt path; fix thinko there.
30461
30462 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
30463
30464         * config/i386/i386.c (ix86_return_in_memory): Replace one
30465         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
30466
30467 2014-07-28  Marek Polacek  <polacek@redhat.com>
30468
30469         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
30470
30471 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
30472
30473         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
30474         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
30475         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
30476         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
30477         (USE_LD_AS_NEEDED): Likewise.
30478         (ASM_APP_ON): Likewise.
30479         (ASM_APP_OFF): Likewise.
30480         (TARGET_POSIX_IO): Likewise.
30481         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
30482         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
30483         (USE_LD_AS_NEEDED): Likewise.
30484         (ASM_APP_ON): Likewise.
30485         (ASM_APP_OFF): Likewise.
30486         (TARGET_POSIX_IO): Likewise.
30487
30488 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
30489
30490         PR middle-end/61734
30491         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
30492         operators other than the equality operators.
30493
30494 2014-07-28  Richard Biener  <rguenther@suse.de>
30495
30496         PR middle-end/52478
30497         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
30498         sure to register SImode ones, not only >= word_mode ones.
30499         * expr.c (expand_expr_real_2): When expanding -ftrapv
30500         binops do not use OPTAB_LIB_WIDEN.
30501
30502 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
30503
30504         PR middle-end/61919
30505         * tree-outof-ssa.c (insert_partition_copy_on_edge)
30506         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
30507         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
30508         inserting them in the insn stream.
30509
30510 2014-07-28  Marek Polacek  <polacek@redhat.com>
30511
30512         PR middle-end/61913
30513         * common.opt (Wodr): Add Var.
30514
30515 2014-07-28  Richard Biener  <rguenther@suse.de>
30516
30517         PR tree-optimization/61921
30518         * tree-ssa-structalias.c (create_variable_info_for_1): Check
30519         if there is a varpool node before dereferencing it.
30520
30521 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
30522
30523         * graphite-sese-to-poly.c:
30524         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
30525         id of the pbb), which contains pointer to the pbb1.
30526
30527         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
30528
30529 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
30530
30531         * graphite-isl-ast-to-gimple.c:
30532         (graphite_create_new_guard): New function.
30533         (translate_isl_ast_node_if): New function.
30534         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
30535
30536         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
30537
30538 2014-07-27  Anthony Green  <green@moxielogic.com>
30539
30540         * config.gcc: Add moxie-*-moxiebox* configuration.
30541         * config/moxie/moxiebox.h: New file.
30542
30543 2014-07-26  Andrew Pinski  <apinski@cavium.com>
30544
30545         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
30546         from the read only register.
30547
30548 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
30549
30550         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
30551         as the allocation class if it isn't likely to be spilled.
30552
30553 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
30554
30555         * rtl.h (tls_referenced_p): Declare.
30556         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
30557         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
30558         (mips_cannot_force_const_mem): Use tls_referenced_p.
30559         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
30560         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
30561         instead of pa_tls_referenced_p.
30562         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
30563         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
30564         (pa_legitimate_constant_p): Likewise.
30565         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
30566         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
30567         (rs6000_cannot_force_const_mem, rs6000_emit_move)
30568         (rs6000_address_for_altivec): Use tls_referenced_p instead of
30569         rs6000_tls_referenced_p.
30570         (rs6000_tls_symbol_ref_1): Delete.
30571
30572 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
30573
30574         PR target/44551
30575         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
30576         Optimize inverse of a VEC_CONCAT.
30577
30578 2014-07-25  Xinliang David Li  <davidxl@google.com>
30579
30580         * params.def: New parameter.
30581         * coverage.c (get_coverage_counts): Check new flag.
30582         (coverage_compute_profile_id): Check new flag.
30583         (coverage_begin_function): Check new flag.
30584         (coverage_end_function): Check new flag.
30585         * value-prof.c (coverage_node_map_initialized_p): New function.
30586         (init_node_map): Populate map with all functions.
30587         * doc/invoke.texi: Document new parameter.
30588
30589 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
30590             Richard Biener <rguenther@suse.de>
30591
30592         * lto-streamer-out.c (struct sccs): Turn to ...
30593         (class DFS): ... this one; refactor the DFS walk so it can
30594         be re-done on per-SCC basis.
30595         (DFS::DFS): New constructor.
30596         (DFS::~DFS): New destructor.
30597         (hash_tree): Add new MAP argument holding in-SCC hash values;
30598         remove POINTER_TYPE hashing hack.
30599         (scc_entry_compare): Rename to ...
30600         (DFS::scc_entry_compare): ... this one.
30601         (hash_scc): Rename to ...
30602         (DFS::hash_scc): ... this one; pass output_block instead
30603         of streamer_cache; work harder to get unique and stable SCC
30604         hashes.
30605         (DFS_write_tree): Rename to ...
30606         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
30607         (lto_output_tree): Update.
30608
30609 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30610
30611         * lto-streamer-out.c (hash_tree): Convert to inchash.
30612
30613 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30614
30615         * tree.c (build_type_attribute_qual_variant): Use inchash.
30616         (type_hash_list): Dito.
30617         (attribute_hash_list): Dito
30618         (iterative_hstate_expr): Dito.
30619         (iterative_hash_expr): Dito.
30620         (build_range_type_1): Dito.
30621         (build_array_type_1): Dito.
30622         (build_function_type): Dito.
30623         (build_method_type_directly): Dito.
30624         (build_offset_type): Dito.
30625         (build_complex_type): Dito.
30626         (make_vector_type): Dito.
30627         * tree.h (iterative_hash_expr): Add compat wrapper.
30628         (iterative_hstate_expr): Add.
30629
30630 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30631
30632         * Makefile.in (OBJS): Add inchash.o.
30633         (PLUGIN_HEADERS): Add inchash.h.
30634         * ipa-devirt.c: Include inchash.h.
30635         * lto-streamer-out.c: Dito.
30636         * tree-ssa-dom.c: Dito.
30637         * tree-ssa-pre.c: Dito.
30638         * tree-ssa-sccvn.c: Dito.
30639         * tree-ssa-tail-merge.c: Dito.
30640         * asan.c: Dito.
30641         * tree.c (iterative_hash_hashval_t): Move to ...
30642         (iterative_hash_host_wide_int): Move to ...
30643         * inchash.c: Here. New file.
30644         * tree.h (iterative_hash_hashval_t): Move to ...
30645         (iterative_hash_host_wide_int): Move to ...
30646         * inchash.h: Here. New file.
30647
30648 2014-07-25  Richard Biener  <rguenther@suse.de>
30649
30650         PR middle-end/61762
30651         PR middle-end/61894
30652         * fold-const.c (native_encode_int): Add and handle offset
30653         parameter to do partial encodings of expr.
30654         (native_encode_fixed): Likewise.
30655         (native_encode_real): Likewise.
30656         (native_encode_complex): Likewise.
30657         (native_encode_vector): Likewise.
30658         (native_encode_string): Likewise.
30659         (native_encode_expr): Likewise.
30660         * fold-const.c (native_encode_expr): Add offset parameter
30661         defaulting to -1.
30662         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
30663         (fold_ctor_reference): Handle all reads from tcc_constant
30664         ctors.
30665
30666 2014-07-25  Richard Biener  <rguenther@suse.de>
30667
30668         * tree-inline.c (estimate_move_cost): Mark speed_p argument
30669         as possibly unused.
30670
30671 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
30672
30673         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
30674
30675 2014-07-24  Kyle McMartin  <kyle@redhat.com>
30676
30677         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
30678
30679 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30680
30681         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
30682         Add prototype.
30683         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
30684         function.
30685         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
30686         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
30687         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
30688
30689 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30690
30691         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
30692         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
30693         aggregate types.  Instead, *all* aggregate types, except for single-
30694         element or homogeneous float/vector aggregates, are quadword-aligned
30695         if required by their type alignment.  Issue -Wpsabi note when a type
30696         is now treated differently than before.
30697
30698 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30699
30700         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
30701         does not fit fully into floating-point registers, and there is still
30702         space in the register parameter area, use GPRs to pass those parts
30703         of the argument.  Issue -Wpsabi note if any parameter is now treated
30704         differently than before.
30705         (rs6000_arg_partial_bytes): Update.
30706
30707 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
30708
30709         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
30710
30711 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30712
30713         * rtl.h (target_rtl): Remove lang_dependent_initialized.
30714         * toplev.c (initialize_rtl): Don't use it.  Move previously
30715         "language-dependent" calls to...
30716         (backend_init): ...here.
30717         (lang_dependent_init_target): Don't set lang_dependent_initialized.
30718         Assert that RTL initialization hasn't happend yet.
30719
30720 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30721
30722         PR rtl-optimization/61629
30723         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
30724         they have already been initialized.
30725
30726 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30727
30728         PR middle-end/61268
30729         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
30730         DECL_INCOMING_RTL and entry_parm.
30731         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
30732         * calls.c (load_register_parameters): Likewise argument values.
30733         (emit_library_call_value_1, store_one_arg): Likewise argument
30734         save areas.
30735         * config/i386/i386.c (assign_386_stack_local): Likewise the local
30736         stack slot.
30737         * explow.c (validize_mem): Modify the argument in-place.
30738
30739 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30740
30741         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
30742         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
30743
30744 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30745
30746         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
30747         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
30748
30749 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30750
30751         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
30752         (aarch64_save_callee_saves): New parameter "skip_wb".
30753         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
30754
30755 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30756
30757         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
30758         "wb_candidate2".
30759         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
30760
30761 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30762
30763         * graphite-isl-ast-to-gimple.c:
30764         (graphite_create_new_loop): Add calling of isl_id_free to properly
30765         decrement reference counts.
30766
30767         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
30768
30769 2014-07-24  Martin Liska  <mliska@suse.cz>
30770         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
30771         function used.
30772         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
30773         (rs6000_code_end): Likewise.
30774
30775 2014-07-24  Martin Liska  <mliska@suse.cz>
30776
30777         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
30778         symtab_node funtion used.
30779         (rs6000_xcoff_declare_object_name): Likewise.
30780
30781 2014-07-24  Martin Liska  <mliska@suse.cz>
30782
30783         * cgraphunit.c (compile): Correct function used.
30784
30785 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30786
30787         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
30788         as non-indexable.
30789
30790 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30791
30792         PR lto/61802
30793         * varasm.c (bss_initializer_p): Handle offlined ctors.
30794         (align_variable, get_variable_align): Likewise.
30795         (make_decl_one_only): Likewise.
30796         (default_binds_local_p_1): Likewise.
30797         (decl_binds_to_current_def_p): Likewise.
30798         (get_variable_section): Get constructor if it is offlined.
30799         (assemble_variable_contents): Sanity check that the caller
30800         streamed in the ctor in LTO.
30801
30802 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30803
30804         * graphite-isl-ast-to-gimple.c:
30805         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
30806         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
30807         isl_ast_op_pdiv_r to the different case.
30808
30809         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
30810
30811 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30812
30813         PR middle-end/61876
30814         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
30815         when flag_errno_math is on.
30816
30817 2014-07-24  Martin Liska  <mliska@suse.cz>
30818
30819         * cgraph.h (varpool_node):
30820         (availability get_availability (void)):
30821         created from cgraph_variable_initializer_availability
30822         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
30823         created from: cgraph_variable_initializer_availability
30824         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
30825         (void finalize_named_section_flags (void)):
30826         created from varpool_finalize_named_section_flags
30827         (bool assemble_decl (void)): created from varpool_assemble_decl
30828         (void analyze (void)): created from varpool_analyze_node
30829         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30830         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30831         (void remove_initializer (void)): created from varpool_remove_initializer
30832         (tree get_constructor (void)): created from varpool_get_constructor
30833         (bool externally_visible_p (void)): created from varpool_externally_visible_p
30834         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30835         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30836         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30837         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30838         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30839         (static bool output_variables (void)): created from varpool_output_variables
30840         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30841         created from varpool_extra_name_alias
30842         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30843         (static void dump_varpool (FILE *f)): created from dump_varpool
30844         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30845         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30846         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30847         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30848         (void assemble_aliases (void)): created from assemble_aliases
30849
30850 2014-07-24  Martin Liska  <mliska@suse.cz>
30851
30852         * cgraph.h (symtab_node):
30853         (void register_symbol (void)): created from symtab_register_node
30854         (void remove (void)): created from symtab_remove_node
30855         (void dump (FILE *f)): created from dump_symtab_node
30856         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30857         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30858         (struct ipa_ref *add_reference (symtab_node *referred_node,
30859         enum ipa_ref_use use_type)): created from add_reference
30860         (struct ipa_ref *add_reference (symtab_node *referred_node,
30861         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30862         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30863         gimple stmt)): created from maybe_add_reference
30864         (bool semantically_equivalent_p (symtab_node *target)): created from
30865         symtab_semantically_equivalent_p
30866         (void remove_from_same_comdat_group (void)): created from
30867         remove_from_same_comdat_group
30868         (void add_to_same_comdat_group (symtab_node *old_node)): created from
30869         symtab_add_to_same_comdat_group
30870         (void dissolve_same_comdat_group_list (void)): created from
30871         symtab_dissolve_same_comdat_group_list
30872         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30873         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30874         created from symtab_alias_ultimate_target
30875         (inline symtab_node *next_defined_symbol (void)): created from
30876         symtab_next_defined_symbol
30877         (bool resolve_alias (symtab_node *target)): created from
30878         symtab_resolve_alias
30879         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30880         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30881         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30882         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30883         (void set_section (const char *section)): created from set_section_1
30884         (enum availability get_availability (void)): created from symtab_node_availability
30885         (void make_decl_local (void)): created from symtab_make_decl_local
30886         (bool real_symbol_p (void)): created from symtab_read_node
30887         (can_be_discarded_p (void)): created from symtab_can_be_discarded
30888         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30889         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30890         symtab_in_same_comdat_p;
30891         (bool address_taken_from_non_vtable_p (void)): created from
30892         address_taken_from_non_vtable_p
30893         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30894         (static void dump_table (FILE *)): created from dump_symtab
30895         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30896         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30897         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30898         symtab_used_from_object_file_p
30899         (void dump_base (FILE *)): created from dump_symtab_base
30900         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30901         (void unregister (void)): created from symtab_unregister_node
30902         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30903         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30904         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30905         symtab_nonoverwritable_alias_1
30906         * cgraph.h (cgraph_node):
30907         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30908         created from cgraph_remove_node_and_inline_clones
30909         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30910         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30911         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30912         (cgraph_node *function_symbol (enum availability *avail = NULL)):
30913         created from cgraph_function_node
30914         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30915         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30916         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30917         created from cgraph_create_clone
30918         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30919         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30920         created from cgraph_create_virtual_clone
30921         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30922         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30923         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30924         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30925         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30926         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30927         created from cgraph_function_version_info
30928         (struct cgraph_function_version_info *insert_new_function_version (void)):
30929         created from insert_new_cgraph_node_version
30930         (struct cgraph_function_version_info *function_version (void)): created from
30931         get_cgraph_node_version
30932         (void analyze (void)): created from analyze_function
30933         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30934         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30935         tree real_alias) cgraph_add_thunk
30936         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30937         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30938         created from cgraph_function_or_thunk_node
30939         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30940         created from expand_thunk
30941         (void reset (void)): created from cgraph_reset_node
30942         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30943         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30944         (void remove (void)): created from cgraph_remove_node
30945         (void dump (FILE *f)): created from dump_cgraph_node
30946         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30947         (bool get_body (void)): created from cgraph_get_body
30948         (void release_body (void)): created from cgraph_release_function_body
30949         (void unnest (void)): created from cgraph_unnest_node
30950         (void make_local (void)): created from cgraph_make_node_local
30951         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30952         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30953         gcov_type count, int freq)): created from cgraph_create_edge
30954         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30955         gcov_type count, int freq)): created from cgraph_create_indirect_edge
30956         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30957         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30958         created from cgraph_create_edge_including_clones
30959         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30960         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30961         (void remove_callers (void)): created from cgraph_node_remove_callers
30962         (void remove_callees (void)): created from cgraph_node_remove_callees
30963         (enum availability get_availability (void)): created from cgraph_function_body_availability
30964         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30965         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30966         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30967         (void call_duplication_hooks (cgraph_node *node2)): created from
30968         cgraph_call_node_duplication_hooks
30969         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30970         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30971         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30972         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30973         (void call_function_insertion_hooks (void)):
30974         created from cgraph_call_function_insertion_hooks
30975         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30976         (bool local_p (void)): created from cgraph_local_node
30977         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30978         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30979         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30980         (inline bool only_called_directly_or_aliased_p (void)):
30981         created from cgraph_only_called_directly_or_aliased_p
30982         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30983         created from cgraph_will_be_removed_from_program_if_no_direct_calls
30984         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30985         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30986         (bool can_remove_if_no_direct_calls_p (void)):
30987         created from cgraph_can_remove_if_no_direct_calls_p
30988         (inline bool has_gimple_body_p (void)):
30989         created from cgraph_function_with_gimple_body_p
30990         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30991         (static void dump_cgraph (FILE *f)): created from dump_cgraph
30992         (static inline void debug_cgraph (void)): created from debug_cgraph
30993         (static void record_function_versions (tree decl1, tree decl2)):
30994         created from record_function_versions
30995         (static void delete_function_version (tree decl)):
30996         created from delete_function_version
30997         (static void add_new_function (tree fndecl, bool lowered)):
30998         created from cgraph_add_new_function
30999         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
31000         (static cgraph_node * create (tree decl)): created from cgraph_create_node
31001         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
31002         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
31003         (static cgraph_node *get_for_asmname (tree asmname)):
31004         created from cgraph_node_for_asm
31005         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
31006         created from cgraph_same_body_alias
31007         (static bool used_from_object_file_p_worker (cgraph_node *node,
31008         void *): new function
31009         (static bool non_local_p (cgraph_node *node, void *)):
31010         created from cgraph_non_local_node_p_1
31011         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
31012         created from verify_cgraph
31013         (static bool make_local (cgraph_node *node, void *)):
31014         created from cgraph_make_node_local
31015         (static cgraph_node *create_alias (tree alias, tree target)):
31016         created from cgraph_create_function_alias
31017         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
31018         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
31019         created from cgraph_create_edge_1
31020         * cgraph.h (varpool_node):
31021         (void remove (void)): created from varpool_remove_node
31022         (void dump (FILE *f)): created from dump_varpool_node
31023
31024 2014-07-24  Richard Biener  <rguenther@suse.de>
31025
31026         PR ipa/61823
31027         * tree-ssa-structalias.c (create_variable_info_for_1):
31028         Use varpool_get_constructor.
31029         (create_variable_info_for): Likewise.
31030
31031 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
31032
31033         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
31034         subtract outgoing area size when restoring stack_pointer_rtx.
31035
31036 2014-07-24  Nick Clifton  <nickc@redhat.com>
31037
31038         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
31039         that operations are taking place in parallel.
31040         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
31041
31042 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
31043
31044         * omp-low.c (extract_omp_for_data): Add missing break statement.
31045
31046 2014-07-24  Richard Biener  <rguenther@suse.de>
31047
31048         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
31049         * tree-inline.c (estimate_move_cost): Add speed_p parameter
31050         and adjust MOVE_RATIO query accordingly.
31051         (estimate_num_insns): Adjust callers.
31052         * ipa-prop.c (ipa_populate_param_decls): Likewise.
31053         * ipa-cp.c (gather_context_independent_values,
31054         estimate_local_effects): Likewise.
31055         * ipa-split.c (consider_split): Likewise.
31056
31057 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
31058
31059         * config/i386/driver-i386.c: Remove names of unused arguments and
31060         unnecessary unused attributes.
31061         * config/i386/host-mingw32.c: Likewise.
31062         * config/i386/i386.c: Likewise.
31063         * config/i386/winnt-stubs.c: Likewise.
31064         * config/i386/winnt.c: Likewise.
31065
31066 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31067
31068         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
31069         (aarch64_gen_loadwb_pair): New helper function.
31070         (aarch64_expand_epilogue): Simplify code using new helper functions.
31071         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
31072
31073 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31074
31075         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
31076         (aarch64_gen_storewb_pair): New helper function.
31077         (aarch64_expand_prologue): Simplify code using new helper functions.
31078         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
31079
31080 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31081
31082         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
31083         Rename to aarch64_save_callee_saves, remove restore code.
31084         (aarch64_restore_callee_saves): New function.
31085
31086 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31087
31088         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
31089         (aarch64_save_callee_saves): New function to handle reg save
31090         for both core and vectore regs.
31091
31092 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31093
31094         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
31095         (aarch64_gen_store_pair): New helper function.
31096         (aarch64_save_or_restore_callee_save_registers)
31097         (aarch64_save_or_restore_fprs): Use new helper functions.
31098
31099 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31100
31101         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
31102         (aarch64_save_or_restore_callee_save_registers)
31103         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
31104
31105 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31106
31107         * config/aarch64/aarch64.c
31108         (aarch64_save_or_restore_callee_save_registers)
31109         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
31110
31111 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31112
31113         * config/aarch64/aarch64.c
31114         (aarch64_save_or_restore_callee_save_registers)
31115         (aarch64_save_or_restore_fprs): Remove 'increment'.
31116
31117 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31118
31119         * config/aarch64/aarch64.c
31120         (aarch64_save_or_restore_callee_save_registers)
31121         (aarch64_save_or_restore_fprs): Use register offset in
31122         cfun->machine->frame.reg_offset.
31123
31124 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31125
31126         * config/aarch64/aarch64.c
31127         (aarch64_save_or_restore_callee_save_registers)
31128         (aarch64_save_or_restore_fprs): Remove base_rtx.
31129
31130 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31131
31132         * config/aarch64/aarch64.c
31133         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
31134         to 'start_offset'.  Remove local variable 'start_offset'.
31135
31136 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31137
31138         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
31139         type to HOST_WIDE_INT.
31140
31141 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31142
31143         * config/aarch64/aarch64.c (aarch64_expand_prologue)
31144         (aarch64_save_or_restore_fprs)
31145         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
31146
31147 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
31148
31149         * config/arm/t-rtems-eabi: Add
31150         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
31151         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
31152         mbig-endian/mthumb/march=armv7-r, and
31153         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
31154         multilibs.
31155
31156 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
31157             Chris Johns <chrisj@rtems.org>
31158             Joel Sherrill <joel.sherrill@oarcorp.com>
31159
31160         * config.gcc: Add nios2-*-rtems*.
31161         * config/nios2/rtems.h: New file.
31162         * gcc/config/nios2/t-rtems: New file.
31163
31164 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
31165
31166         PR target/61396
31167         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
31168         constant numbers, not general constants.
31169         (rs6000_expand_vector_init): Ditto.
31170
31171 2014-07-23  Nathan Sidwell  <nathan@acm.org>
31172
31173         * gcov-tool.c (gcov_list): Declare here.
31174         (set_gcov_list): Remove.
31175         (gcov_output_files): Set gcov_list directly.
31176
31177 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
31178
31179         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
31180
31181 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
31182
31183         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
31184         callee-saved registers are available for padding purpose
31185         and r3 is not mandatory, then prefer use those callee-saved
31186         instead of r3.
31187
31188 2014-07-23  Richard Biener  <rguenther@suse.de>
31189
31190         * params.def (PARAM_MAX_COMBINE_INSNS): New.
31191         * combine.c: Include statistics.h and params.h.
31192         (combine_instructions): Guard three and four insn combines
31193         with max-combine-insns value.  Record statistics for combines
31194         performed.
31195         * doc/invoke.texi (max-combine-insns): Document new param.
31196
31197 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
31198
31199         * graphite-isl-ast-to-gimple.c:
31200         (translate_isl_ast_node_block): New function.
31201         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
31202
31203         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
31204         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
31205
31206 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
31207
31208         * graphite-isl-ast-to-gimple.c:
31209         (get_max_schedule_dimensions): New function.
31210         (extend_schedule): Likewise.
31211         (generate_isl_schedule): Add calling of extend_schedule and
31212         get_max_schedule_dimensions.
31213
31214 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31215
31216         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
31217         (case UNSPEC): Handle UNSPEC_RBIT.
31218
31219 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31220
31221         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
31222         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
31223
31224 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31225
31226         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
31227
31228 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
31229
31230         * graphite-isl-ast-to-gimple.c:
31231         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
31232         (ivs_params_clear):
31233         (build_iv_mapping): New function.
31234         (translate_isl_ast_node_user): Likewise.
31235         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
31236
31237         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
31238         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
31239         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
31240
31241 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
31242
31243         PR target/55701
31244         * config/arm/arm.md (setmem): New pattern.
31245         * config/arm/arm-protos.h (struct tune_params): New fields.
31246         (arm_gen_setmem): New prototype.
31247         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
31248         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
31249         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
31250         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
31251         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
31252         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
31253         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
31254         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
31255         (arm_const_inline_cost): New function.
31256         (arm_block_set_max_insns): New function.
31257         (arm_block_set_non_vect_profit_p): New function.
31258         (arm_block_set_vect_profit_p): New function.
31259         (arm_block_set_unaligned_vect): New function.
31260         (arm_block_set_aligned_vect): New function.
31261         (arm_block_set_unaligned_non_vect): New function.
31262         (arm_block_set_aligned_non_vect): New function.
31263         (arm_block_set_vect, arm_gen_setmem): New functions.
31264
31265 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
31266
31267         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
31268
31269 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
31270
31271         PR target/61855
31272         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
31273         out of #ifdef __OPTIMIZE__.
31274
31275 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
31276
31277         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
31278         different trapping status if -fnon-call-exceptions is enabled.
31279
31280 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
31281
31282         * expr.c (store_field): Handle VOIDmode for calls that return values
31283         in multiple locations.
31284
31285 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31286
31287         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
31288         (altivec_vsldoi_<mode>): Likewise.
31289
31290 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
31291
31292         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
31293         to the number of characters in the line.
31294
31295 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
31296
31297         * graphite-isl-ast-to-gimple.c: Add using of
31298         build_nonstandard_integer_type instead of int128_integer_type_node.
31299
31300 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
31301
31302         * toplev.c (output_stack_usage): Adjust the location of the warning.
31303
31304 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
31305
31306         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
31307         (*membar_storeload): Disable for LEON3.
31308
31309 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31310
31311         PR rtl-optimization/61461
31312         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
31313
31314 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
31315
31316         PR target/61794
31317         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
31318         Fix instruction constraint.
31319         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
31320
31321 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
31322
31323         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
31324
31325 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
31326
31327         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
31328         GNU coding standards.
31329         (nds32_register_move_cost): Likewise.
31330         (nds32_memory_move_cost): Likewise.
31331         (nds32_address_cost): Likewise.
31332
31333 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31334
31335         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
31336
31337 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
31338
31339         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
31340         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
31341         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
31342         (HAVE_sync_compare_and_swapqi): Define.
31343         (HAVE_sync_compare_and_swaphi): Likewise.
31344         (HAVE_sync_compare_and_swapsi): Likewise.
31345
31346 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
31347
31348         * config/mips/p5600.md: Add missing cpu tests.
31349
31350 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31351
31352         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
31353         (vmla_f64): Likewise.
31354         (vfms_f64): Likewise.
31355         (vmls_f64): Likewise.
31356
31357 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31358
31359         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
31360         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
31361
31362 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31363
31364         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
31365         (vmlal_high_lane_s32): Likewise.
31366         (vmlal_high_lane_u16): Likewise.
31367         (vmlal_high_lane_u32): Likewise.
31368         (vmlsl_high_lane_s16): Likewise.
31369         (vmlsl_high_lane_s32): Likewise.
31370         (vmlsl_high_lane_u16): Likewise.
31371         (vmlsl_high_lane_u32): Likewise.
31372
31373 2014-07-17  Terry Guo  <terry.guo@arm.com>
31374
31375         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
31376         (alus_reg): Renamed to alus_sreg.
31377         * config/arm/arm-fixed.md: Change type of non-dsp instructions
31378         from alu_reg to alu_sreg.  Change type of dsp instructions from
31379         alu_reg to alu_dsp_reg.
31380         * config/arm/thumb1.md: Likewise.
31381         * config/arm/thumb2.md: Likewise.
31382         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
31383         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
31384         with alu_sreg and alus_sreg.
31385         * config/arm/arm1026ejs.md (alu_op): Likewise.
31386         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
31387         * config/arm/arm926ejs.md (9_alu_op): Likewise.
31388         * config/arm/fa526.md (526_alu_op): Likewise.
31389         * config/arm/fa606te.md (606te_alu_op): Likewise.
31390         * config/arm/fa626te.md (626te_alu_op): Likewise.
31391         * config/arm/fa726te.md (726te_alu_op): Likewise.
31392         * config/arm/fmp626.md (mp626_alu_op): Likewise.
31393         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
31394         alu_sreg, alu_dsp_reg and alus_sreg.
31395         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
31396         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
31397         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
31398         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
31399         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
31400         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
31401         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
31402         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
31403         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
31404         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
31405         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
31406         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
31407         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
31408         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
31409         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
31410         alus_reg to alus_sreg.
31411
31412 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
31413
31414         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
31415         infinity format.
31416
31417 2014-07-17  Richard Biener  <rguenther@suse.de>
31418
31419         PR rtl-optimization/61801
31420         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
31421         don't set reg_pending_barrier if it appears in a debug-insn.
31422
31423 2014-07-16  DJ Delorie  <dj@redhat.com>
31424
31425         * config/rx/rx.c (rx_option_override): Fix alignment values.
31426         (rx_align_for_label): Likewise.
31427
31428 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
31429
31430         PR target/61737.
31431         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
31432         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
31433         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
31434         functions.
31435         (cris_print_index, cris_print_operand, cris_constant_index_p)
31436         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
31437         (cris_address_cost): Ditto last CONSTANT_P.
31438         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
31439         callers changed.  Yield cris_offsettable_symbol for non-PIC
31440         constant symbolic expressions including labels.  Yield cris_unspec
31441         for all unspecs.
31442         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
31443         target to pic_offset_table_rtx for calls that will likely go
31444         through PLT, const0_rtx when they can't.  All callers changed.
31445         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
31446         symbolic expressions to be PICified.  Remove second, redundant,
31447         assert on can_create_pseudo_p returning non-zero.  Use
31448         replace_equiv_address_nv, not replace_equiv_address, for final
31449         operand update.
31450         * config/cris/cris.md ("movsi"): Move variable t to pattern
31451         toplevel. Adjust assert for new cris_symbol_type member.  Use
31452         CONSTANT_P instead of CONSTANT_ADDRESS_P.
31453         ("*movsi_internal") <case 9>: Make check for valid unspec operands
31454         for lapc stricter.
31455         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
31456         ("call", "call_value"): Use second incoming operand as a marker
31457         for pic-offset-table-register being used.
31458         ("*expanded_call_non_v32", "*expanded_call_v32")
31459         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
31460         second incoming operand to CALL, match cris_call_type_marker.
31461         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
31462         ("*expanded_call_side"): Ditto.  Fix typo in comment.
31463         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
31464         CONSTANT_P.
31465         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
31466         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
31467         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
31468         users changed.  Add members cris_offsettable_symbol and cris_unspec.
31469         (cris_symbol_type): Rename from cris_pic_symbol_type.
31470         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
31471         just CONSTANT_P.
31472         * config/cris/cris-protos.h (cris_symbol_type_of,
31473         cris_expand_pic_call_address): Adjust prototypes.
31474         (cris_legitimate_constant_p): New prototype.
31475
31476         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
31477         an existing tmake_file.  Don't add t-slibgcc and t-linux.
31478
31479 2014-07-17  Jason Merrill  <jason@redhat.com>
31480
31481         PR c++/61623
31482         * symtab.c (symtab_remove_from_same_comdat_group): Also
31483         set_comdat_group to NULL_TREE.
31484         (verify_symtab): Fix diagnostic.
31485
31486 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
31487
31488         PR target/61662
31489         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
31490
31491 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
31492
31493         Support location tracking for built-in macro tokens
31494         * input.h (is_location_from_builtin_token): New function declaration.
31495         * input.c (is_location_from_builtin_token): New function definition.
31496         * toplev.c (general_init): Tell libcpp what the pre-defined
31497         spelling location for built-in tokens is.
31498
31499 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
31500
31501         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
31502         on the FUNCTION_DECL.
31503
31504 2014-07-16  Richard Biener  <rguenther@suse.de>
31505
31506         PR other/61782
31507         * doc/extend.texi (always_inline): Clarify.
31508
31509 2014-07-15  Eric Christopher  <echristo@gmail.com>
31510
31511         * doc/invoke.texi (Link Options): Document -z option.
31512
31513 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
31514
31515         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
31516         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
31517
31518 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
31519
31520         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
31521
31522 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
31523
31524         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
31525         varpool_assemble_decl.
31526         * varpool.c (varpool_assemble_decl): Assert that node->definition is
31527         true.
31528
31529 2014-07-15  Michael Matz  <matz@suse.de>
31530
31531         PR rtl-optimization/61772
31532         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
31533
31534 2014-07-15  Richard Biener  <rguenther@suse.de>
31535
31536         * opts.c (default_options_table): Disable bit-ccp at -Og.
31537
31538 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
31539
31540         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
31541
31542 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
31543
31544         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
31545         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
31546         call langhook for unknown declaration.
31547         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
31548         * tree.h (DECL_ARGUMENTS): Update.
31549         * print-tree.c (print_node): Update.
31550         * tree-core.h (tree_decl_non_common): Remove arguments.
31551         (tree_function_decl): Add arguments.
31552
31553 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
31554
31555         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
31556
31557 2014-07-14  Richard Biener  <rguenther@suse.de>
31558
31559         PR tree-optimization/61779
31560         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
31561         simplifying a condition.
31562
31563 2014-07-14  Richard Biener  <rguenther@suse.de>
31564
31565         * builtins.c (c_strlen): Make only_value == 2 really only
31566         affect warning generation.
31567
31568 2014-07-14  Richard Biener  <rguenther@suse.de>
31569
31570         PR tree-optimization/61757
31571         PR tree-optimization/61783
31572         PR tree-optimization/61787
31573         * tree-ssa-dom.c (record_equality): Revert canonicalization
31574         change and add comment.
31575         (propagate_rhs_into_lhs): Revert previous fix, removing
31576         loop depth restriction again.
31577
31578 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31579
31580         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
31581         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
31582         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
31583         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
31584         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
31585         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
31586         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
31587
31588 2014-07-14  Richard Biener  <rguenther@suse.de>
31589
31590         * cgraph.h (decl_in_symtab_p): Make inline.
31591
31592 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
31593
31594         PR middle-end/61294
31595         * doc/invoke.texi (-Wmemset-transposed-args): Document.
31596
31597         PR target/61656
31598         * config/i386/i386.c (classify_argument): Don't merge classes above
31599         number of words.
31600
31601 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
31602
31603         * cgraph.h (symtab_node): Add nonzero_address.
31604         (decl_in_symtab_p): Break out from ...
31605         (symtab_get_node): ... here.
31606         * fold-const.c: Include cgraph.h
31607         (tree_single_nonzero_warnv_p): Use symtab to determine
31608         if symbol is non-zero.
31609         * symtab.c (symtab_node::nonzero_address): New method.
31610
31611 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31612
31613         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
31614         forgotten in previous commit.
31615
31616 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31617
31618         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
31619         on builtin types.
31620         * ipa-devirt.c: Include stor-layout.h and intl.h
31621         (odr_subtypes_equivalent_p): New function.
31622         (warn_odr): New function.
31623         (warn_type_mismatch): New function.
31624         (odr_types_equivalent_p): New function.
31625         (add_type_duplicate): Use it.
31626         * common.opt (Wodr): New flag.
31627         * doc/invoke.texi (Wodr): Document new warning.
31628
31629 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31630
31631         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
31632         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
31633         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
31634         (varpool_get_constructor): Push CTORS_IN timevar.
31635         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
31636
31637 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
31638
31639         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
31640         Remove VOID_FTYPE_PUSHORT.
31641         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
31642         Change code to USHORT_FTYPE_VOID.
31643         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
31644         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
31645         (ix86_atomic_assign_expand_fenv): Update for
31646         __builtin_ia32_fnstsw changes.
31647         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
31648         (fnstsw): Change operand 0 to nonimmediate operand.
31649
31650 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31651
31652         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
31653         (varpool_get_constructor): New function.
31654         (varpool_ctor_useable_for_folding_p): Break out from ...
31655         (ctor_for_folding): ... here; use varpool_get_constructor.
31656         (varpool_assemble_decl): Likewise.
31657         * lto-streamer.h (struct output_block): Turn cgraph_node
31658         to symbol filed.
31659         (lto_input_variable_constructor): Declare.
31660         * ipa-visibility.c (function_and_variable_visibility): Use
31661         varpool_get_constructor.
31662         * cgraph.h (varpool_get_constructor): Declare.
31663         (varpool_ctor_useable_for_folding_p): New function.
31664         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
31665         parameter; return error_mark_node for non-trivial constructors.
31666         (lto_write_tree_1, DFS_write_tree): Update use of
31667         get_symbol_initial_value.
31668         (output_function): Update initialization of symbol.
31669         (output_constructor): New function.
31670         (copy_function): Rename to ..
31671         (copy_function_or_variable): ... this one; handle vars too.
31672         (lto_output): Output variable sections.
31673         * lto-streamer-in.c (input_constructor): New function.
31674         (lto_read_body): Rename from ...
31675         (lto_read_body_or_constructor): ... this one; handle vars too.
31676         (lto_input_variable_constructor): New function.
31677         * ipa-prop.c (ipa_prop_write_jump_functions,
31678         ipa_prop_write_all_agg_replacement): Update.
31679         * lto-cgraph.c (compute_ltrans_boundary): Use it.
31680         (output_cgraph_opt_summary): Set symbol to NULL.
31681
31682 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31683
31684         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
31685         non-polymorphic types.
31686         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
31687         * ipa-devirt.c (types_same_for_odr): Do not explode when one
31688         of types is not polymorphic.
31689
31690 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
31691
31692         * lra-constraints.c (remove_inheritance_pseudos): Process
31693         destination pseudo too.
31694
31695 2014-07-11  Rong Xu  <xur@google.com>
31696
31697         * gcov-tool.c (gcov_output_files): Fix build error introduced in
31698         commit r212448.
31699
31700 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
31701
31702         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
31703         * config/avr/avr-devices.c (AVR_MCU): Same.
31704         (avr_mcu_types): add text start value to end of device list.
31705         * config/avr/avr-mcus.def: Add text section start for all devices.
31706         (ata5782): Add new avr5 device.
31707         (ata5831): Same.
31708         * config/avr/avr-tables.opt: Regenerate.
31709         * config/avr/avr.h: Add declaration for text section start handler.
31710         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
31711         SPEC functions.
31712         (LINK_SPEC): Include text section start handler to linker spec.
31713         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
31714         pass -Ttext option to linker if the text section start for the device
31715         is not zero.
31716         * config/avr/t-multilib: Regenerate.
31717         * doc/avr-mmcu.texi: Regenerate.
31718
31719 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
31720
31721         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
31722         * config/rs6000/aix52.h (LINK_SPEC): Same.
31723         * config/rs6000/aix53.h (LINK_SPEC): Same.
31724         * config/rs6000/aix61.h (LINK_SPEC): Same.
31725         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
31726
31727 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
31728
31729         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
31730         (graphite_verify): New function.
31731         (ivs_params_clear): New function.
31732         (gcc_expression_from_isl_ast_expr_id): New function.
31733         (gcc_expression_from_isl_expr_int): New function.
31734         (binary_op_to_tree): New function.
31735         (ternary_op_to_tree): New function.
31736         (unary_op_to_tree): New function.
31737         (nary_op_to_tree): New function.
31738         (gcc_expression_from_isl_expr_op): New function.
31739         (gcc_expression_from_isl_expression): New function.
31740         (graphite_create_new_loop): New function.
31741         (translate_isl_ast_for_loop): New function.
31742         (get_upper_bound): New function.
31743         (graphite_create_new_loop_guard): New function.
31744         (translate_isl_ast_node_for): New function.
31745         (translate_isl_ast): New function.
31746         (add_parameters_to_ivs_params): New function.
31747         (scop_to_isl_ast): New parameter ip.
31748         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
31749
31750 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31751
31752         * config/xtensa/predicates.md (call expander): Update for
31753         DECL_SECTION_NAME being string.
31754
31755 2014-07-11  Richard Biener  <rguenther@suse.de>
31756
31757         PR middle-end/61473
31758         * builtins.c (fold_builtin_memory_op): Inline memory moves that
31759         can be implemented with a single load followed by a single store.
31760         (c_strlen): Only warn when only_value is not 2.
31761
31762 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
31763
31764         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
31765
31766 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
31767
31768         PR target/61561
31769         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
31770         (*movhi_bytes): Likewise.
31771         (*arm_movqi_insn): Likewise.
31772
31773 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
31774
31775         PR target/56858
31776         * config/alpha/alpha.c: Include tree-pass.h, context.h
31777         and pass_manager.h.
31778         (pass_data_handle_trap_shadows): New pass.
31779         (pass_handle_trap_shadows::gate): New pass gate function.
31780         (make_pass_handle_trap_shadows): New function.
31781         (rest_of_handle_trap_shadows): Ditto.
31782
31783         (alpha_align_insns_1): Rename from alpha_align_insns.
31784         (pass_data_align_insns): New pass.
31785         (pass_align_insns::gate): New pass gate function.
31786         (make_pass_aling_insns): New function.
31787         (rest_of_align_insns): Ditto.
31788         (alpha_align_insns): Ditto.
31789
31790         (alpha_option_override): Declare handle_trap_shadows info
31791         and align_insns_info.  Register handle_trap_shadows and align_insns
31792         passes here.
31793         (alpha_reorg): Do not call alpha_trap_shadows and
31794         alpha_align_insn from here.
31795
31796         (alpha_pad_function_end): Do not skip BARRIERs.
31797
31798 2014-07-10  Rong Xu  <xur@google.com>
31799
31800         Add gcov-tool: an offline gcda profile processing tool support.
31801         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
31802         (gcov_is_error): Ditto.
31803         (gcov_read_string): Ditto.
31804         (gcov_read_sync): Ditto.
31805         * gcov-io.h: Move counter defines to gcov-counter.def.
31806         * gcov-dump.c (tag_counters): Use gcov-counter.def.
31807         * coverage.c: Ditto.
31808         * gcov-tool.c: Offline gcda profile processing tool.
31809         (unlink_gcda_file): Remove one gcda file.
31810         (unlink_profile_dir): Remove gcda files from the profile path.
31811         (gcov_output_files): Output gcda files to an output dir.
31812         (profile_merge): Merge two profiles in directory.
31813         (print_merge_usage_message): Print merge usage.
31814         (merge_usage): Print merge usage and exit.
31815         (do_merge): Driver for profile merge sub-command.
31816         (profile_rewrite): Rewrite profile.
31817         (print_rewrite_usage_message): Print rewrite usage.
31818         (rewrite_usage): Print rewrite usage and exit.
31819         (do_rewrite): Driver for profile rewrite sub-command.
31820         (print_usage): Print gcov-info usage and exit.
31821         (print_version): Print gcov-info version.
31822         (process_args): Process arguments.
31823         (main): Main routine for gcov-tool.
31824         * Makefile.in: Build and install gcov-tool.
31825         * gcov-counter.def: New file split from gcov-io.h.
31826         * doc/gcc.texi: Include gcov-tool.texi.
31827         * doc/gcov-tool.texi: Document for gcov-tool.
31828
31829 2014-07-10  Richard Biener  <rguenther@suse.de>
31830
31831         PR tree-optimization/61757
31832         * tree-ssa-dom.c (loop_depth_of_name): Restore.
31833         (propagate_rhs_into_lhs): Revert part of last change.
31834
31835 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
31836
31837         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31838         FUNCTION_DECLs.
31839
31840 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
31841
31842         PR middle-end/53590
31843         * function.c (allocate_struct_function): Revert r188667 change.
31844
31845         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31846
31847 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
31848
31849         * doc/install.texi: Remove links to defunct package providers for
31850         Solaris.
31851
31852 2014-07-09  Tom de Vries  <tom@codesourcery.com>
31853
31854         * final.c (get_call_fndecl): Declare.
31855         (self_recursive_call_p): New function.
31856         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31857
31858 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31859
31860         * ipa-devirt.c (record_node): Walk through aliases.
31861
31862 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31863
31864         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31865
31866 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31867
31868         Revert:
31869         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31870
31871 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31872
31873         * ipa-visibility.c (function_and_variable_visibility): Remove
31874         temporary hack disabling local aliases on AIX.
31875
31876 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31877
31878         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31879         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31880
31881 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31882
31883         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31884         * rs6000/rs6000.c: Inline output of .set instruction.
31885         (declare_alias_data): New struct.
31886         (rs6000_declare_alias): New function.
31887         (rs6000_xcoff_declare_function_name): Use it.
31888         (rs6000_xcoff_declare_object_name): New function.
31889         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31890         (ASM_OUTPUT_DEF): Turn to empty definition.
31891
31892 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31893
31894         PR bootstrap/61679
31895         * hash-table.h: use hash_table::value_type instead of
31896         Descriptor::value_type in the return types of several methods.
31897
31898 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31899
31900         * tree-pass.h (pass_data): Remove has_execute member.
31901         * passes.c (execute_one_pass): Don't check pass->has_execute.
31902         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31903         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31904         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31905         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31906         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31907         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31908         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31909         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31910         gimple-low.c, gimple-ssa-isolate-paths.c,
31911         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31912         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31913         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31914         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31915         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31916         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31917         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31918         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31919         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31920         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31921         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31922         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31923         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31924         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31925         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31926         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31927         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31928         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31929         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31930         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31931         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31932         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31933         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31934         web.c: Remove initializer for pass_data::has_execute.
31935
31936 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31937
31938         * graphite-htab.h: Use hash_map instead of hash_table.
31939         * graphite-clast-to-gimple.c: Adjust.
31940         * passes.c: Use hash_map instead of hash_table.
31941         * sese.c: Likewise.
31942         * sese.h: Remove now unused code.
31943
31944 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
31945
31946         PR target/61599
31947         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31948         than zero.
31949
31950 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31951
31952         PR rtl-optimization/61673
31953         * combine.c (simplify_comparison): Test just mode's sign bit
31954         in tmode rather than the sign bit and any bits above it.
31955
31956 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
31957
31958         * graphite-isl-ast-to-gimple.c (generate_isl_context):
31959         Add __isl_give to the declaration.
31960         (generate_isl_schedule): Likewise.
31961         (scop_to_isl_ast): Likewise.
31962
31963 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31964
31965         * config/arm/arm.c (cortexa5_extra_costs): New table.
31966         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31967
31968 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31969
31970         PR tree-optimization/61725
31971         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31972         range, use range_includes_zerop_p instead of integer_zerop on
31973         vr0->min, only use log2 of max if min is not negative.
31974
31975 2014-07-08  Richard Biener  <rguenther@suse.de>
31976
31977         * tree-ssa-dom.h (loop_depth_of_name): Remove.
31978         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31979         restriction on loop depth difference.
31980         (record_equality): Likewise.
31981         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
31982         (loop_depth_of_name): Remove.
31983         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31984         restriction on loop depth difference.
31985         (init_copy_prop): Likewise.
31986
31987 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31988
31989         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31990         parameter.
31991         (walk_aliased_vdefs): Likewise.
31992         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31993         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31994         (detect_type_change_from_memory_writes): Check if entry was reached.
31995
31996 2014-07-08  Richard Biener  <rguenther@suse.de>
31997
31998         PR tree-optimization/61681
31999         * tree-ssa-structalias.c (find_what_var_points_to): Expand
32000         NONLOCAL inside ESCAPED.
32001
32002 2014-07-08  Richard Biener  <rguenther@suse.de>
32003
32004         PR tree-optimization/61680
32005         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32006         Handle properly all read-write dependences with group accesses.
32007
32008 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
32009
32010         PR tree-optimization/61576
32011         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
32012         block containing reduction statement is predecessor of phi basi block.
32013
32014 2014-07-08  Marek Polacek  <polacek@redhat.com>
32015
32016         PR c/60226
32017         * fold-const.c (round_up_loc): Change the parameter type.
32018         Remove assert.
32019         * fold-const.h (round_up_loc): Adjust declaration.
32020         * stor-layout.c (finalize_record_size): Check for too large types.
32021
32022 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
32023
32024         * symtab.c: Include calls.h.
32025         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
32026
32027 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
32028
32029         * config/rs6000/rs6000.c (output_vec_const_move): Handle
32030         little-endian code generation.
32031         * config/rs6000/spe.md (spe_evmergehi): Rename to...
32032         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
32033         (spe_evmergehilo): Rename to...
32034         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
32035         (spe_evmergelo): Rename to...
32036         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
32037         (spe_evmergelohi): Rename to...
32038         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
32039         (spe_evmergehi, spe_evmergehilo): New expanders.
32040         (spe_evmergelo, spe_evmergelohi): Likewise.
32041         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
32042         (*frob_tf_ti): Likewise.
32043         (*frob_<mode>_di_2): Likewise.
32044         (*frob_tf_di_8_2): Likewise.
32045         (*frob_di_<mode>): Likewise.
32046         (*frob_ti_tf): Likewise.
32047         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
32048         (*frob_ti_<mode>_8_2): Likewise.
32049         (*frob_ti_tf_2): Likewise.
32050         (mov_si<mode>_e500_subreg0): Rename to...
32051         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
32052         endianness only.
32053         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
32054         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
32055         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
32056         the big endianness only.
32057         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
32058         (*mov_si<mode>_e500_subreg0_2): Rename to...
32059         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
32060         big big endianness only.
32061         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
32062         (*mov_si<mode>_e500_subreg4): Rename to...
32063         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
32064         endianness only.
32065         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
32066         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
32067         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
32068         the big endianness only.
32069         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
32070         pattern.
32071         (*mov_si<mode>_e500_subreg4_2): Rename to...
32072         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
32073         endianness only.
32074         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
32075         (*mov_sitf_e500_subreg8): Rename to...
32076         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
32077         endianness only.
32078         (*mov_sitf_e500_subreg8_le): New instruction pattern.
32079         (*mov_sitf_e500_subreg8_2): Rename to...
32080         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
32081         endianness only.
32082         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
32083         (*mov_sitf_e500_subreg12): Rename to...
32084         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
32085         endianness only.
32086         (*mov_sitf_e500_subreg12_le): New instruction pattern.
32087         (*mov_sitf_e500_subreg12_2): Rename to...
32088         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
32089         endianness only.
32090         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
32091
32092 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
32093
32094         * asan.c (instrument_strlen_call): Do not instrument first byte
32095         in strlen if already instrumented.
32096
32097 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32098
32099         * config/arm/arm.opt (mwords-little-endian): Delete.
32100         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
32101         of TARGET_LITTLE_WORDS.
32102         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
32103         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
32104         warning.
32105         * doc/invoke.texi: Remove references to -mwords-little-endian.
32106
32107 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
32108
32109         * expmed.c (struct init_expmed_rtl): Change all fields but
32110         pow2 and cint from struct rtx_def to rtx.
32111         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
32112         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
32113         at the end again.
32114
32115 2014-07-06  Marek Polacek  <polacek@redhat.com>
32116
32117         PR c/6940
32118         * doc/invoke.texi: Document -Wsizeof-array-argument.
32119
32120 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
32121
32122         * wide-int.h (wide_int_storage): Change declaration from struct
32123         to class.
32124
32125 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
32126
32127         * cgraph.c (cgraph_create_indirect_edge): Update call of
32128         get_polymorphic_call_info.
32129         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
32130         (possible_polymorphic_call_targets): Add parameter call.
32131         (decl_maybe_in_construction_p): New predicate.
32132         (get_polymorphic_call_info): Add parameter call;
32133         use decl_maybe_in_construction_p.
32134         * gimple-fold.c (fold_gimple_assign): Update use of
32135         possible_polymorphic_call_targets.
32136         (gimple_fold_call): Likewise.
32137         * ipa-prop.c: Inlcude calls.h
32138         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
32139         (param_type_may_change_p): New predicate.
32140         (detect_type_change_from_memory_writes): Break out from ...
32141         (detect_type_change): ... this one; use param_type_may_change_p.
32142         (detect_type_change_ssa): Use param_type_may_change_p.
32143         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
32144
32145 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
32146
32147         PR target/49423
32148         * config/arm/arm-protos.h (arm_legitimate_address_p,
32149         arm_is_constant_pool_ref): Add prototypes.
32150         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
32151         (arm_is_constant_pool_ref) New function.
32152         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
32153         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
32154         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
32155         operand. Remove pool_range and neg_pool_range attributes.
32156         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
32157         pool_range and neg_pool_range attributes.
32158         * config/arm/constraints.md (Uh): New constraint.
32159         (Uq): Don't allow constant pool references.
32160
32161 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
32162
32163         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
32164         (move_lo_quad_internal_be_<mode>): Likewise.
32165         (move_lo_quad_<mode>): Convert to define_expand.
32166         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
32167         (aarch64_simd_move_hi_quad_be_<mode>): New.
32168         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
32169         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
32170         (aarch64_combinez_be<mode>): New.
32171         (aarch64_combine<mode>): Convert to define_expand.
32172         (aarch64_combine_internal<mode>): New.
32173         (aarch64_simd_combine<mode>): Remove bogus RTL description.
32174
32175 2014-07-04  Tom de Vries  <tom@codesourcery.com>
32176
32177         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
32178         combination of earlyclobber and read/write modifiers.
32179
32180 2014-07-04  Tom de Vries  <tom@codesourcery.com>
32181
32182         * config/aarch64/aarch64-simd.md
32183         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
32184
32185 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
32186
32187         PR target/61714
32188         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
32189
32190 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
32191
32192         PR middle-end/61654
32193         * cgraphunit.c (expand_thunk): Call free_dominance_info.
32194
32195         PR tree-optimization/61684
32196         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
32197         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
32198
32199 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32200             Kito Cheng  <kito@0xlab.org>
32201             Monk Chiang  <sh.chiang04@gmail.com>
32202
32203         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
32204         (nds32_symbol_load_store_p): Move to ...
32205         (nds32_fp_as_gp_check_available): Move to ...
32206         * config/nds32/nds32-fp-as-gp.c: ... here.
32207         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
32208         extern declaration.
32209
32210 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32211             Kito Cheng  <kito@0xlab.org>
32212             Monk Chiang  <sh.chiang04@gmail.com>
32213
32214         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
32215         (nds32_expand_store_multiple): Move to ...
32216         (nds32_expand_movmemqi): Move to ...
32217         * config/nds32/nds32-memory-manipulation.c: ... here.
32218
32219 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32220             Kito Cheng  <kito@0xlab.org>
32221             Monk Chiang  <sh.chiang04@gmail.com>
32222
32223         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
32224         (nds32_output_casesi_pc_relative): Move to ...
32225         (nds32_output_casesi): Move to ...
32226         (nds32_mem_format): Move to ...
32227         (nds32_output_16bit_store): Move to ...
32228         (nds32_output_16bit_load): Move to ...
32229         (nds32_output_32bit_store): Move to ...
32230         (nds32_output_32bit_load): Move to ...
32231         (nds32_output_32bit_load_s): Move to ...
32232         (nds32_output_stack_push): Move to ...
32233         (nds32_output_stack_pop): Move to ...
32234         * config/nds32/nds32-md-auxiliary.c: ... here.
32235
32236 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32237             Ling-Hua Tseng  <uranus@tinlans.org>
32238
32239         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
32240         the purpose of this file.
32241
32242 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32243             Kito Cheng  <kito@0xlab.org>
32244             Monk Chiang  <sh.chiang04@gmail.com>
32245
32246         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
32247         (nds32_address_cost): Move implementation to ...
32248         * config/nds32/nds32-cost.c: ... here.
32249         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
32250         (nds32_address_cost_impl): Declare.
32251
32252 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32253             Kito Cheng  <kito@0xlab.org>
32254             Monk Chiang  <sh.chiang04@gmail.com>
32255
32256         * config/nds32/nds32.c
32257         (nds32_consecutive_registers_load_store_p): Move to ...
32258         (nds32_valid_multiple_load_store): Move to ...
32259         (nds32_valid_stack_push_pop): Move to ...
32260         (nds32_can_use_bclr_p): Move to ...
32261         (nds32_can_use_bset_p): Move to ...
32262         (nds32_can_use_btgl_p): Move to ...
32263         (nds32_can_use_bitci_p): Move to ...
32264         * config/nds32/nds32-predicates.c: ... here.
32265
32266 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32267             Kito Cheng  <kito@0xlab.org>
32268             Monk Chiang  <sh.chiang04@gmail.com>
32269
32270         * config/nds32/nds32.c
32271         (nds32_expand_builtin_null_ftype_reg): Move to ...
32272         (nds32_expand_builtin_reg_ftype_imm): Move to ...
32273         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
32274         (nds32_init_builtins): Move implementation to ...
32275         (nds32_expand_builtin): Move implementation to ...
32276         * config/nds32/nds32-intrinsic.c: ... here.
32277         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
32278         (nds32_expand_builtin_impl): Declare.
32279
32280 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32281             Kito Cheng  <kito@0xlab.org>
32282             Monk Chiang  <sh.chiang04@gmail.com>
32283
32284         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
32285         (nds32_emit_section_tail_template): Move to ...
32286         (nds32_emit_isr_jmptbl_section): Move to ...
32287         (nds32_emit_isr_vector_section): Move to ...
32288         (nds32_emit_isr_reset_conten): Move to ...
32289         (nds32_check_isr_attrs_conflict): Move to ...
32290         (nds32_construct_isr_vectors_information): Move to ...
32291         (nds32_asm_file_start): Move implementation to ...
32292         (nds32_asm_file_end): Move implementation to ...
32293         * config/nds32/nds32-isr.c: ... here.
32294         * config/nds32/nds32-protos.h
32295         (nds32_check_isr_attrs_conflict): Declare.
32296         (nds32_construct_isr_vectors_information): Declare.
32297         (nds32_asm_file_start_for_isr): Declare.
32298         (nds32_asm_file_end_for_isr): Declare.
32299
32300 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
32301             Kito Cheng  <kito@0xlab.org>
32302             Monk Chiang  <sh.chiang04@gmail.com>
32303
32304         * config.gcc (nds32*): Add new modules to extra_objs.
32305         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
32306         (nds32be-*-*): Likewise.
32307         * config/nds32/nds32-cost.c: New file.
32308         * config/nds32/nds32-fp-as-gp.c: New file.
32309         * config/nds32/nds32-intrinsic.c: New file.
32310         * config/nds32/nds32-isr.c: New file.
32311         * config/nds32/nds32-md-auxiliary.c: New file.
32312         * config/nds32/nds32-memory-manipulation.c: New file.
32313         * config/nds32/nds32-pipelines-auxiliary.c: New file.
32314         * config/nds32/nds32-predicates.c: New file.
32315         * config/nds32/t-nds32: New file.
32316
32317 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
32318
32319         PR tree-optimization/61682
32320         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
32321         using cases and when one of the operands is equal to 1.
32322
32323 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
32324
32325         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
32326         ashr<mode>3): Correct mode of operands[2].
32327         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
32328         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
32329         Correct mode of operands[2].  Fix split condition.
32330
32331 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
32332
32333         * arm.md (arch): Add armv6_or_vfpv3.
32334         (arch_enabled): Add test for the above.
32335         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
32336         on VFP9.
32337         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
32338
32339 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
32340
32341         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
32342         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
32343         HWI 1 and negate the unsigned value.
32344         * expmed.c (expand_sdiv_pow2): For modes wider than word always
32345         use AND instead of shift.
32346         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
32347
32348 2014-07-03  Marek Polacek  <polacek@redhat.com>
32349
32350         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
32351         (-fsanitize=float-divide-by-zero): Move to the table with
32352         -fsanitize=undefined suboptions.
32353         (-fsanitize=float-cast-overflow): Likewise.
32354
32355 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
32356
32357         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
32358         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
32359         endianness.
32360
32361 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32362
32363         * loop-invariant.c (struct invariant): Add a new member: eqno;
32364         (find_identical_invariants): Update eqno;
32365         (create_new_invariant): Init eqno;
32366         (get_inv_cost): Compute comp_cost with eqno;
32367
32368 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
32369
32370         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
32371         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
32372         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
32373         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
32374         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
32375
32376 2014-07-02  Christian Bruel  <christian.bruel@st.com>
32377
32378         PR target/29349
32379         PR target/53513
32380         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
32381         (make_preds_opaque): Delete.
32382         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
32383         (commit_mode_sets): New function.
32384         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
32385         Process all modes at once.
32386         * basic-block.h (pre_edge_lcm_avs): Declare.
32387         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
32388         Call clear_aux_for_edges. Fix comments.
32389         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
32390         (pre_edge_rev_lcm): Idem.
32391         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
32392         parameter.
32393         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
32394         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
32395         Idem.
32396         * config/i386/i386.c (x96_emit_mode_set): Idem.
32397         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
32398         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
32399         (fpscr_toggle) Disallow from delay slot.
32400         * target.def (emit_mode_set): Add prev_mode parameter.
32401         * doc/tm.texi: Regenerate.
32402
32403 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32404
32405         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
32406         variable i.
32407
32408 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
32409
32410         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
32411         vtable_pointer_value_to_vtable): Constify.
32412         (contains_polymorphic_type_p): Declare.
32413         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
32414         vtable_pointer_value_to_vtable): Constify.
32415         (contains_polymorphic_type_p): New predicate.
32416         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
32417         polymorphic types.
32418         (ipa_set_ancestor_jf): Likewise.
32419         (detect_type_change): Return false in easy cases.
32420         (compute_complex_assign_jump_func): Require type to contain
32421         polymorphic type.
32422         (compute_known_type_jump_func): Likewise.
32423
32424 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
32425
32426         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
32427         Remove.
32428         (type_in_anonymous_namespace_p): Constify argument.
32429         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
32430         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
32431         (main_odr_variant): New function.
32432         (hash_type_name): Make static; update assert; do not ICE on
32433         non-records.
32434         (types_same_for_odr): Bring here from tree.c; simplify and remove
32435         old structural comparing code that doesn't work for templates.
32436         (odr_hasher::equal): Update assert.
32437         (add_type_duplicate): Return true when bases should be computed;
32438         replace incomplete loader by complete; do not output duplicated
32439         warnings; do not ICE on non-records; set odr_violated flag.
32440         (get_odr_type): Be ready to replace incomplete type by complete
32441         one; work on ODR variants instead of main variants; reorder item
32442         in array so bases have still smaller indexes.
32443         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
32444         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
32445
32446 2014-07-01  Cary Coutant  <ccoutant@google.com>
32447
32448         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
32449         lookup.
32450         (resolve_addr_in_expr): When replacing the rtx in a location list
32451         entry, get a new address table entry.
32452         (dwarf2out_finish): Call index_location_lists even if there are no
32453         addr_index_table entries yet.
32454
32455 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
32456
32457         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
32458         change for not being obvious.
32459
32460 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
32461
32462         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
32463         unused argument.
32464
32465 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32466
32467         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
32468         (vcagt_f64): Likewise.
32469         (vcale_f64): Likewise.
32470         (vcaled_f64): Likewise.
32471         (vcales_f32): Likewise.
32472         (vcalt_f64): Likewise.
32473         (vcaltd_f64): Likewise.
32474         (vcalts_f32): Likewise.
32475
32476 2014-07-01  Marek Polacek  <polacek@redhat.com>
32477
32478         * doc/invoke.texi: Document -Wint-conversion.
32479
32480 2014-07-01  Marek Polacek  <polacek@redhat.com>
32481
32482         PR c/58286
32483         * doc/invoke.texi: Document -Wincompatible-pointer-types.
32484
32485 2014-07-01  Martin Liska  <mliska@suse.cz>
32486
32487         IPA REF alias refactoring
32488         * cgraph.h (iterate_direct_aliases): New function.
32489         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
32490         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
32491         FOR_EACH_ALIAS added.
32492         (cgraph_for_node_and_aliases): Likewise.
32493         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
32494         * ipa-inline.c (reset_edge_caches): Likewise.
32495         (update_caller_keys): Likewise.
32496         * trans-mem.c (ipa_tm_execute): Likewise.
32497         *varpool.c (varpool_analyze_node): Likewise.
32498         (varpool_for_node_and_aliases): Likewise.
32499         * ipa-ref.h (first_alias): New function.
32500         (last_alias): Likewise.
32501         (has_aliases_p): Likewise.
32502         * ipa-ref.c (ipa_ref::remove_reference): Removal function
32503         is sensitive to IPA_REF_ALIASes.
32504         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
32505         are put at the beginning of the list.
32506         (symtab_node::iterate_direct_aliases): New function.
32507
32508 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32509
32510         Revert:
32511         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
32512         type is complete.
32513         (write_ts_type_common_tree_pointers): Do not stream fields not set
32514         for incomplete types; do not stream duplicated fields for variants;
32515         sanity check that variant and type match.
32516         (write_ts_type_non_common_tree_pointers): Likewise.
32517         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
32518         TYPE_SIZE whether type is complete.
32519         (lto_input_ts_type_common_tree_pointers): Do same changes as in
32520         write_ts_type_common_tree_pointers
32521         (lto_input_ts_type_non_common_tree_pointers): Likewise.
32522
32523 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
32524
32525         * var-tracking.c (add_stores): Return instead of asserting if old
32526         and new values for conditional store are the same.
32527
32528 2014-06-30  Richard Henderson  <rth@redhat.com>
32529
32530         PR rtl-opt/61608
32531         PR target/39284
32532         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
32533         the cfg if there were any changes.
32534         * passes.def: Revert move of peephole2 after reorder_blocks;
32535         move duplicate_computed_gotos before peephole2.
32536
32537 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
32538
32539         * except.c (emit_note_eh_region_end): New helper function.
32540         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
32541         emit EH_REGION_END note.
32542         * jump.c (cleanup_barriers): Do not split a call and its
32543         corresponding CALL_ARG_LOCATION note.
32544
32545 2014-06-30  Jeff Law  <law@redhat.com>
32546
32547         PR tree-optimization/61607
32548         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
32549         deeper into the SSA_NAME_VALUE chain.
32550
32551 2014-06-30  Marek Polacek  <polacek@redhat.com>
32552
32553         * convert.c (convert_to_integer): Don't instrument conversions if the
32554         function has no_sanitize_undefined attribute.
32555         * ubsan.c: Don't run the ubsan pass if the function has
32556         no_sanitize_undefined attribute.
32557
32558 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
32559
32560         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
32561         -fsanitize=undefined suboptions.
32562
32563 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
32564
32565         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
32566         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
32567         against bigendian and adjust indices.
32568
32569 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
32570
32571         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
32572
32573 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32574
32575         PR target/61633
32576         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
32577         Add alternative; make early clobber.  Adjust both split patterns
32578         to use operand 0 as the working register.
32579
32580 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
32581
32582         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
32583         as ira_object_id_map might be NULL, or 1.
32584
32585 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32586
32587         * loop-invariant.c (get_inv_cost): Handle register class.
32588         (gain_for_invariant): Check the register pressure of the inv
32589         and its overlapped register class, other than all.
32590
32591 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
32592
32593         * doc/invoke.texi (Optimize Options): Fix descriptions of
32594         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
32595
32596 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
32597
32598         * doc/extend.texi (Function Attributes): Update 'naked' attribute
32599         documentation.
32600
32601 2014-06-29  Tobias Grosser <tobias@grosser.es>
32602
32603         PR bootstrap/61650
32604         * graphite-isl-ast-to-gimple.c: Add missing guards.
32605
32606 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
32607
32608         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
32609         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
32610         * flag-types.h: Add new enum fgraphite_generator.
32611         * graphite-isl-ast-to-gimple.c: New.
32612         * graphite-isl-ast-to-gimple.h: New.
32613         * graphite.c (graphite_transform_loops): Add choice of Graphite
32614         code generator, which depends on flag_graphite_code_gen.
32615
32616 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
32617
32618         * graphite-dependences.c (subtract_commutative_associative_deps):
32619         Add NULL checking of the following variables: must_raw_no_source,
32620         may_raw_no_source, must_war_no_source, may_war_no_source,
32621         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
32622         must_war, may_war, must_waw, may_waw.
32623
32624 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
32625
32626         * graphite-clast-to-gimple.c: gloog is renamed to
32627         graphite_regenerate_ast_cloog.  gloog_error is renamed to
32628         graphite_regenerate_error.
32629         * graphite-clast-to-gimple.h: The definition of the struct
32630         bb_pbb_def is moved to graphite-htab.h.
32631         Add inclusion of the hash-table.h.
32632         * graphite-htab.h: The declaration of the function gloog is moved
32633         to graphite-clast-to-gimple.h and renamed to
32634         graphite_regenerate_ast_cloog.
32635         * graphite.c (graphite_transform_loops): gloog is renamed
32636         to graphite_regenerate_ast_cloog.
32637
32638 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32639
32640         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
32641         type is complete.
32642         (write_ts_type_common_tree_pointers): Do not stream fields not set
32643         for incomplete types; do not stream duplicated fields for variants;
32644         sanity check that variant and type match.
32645         (write_ts_type_non_common_tree_pointers): Likewise.
32646         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
32647         TYPE_SIZE whether type is complete.
32648         (lto_input_ts_type_common_tree_pointers): Do same changes as in
32649         write_ts_type_common_tree_pointers
32650         (lto_input_ts_type_non_common_tree_pointers): Likewise.
32651
32652 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32653
32654         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
32655
32656 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32657
32658         * tree-inline.c (remap_type_1): Do not duplicate fields
32659         that are shared in between type and its main variant.
32660
32661 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32662
32663         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
32664         of the type.
32665         (ipa_set_ancestor_jf) Likewise.
32666         (check_stmt_for_type_change): Check that we work on main variant.
32667         (detect_type_change): Look into main variant.
32668         (compute_known_type_jump_func): Check that main variant has BINFO.
32669
32670 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32671
32672         * ipa-devirt.c (set_type_binfo): New function.
32673         (add_type_duplicate): Use it.
32674         (get_odr_type): Sanity check that binfos points to main variants.
32675         (get_class_context): Be sure the context's outer_type is main variant.
32676         (contains_type_p): Walk main variant.
32677         (get_polymorphic_call_info_for_decl): Set outer_type to be
32678         main variant.
32679         (get_polymorphic_call_info): Likewise.
32680         (possible_polymorphic_call_targets): Sanity check that we operate
32681         on main variant.
32682
32683 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32684
32685         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
32686
32687 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32688
32689         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
32690         accidental change due to wide-int branch merge.
32691
32692 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32693
32694         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
32695         compressed debug support.
32696         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
32697         * configure: Regenerate.
32698         * config.in: Regenerate.
32699         * common.opt (compressed_debug_sections): New enum.
32700         (gz, gz=): New options.
32701         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
32702         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
32703         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
32704         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
32705         LINK_COMPRESS_DEBUG_SPEC.
32706         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
32707         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
32708         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
32709         (Debugging Options): Document -gz[=type].
32710
32711 2014-06-27  Martin Jambor  <mjambor@suse.cz>
32712
32713         PR ipa/61160
32714         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
32715         args_to_skip, use those from node instead.  Copy args_to_skip and
32716         combined_args_to_skip from node to the new thunk.
32717         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
32718         (cgraph_create_virtual_clone): Moved computation of
32719         combined_args_to_skip...
32720         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
32721
32722 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
32723
32724         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
32725         redundant diagnostic machinary.
32726
32727 2014-06-27  Richard Biener  <rguenther@suse.de>
32728
32729         * tree-ssa-math-opts.c (bswap_replace): Fix
32730         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
32731
32732 2014-06-27  Martin Liska  <mliska@suse.cz>
32733
32734         * gimple.h (gimple_location_safe): New function introduced.
32735         * cgraphunit.c (walk_polymorphic_call_targets): Usage
32736         of gimple_location_safe replaces gimple_location.
32737         (gimple_fold_call): Likewise.
32738         * ipa-devirt.c (ipa_devirt): Likewise.
32739         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
32740         * ipa.c (walk_polymorphic_call_targets): Likewise.
32741         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32742
32743 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
32744
32745         PR tree-optimization/57233
32746         PR tree-optimization/61299
32747         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
32748         functions.
32749         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
32750         would be lowered to scalar shifts, check if corresponding
32751         shifts and vector BIT_IOR_EXPR are supported and don't lower
32752         or lower just to narrower vector type in that case.
32753         * expmed.c (expand_shift_1): Fix up handling of vector
32754         shifts and rotates.
32755
32756 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
32757
32758         PR target/61586
32759         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
32760
32761 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
32762
32763         * doc/invoke.texi (-fsemantic-interposition): Document.
32764         * common.opt (fsemantic-interposition): New flag.
32765         * varasm.c (decl_replaceable_p): Use it.
32766
32767 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32768
32769         PR target/61542
32770         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
32771         extraction other than index 3.
32772
32773 2014-06-26  Teresa Johnson  <tejohnson@google.com>
32774
32775         * doc/invoke.texi: Fix typo.
32776         * dumpfile.c: Add support for documented -fdump-* options
32777         optimized/missed/note/optall.
32778
32779 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32780
32781         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
32782         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
32783         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
32784         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
32785         * opts.c (default_options_optimization): Set
32786         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
32787         * doc/invoke.texi (allow-load-data-races)
32788         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
32789         (allow-store-data-races): Document the new default.
32790
32791 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32792
32793         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
32794         renamed to ipa_impossible_devirt_target.  Fix typo.
32795         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
32796         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
32797         ipa_impossible_devirt_target.
32798
32799 2014-06-26  Richard Biener  <rguenther@suse.de>
32800
32801         PR tree-optimization/61607
32802         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
32803         explaining why we restrict copies on loop depth.
32804         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32805         on loop depth.
32806         (record_equivalences_from_phis): Instead add it here.
32807
32808 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
32809
32810         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
32811         (LTO_WRAPPER_OBJS): New variable.
32812         (lto-wrapper$(exeext)): Use it.
32813         * collect2.c: Include "collect-utils.h".
32814         (verbose, debug): Remove variables.
32815         (at_file_supplied): No longer static.
32816         (tool_name): New variable.
32817         (do_wait, fork_execute, maybe_unlink): Don't declare.
32818         (tool_cleanup): No longer static.
32819         (notice): Remove function.
32820         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
32821         fork_execute calls.
32822         (collect_wait, do_wait, collect_execute): Remove functions.
32823         (maybe_unlink): No longer static.
32824         * collect2.h (verbose, debug): Don't declare.
32825         (at_file_supplied): Declare.
32826         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
32827         changed.
32828         (collect_execute): Replace with implementation from collect2, plus a
32829         new arg use_atfile.  All callers changed.
32830         (collect_wait): Replace with implementation from collect2.
32831         (maybe_unlink_file): Remove function.
32832         (fork_execute): Replace with implementation from collect2, plus a
32833         new arg use_atfile.  All callers changed.
32834         (do_wait): Add call to utils_cleanup to the error path.
32835         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32836         (tool_cleanup): Adjust declarations.
32837         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32838         * tlink.c: Include "collect-utils.h".
32839         (tlink_execute): New arg use_atfile.  All callers changed.
32840         (tlink_init, tlink_execute): Remove declarations.
32841
32842         * collect-utils.c (save_temps): New variable.
32843         (do_wait): Use it instead of debug.  Use fatal_error.
32844         * collect-utils.h (save_temps): Declare.
32845         * collect2.c (verbose): Rename from vflag.  All uses changed.
32846         (tool_cleanup): New function, copied from collect_atexit.
32847         (collect_atexit, handler): Just call it.
32848         * collect2.h (verbose): Declaration renamed from vflag.
32849         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32850         debug.
32851
32852         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32853         (lto-wrapper$(exeext)): Link with collect-utils.o.
32854         * collect-utils.c: New file.
32855         * collect-utils.h: New file.
32856         * lto-wrapper.c: Include "collect-utils.h".
32857         (args_name): Delete variable.
32858         (tool_name): New variable.
32859         (tool_cleanup): New function.
32860         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
32861         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32862         (fork_execute): Remove functions.
32863
32864 2014-06-26  Nick Clifton  <nickc@redhat.com>
32865
32866         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32867
32868         * doc/extend.texi (Function Attributes): Fix typo in description
32869         of RX vector attribute.
32870
32871 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
32872
32873         * config.gcc (supported_defaults): Error when passing either
32874         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32875
32876 2014-06-26  Richard Biener  <rguenther@suse.de>
32877
32878         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32879         propagating volatile pointers.
32880
32881 2014-06-26  Richard Biener  <rguenther@suse.de>
32882
32883         PR tree-optimization/61607
32884         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32885         loop if we redirected its latch edge.
32886         (thread_block_1): Do not cancel loops prematurely.
32887
32888 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
32889
32890         * toplev.c (backend_init_target): Move init_emit_regs and
32891         init_regs to...
32892         (backend_init) ... here; skip ira_init_once and backend_init_target.
32893         (target_reinit) ... and here; clear
32894         this_target_rtl->lang_dependent_initialized.
32895         (lang_dependent_init_target): Clear
32896         this_target_rtl->lang_dependent_initialized;
32897         break out rtl initialization to ...
32898         (initialize_rtl): ... here; call also backend_init_target
32899         and ira_init_once.
32900         * toplev.h (initialize_rtl): New function.
32901         * function.c: Include toplev.h
32902         (init_function_start): Call initialize_rtl.
32903         * rtl.h (target_rtl): Add target_specific_initialized,
32904         lang_dependent_initialized.
32905
32906 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
32907             Jakub Jelinek  <jakub@redhat.com>
32908
32909         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32910
32911 2014-06-25  Tom de Vries  <tom@codesourcery.com>
32912
32913         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32914
32915 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32916
32917         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32918         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32919         Issue a strict overflow warning if appropriate.
32920
32921 2014-06-25  Martin Liska  <mliska@suse.cz>
32922
32923         IPA REF refactoring
32924         * Makefile.in: Removed header file (ipa-ref-inline.h).
32925         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32926         called.
32927         (cgraph_speculative_call_info): Likewise.
32928         (cgraph_for_node_thunks_and_aliases): Likewise.
32929         (cgraph_for_node_and_aliases): Likewise.
32930         (verify_cgraph_node): Likewise.
32931         * cgraph.h: Batch of IPA REF functions become member functions of
32932         symtab_node: add_reference, maybe_add_reference, clone_references,
32933         clone_referring, clone_reference, find_reference,
32934         remove_stmt_references, remove_all_references,
32935         remove_all_referring, dump_references, dump_referring,
32936         has_alias_p, iterate_reference, iterate_referring.
32937         * cgraphbuild.c (record_reference): New IPA REF function used.
32938         (record_type_list): Likewise.
32939         (record_eh_tables): Likewise.
32940         (mark_address): Likewise.
32941         (mark_load): Likewise.
32942         (mark_store): Likewise.
32943         (pass_build_cgraph_edges): Likewise.
32944         (rebuild_cgraph_edge): Likewise.
32945         (cgraph_rebuild_references): Likewise.
32946         (pass_remove_cgraph_callee_edges): Likewise.
32947         * cgraphclones.c (cgraph_clone_node): Likewise.
32948         (cgraph_create_virtual_clone): Likewise.
32949         (cgraph_materialize_clone): Likewise.
32950         (cgraph_materialize_all_clones): Likewise.
32951         * cgraphunit.c (cgraph_reset_node): Likewise.
32952         (cgraph_reset_node): Likewise.
32953         (analyze_function): Likewise.
32954         (assemble_thunks_and_aliases): Likewise.
32955         (expand_function): Likewise.
32956         * ipa-comdats.c (propagate_comdat_group): Likewise.
32957         (enqueue_references): Likewise.
32958         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32959         (create_specialized_node): Likewise.
32960         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32961         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32962         * ipa-inline.c (reset_edge_caches): Likewise.
32963         (update_caller_keys): Likewise.
32964         (execute): Likewise.
32965         * ipa-prop.c (remove_described_reference): Likewise.
32966         (propagate_controlled_uses): Likewise.
32967         (ipa_edge_duplication_hook): Likewise.
32968         (ipa_modify_call_arguments): Likewise.
32969         * ipa-pure-const.c (propagate_pure_const): Likewise.
32970         * ipa-ref-inline.h: Header file removed, functions moved
32971         to symtab_node class.
32972         * ipa-ref.c (remove_reference): New class member function.
32973         (cannot_lead_to_return): New class member function.
32974         (referring_ref_list): Likewise.
32975         (referred_ref_list): Likewise.
32976         Rest of functions moved to symtab_node class.
32977         * ipa-ref.h: New member functions remove_reference,
32978         cannot_lead_to_return, referring_ref_list, referred_ref_list added
32979         to ipa_ref class.
32980         ipa_ref_list class has new member functions: first_reference,
32981         first_referring, clear, nreferences.
32982         * ipa-reference.c (analyze_function): New IPA REF function used.
32983         (write_node_summary_p): Likewise.
32984         (ipa_reference_write_optimization_summary): Likewise.
32985         * ipa-split.c (split_function): Likewise.
32986         * ipa-utils.c (ipa_reverse_postorder): Likewise.
32987         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32988         (function_and_variable_visibility): Likewise.
32989         * ipa.c (has_addr_references_p): Likewise.
32990         (process_references): Argument type changed.
32991         (symtab_remove_unreachable_nodes): New IPA REF function used.
32992         (process_references): Likewise.
32993         (set_writeonly_bit): Likewise.
32994         * lto-cgraph.c: Implementation of new symtab_node member functions
32995         that uses new IPA REF functions.
32996         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32997         function used.
32998         * lto-streamer-out.c (output_symbol_p): Likewise.
32999         * lto-streamer.h (referenced_from_this_partition_p): Argument type
33000         changed.
33001         * symtab.c: Implementation of new IPA REF API.
33002         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
33003         (ipa_tm_create_version): Likewise.
33004         (ipa_tm_execute): Likewise.
33005         * tree-emutls.c (gen_emutls_addr): Likewise.
33006         * tree-inline.c (copy_bb): Likewise.
33007         (delete_unreachable_blocks_update_callgraph): Likewise.
33008         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
33009         (varpool_for_node_and_aliases): Likewise.
33010
33011 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
33012
33013         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
33014
33015 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
33016
33017         PR bootstrap/61598
33018         * fold-const.c (fold_checksum_tree): Use a hash_table of const
33019         tree_node * instead of tree_node *.
33020         (fold): Adjust.
33021         (print_fold_checksum): Likewise.
33022         (fold_check_failed): Likewise.
33023         (debug_fold_checksum): Likewise.
33024         (fold_build1_stat_loc): Likewise.
33025         (fold_build2_stat_loc): Likewise.
33026         (fold_build3_stat_loc): Likewise.
33027         (fold_build_call_array_loc): Likewise.
33028
33029 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
33030
33031         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
33032         implementation with call to...
33033         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
33034         function.
33035         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
33036         Declare.
33037
33038 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
33039
33040         PR tree-optimization/57742
33041         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
33042         after replacing the statement.
33043
33044 2014-06-25  Nick Clifton  <nickc@redhat.com>
33045
33046         * config/v850/v850.c (GHS_default_section_names): Change to const
33047         char * type.
33048         (GHS_current_section_names): Likewise.
33049         (v850_insert_attributes): Do not build strings, just assign the
33050         names directly.  Change the type of 'chosen_section' to const
33051         char*.
33052         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
33053         directly to the array entry.
33054         * config/v850/v850.h (GHS_default_section_names): Change to const
33055         char * type.
33056         (GHS_current_section_names): Likewise.
33057
33058 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
33059
33060         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
33061         (LANG_HOOKS_DECLS): Add it.
33062         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
33063         has correct type.
33064         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
33065         * langhooks.h (struct lang_hooks_for_decls): Add
33066         omp_clause_linear_ctor hook.
33067         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
33068         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
33069         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
33070         combined simd loop use omp_clause_linear_ctor hook.
33071
33072 2014-06-24  Cong Hou  <congh@google.com>
33073
33074         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
33075         pattern recognition.
33076         (type_conversion_p): PROMOTION is true if it's a type promotion
33077         conversion, and false otherwise.  Return true if the given expression
33078         is a type conversion one.
33079         * tree-vectorizer.h: Adjust the number of patterns.
33080         * tree.def: Add SAD_EXPR.
33081         * optabs.def: Add sad_optab.
33082         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
33083         * expr.c (expand_expr_real_2): Likewise.
33084         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
33085         * gimple.c (get_gimple_rhs_num_ops): Likewise.
33086         * optabs.c (optab_for_tree_code): Likewise.
33087         * tree-cfg.c (estimate_operator_cost): Likewise.
33088         * tree-ssa-operands.c (get_expr_operands): Likewise.
33089         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
33090         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
33091         * doc/generic.texi: Add document for SAD_EXPR.
33092         * doc/md.texi: Add document for ssad and usad.
33093
33094 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
33095
33096         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
33097         qualification in cast.
33098
33099 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
33100
33101         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
33102         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
33103         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
33104         (tree_function_decl): ... here.
33105         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
33106         streaming of vindex to ...
33107         (write_ts_function_decl_tree_pointers): ... here.
33108         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
33109         Do not stream DECL_VINDEX.
33110         (lto_input_ts_function_decl_tree_pointers): Stream it here.
33111
33112 2014-06-24  Catherine Moore  <clm@codesourcery.com>
33113             Sandra Loosemore  <sandra@codesourcery.com>
33114
33115         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
33116         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
33117         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
33118
33119 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
33120
33121         * doc/invoke.texi (Warning Options): Remove duplicated
33122         -Wmaybe-uninitialized.
33123
33124 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
33125
33126         PR tree-optimization/57742
33127         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
33128         (handle_builtin_malloc, handle_builtin_memset): New functions.
33129         (strlen_optimize_stmt): Call them.
33130         * passes.def: Move strlen after loop+dom but before vrp.
33131
33132 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
33133
33134         PR target/61570
33135         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
33136         model family 6 CPU with has_longmode never use a CPU without
33137         64-bit support.
33138
33139 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
33140
33141         PR target/61570
33142         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
33143         the last change.
33144
33145 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
33146
33147         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
33148         * dominance.c (iterate_fix_dominators): Use hash_map instead of
33149         pointer_map.
33150         * hash-map.h: New file.
33151         * ipa-comdats.c: Use hash_map instead of pointer_map.
33152         * ipa.c: Likewise.
33153         * lto-section-out.c: Adjust.
33154         * lto-streamer.h: Replace pointer_map with hash_map.
33155         * symtab.c (verify_symtab): Likewise.
33156         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
33157         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
33158         * tree-streamer.h: Likewise.
33159         * tree-streamer.c: Adjust.
33160         * pointer-set.h: Remove pointer_map.
33161
33162 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
33163
33164         * hash-table.h: Add a template arg to choose between storing values
33165         and storing pointers to values, and then provide partial
33166         specializations for both.
33167         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
33168         should store, not the type values should point to.
33169         * tree-into-ssa.c (var_info_hasher): Likewise.
33170         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
33171         * tree-complex.c: Adjust.
33172         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
33173         table instead of int_tree_map *.
33174         * tree-parloops.c: Adjust.
33175         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
33176         type is being stored.
33177         * tree-vectorizer.c: Adjust.
33178
33179 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
33180
33181         * hash-table.h: Remove a layer of indirection from hash_table so that
33182         it contains the hash table's data instead of a pointer to the data.
33183         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
33184         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
33185         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
33186         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
33187         fold-const.c, gcse.c, ggc-common.c,
33188         gimple-ssa-strength-reduction.c, gimplify.c,
33189         graphite-clast-to-gimple.c, graphite-dependences.c,
33190         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
33191         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
33192         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
33193         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
33194         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
33195         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
33196         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
33197         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
33198         tree-ssa-live.c, tree-ssa-loop-im.c,
33199         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
33200         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
33201         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
33202         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
33203         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
33204         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
33205         vtable-verify.c, vtable-verify.h: Adjust.
33206
33207 2014-06-24  Richard Biener  <rguenther@suse.de>
33208
33209         PR tree-optimization/61572
33210         * tree-ssa-sink.c (statement_sink_location): Do not sink
33211         loads from hard registers.
33212
33213 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
33214
33215         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
33216         not mentioned in clauses use private clause if the iterator is
33217         declared in #pragma omp for simd, and when adding lastprivate
33218         instead, add it to the outer #pragma omp for too.  Diagnose
33219         if the variable is private in outer context.  For simd collapse > 1
33220         loops, replace all iterators with temporaries.
33221         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
33222         same even in collapse > 1 loops.
33223
33224         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
33225         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
33226         non-NULL.
33227         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
33228         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
33229         non-NULL.
33230         (gimplify_adjust_omp_clauses): Likewise.
33231         * omp-low.c (lower_rec_simd_input_clauses,
33232         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
33233         safelen the same as safelen(1).
33234         * tree-nested.c (convert_nonlocal_omp_clauses,
33235         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
33236         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
33237         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
33238         Fixup handling of GIMPLE_OMP_TARGET.
33239         (convert_tramp_reference_stmt, convert_gimple_call): Handle
33240         GIMPLE_OMP_TARGET.
33241
33242 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
33243
33244         PR tree-optimization/61554
33245         * tree-ssa-propagate.c: Include "bitmap.h".
33246         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
33247         properly update constructor/destructor.
33248         (substitute_and_fold_dom_walker::before_dom_children):
33249         Remove call to gimple_purge_dead_eh_edges, add bb->index to
33250         need_eh_cleaup instead.
33251         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
33252         need_eh_cleanup.
33253
33254 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
33255
33256         * varpool.c (dump_varpool_node): Dump used_by_single_function.
33257         * tree-pass.h (make_pass_ipa_single_use): New pass.
33258         * cgraph.h (used_by_single_function): New flag.
33259         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
33260         Stream it.
33261         * passes.def (pass_ipa_single_use): Scedule.
33262         * ipa.c (BOTTOM): New macro.
33263         (meet): New function
33264         (propagate_single_user): New function.
33265         (ipa_single_use): New function.
33266         (pass_data_ipa_single_use): New pass.
33267         (pass_ipa_single_use): New pass.
33268         (pass_ipa_single_use::gate): New gate.
33269         (make_pass_ipa_single_use): New function.
33270
33271 2014-06-23  Kai Tietz  <ktietz@redhat.com>
33272
33273         PR target/39284
33274         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
33275         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
33276
33277 2014-06-23  Richard Biener  <rguenther@suse.de>
33278
33279         * tree-ssa-loop.c (gate_loop): New function.
33280         (pass_tree_loop::gate): Call it.
33281         (pass_data_tree_no_loop, pass_tree_no_loop,
33282         make_pass_tree_no_loop): New.
33283         * tree-vectorizer.c: Include tree-scalar-evolution.c
33284         (pass_slp_vectorize::execute): Initialize loops and SCEV if
33285         required.
33286         (pass_slp_vectorize::clone): New method.
33287         * timevar.def (TV_TREE_NOLOOP): New.
33288         * tree-pass.h (make_pass_tree_no_loop): Declare.
33289         * passes.def (pass_tree_no_loop): New pass group with
33290         SLP vectorizer.
33291
33292 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
33293
33294         PR target/61570
33295         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
33296         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
33297
33298 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
33299
33300         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
33301         "yes" where needed.
33302
33303 2014-06-23  Alan Modra  <amodra@gmail.com>
33304
33305         PR bootstrap/61583
33306         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
33307         to zero on debug statements.
33308
33309 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
33310
33311         PR target/60825
33312         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
33313         Ignore third operand if present by marking qualifier_internal.
33314
33315         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
33316
33317         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
33318         vector extension.
33319         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
33320         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
33321         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
33322         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
33323         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
33324         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
33325         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
33326         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
33327         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
33328         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
33329         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
33330         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
33331         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
33332         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
33333         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
33334         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
33335         logic in GCC vector extensions
33336
33337         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
33338         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
33339         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
33340         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
33341         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
33342         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
33343         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
33344         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
33345         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
33346         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
33347
33348         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
33349
33350         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
33351         extensions.
33352
33353         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
33354         (vget_low_s64): Use __GET_LOW macro.
33355         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
33356         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
33357         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
33358         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
33359         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
33360
33361         (vcombine_s64): Use GCC vector extensions; remove cast.
33362         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
33363         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
33364         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
33365         Fix type signature; remove cast.
33366
33367 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
33368
33369         PR target/60825
33370         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
33371         V1DFmode.
33372         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
33373         add V1DFmode
33374         (BUILTIN_VD1): New.
33375         (BUILTIN_VD_RE): Remove.
33376         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
33377         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
33378         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
33379         variant but not df.
33380         (vreinterpretv1df*, vreinterpret*v1df): New.
33381         (vreinterpretdf*, vreinterpret*df): Remove.
33382         * config/aarch64/aarch64-simd.md (aarch64_create,
33383         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
33384         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
33385         (VD1): New.
33386         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
33387         (vcreate_f64): Remove cast, use v1df builtin.
33388         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
33389         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
33390         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
33391         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
33392         vmov_n_f64, vst1_f64): Use gcc vector extensions.
33393         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
33394         add range check using __builtin_aarch64_im_lane_boundsi.
33395         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
33396         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
33397         type signature, use gcc vector extensions.
33398         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
33399         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
33400         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
33401         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
33402         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
33403         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
33404         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
33405         vreinterpret_u64_f64): Use v1df builtin not df.
33406
33407 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
33408
33409         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
33410         vector registers.
33411
33412 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
33413
33414         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
33415         priority directly.
33416
33417 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33418
33419         * loop-invariant.c (pre_check_invariant_p): New function.
33420         (find_invariant_insn): Call pre_check_invariant_p.
33421
33422 2014-06-22  Richard Henderson  <rth@redhat.com>
33423
33424         PR target/61565
33425         * compare-elim.c (struct comparison): Add eh_note.
33426         (find_comparison_dom_walker::before_dom_children): Don't eliminate
33427         a redundant comparison in a different EH region.  Purge EH edges if
33428         necessary.
33429
33430 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33431
33432         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
33433         (var_shift): Use it.
33434         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
33435         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
33436         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
33437         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
33438         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
33439         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
33440         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
33441         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
33442         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
33443         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
33444         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
33445         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
33446         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
33447         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
33448         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
33449         *rotldi3_internal15be): Use the new attribute.  Merge register and
33450         integer alternatives.
33451
33452 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33453
33454         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
33455         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
33456         split, *ashrdi3_internal3 and split): Delete, merge into...
33457         (ashr<mode>3): New expander.
33458         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
33459         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
33460
33461 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33462
33463         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
33464         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
33465         *rotldi3_internal3 and split): Delete, merge into...
33466         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
33467         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
33468         Use "rotlw" extended mnemonic.
33469
33470 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33471
33472         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
33473         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
33474         and split, *ashldi3_internal3 and split): Delete, merge into...
33475         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
33476         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
33477
33478 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33479
33480         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
33481         (lshrsi3, two anonymous define_insns and define_splits,
33482         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
33483         *lshrdi3_internal3 and split): Delete, merge into...
33484         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
33485         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
33486
33487 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
33488
33489         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
33490         Remove "O" alternative.
33491
33492 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
33493
33494         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
33495         (mips_move_from_gpr_cost): Likewise.
33496         (mips_register_move_cost): Update accordingly.
33497         (mips_secondary_reload_class): Remove name of in_p.
33498
33499 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
33500
33501         PR target/61503
33502         * config/i386/i386.md (x86_64_shrd, x86_shrd,
33503         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
33504
33505 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
33506
33507         * config/nios2/nios2.c: Include "builtins.h".
33508
33509 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33510
33511         * cgraph.h (tls_model_names): New variable.
33512         * print-tree.c (print_node): Simplify.
33513         * varpool.c (tls_model_names): New variable.
33514         (dump_varpool_node): Output tls model.
33515
33516 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33517
33518         * ipa-visibility.c (function_and_variable_visibility): Disable
33519         temporarily local aliases for some targets.
33520
33521 2014-06-20  Marek Polacek  <polacek@redhat.com>
33522
33523         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
33524         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
33525         into SANITIZE_UNDEFINED.
33526         * doc/invoke.texi: Describe -fsanitize=bounds.
33527         * gimplify.c (gimplify_call_expr): Add gimplification of internal
33528         functions created in the FEs.
33529         * internal-fn.c: Move "internal-fn.h" after "tree.h".
33530         (expand_UBSAN_BOUNDS): New function.
33531         * internal-fn.def (UBSAN_BOUNDS): New internal function.
33532         * internal-fn.h: Don't define internal functions here.
33533         * opts.c (common_handle_option): Add -fsanitize=bounds.
33534         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
33535         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
33536         * tree-core.h: Define internal functions here.
33537         (struct tree_base): Add ifn field.
33538         * tree-pretty-print.c: Include "internal-fn.h".
33539         (dump_generic_node): Handle functions without CALL_EXPR_FN.
33540         * tree.c (get_callee_fndecl): Likewise.
33541         (build_call_expr_internal_loc): New function.
33542         * tree.def (CALL_EXPR): Update description.
33543         * tree.h (CALL_EXPR_IFN): Define.
33544         (build_call_expr_internal_loc): Declare.
33545         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
33546         types.
33547         (ubsan_type_descriptor): Change bool parameter to enum
33548         ubsan_print_style.  Adjust the code.  Add handling of
33549         UBSAN_PRINT_ARRAY.
33550         (ubsan_expand_bounds_ifn): New function.
33551         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
33552         (ubsan_build_overflow_builtin): Likewise.
33553         (instrument_bool_enum_load): Likewise.
33554         (ubsan_instrument_float_cast): Likewise.
33555         * ubsan.h (enum ubsan_print_style): New enum.
33556         (ubsan_expand_bounds_ifn): Declare.
33557         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
33558
33559 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
33560
33561         * config/rs6000/rs6000.md: Append `DONE' to preparation
33562         statements of `bswap' pattern splitters.
33563
33564 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33565
33566         * target.def (call_fusage_contains_non_callee_clobbers): Update
33567         definition.
33568         * doc/tm.texi: Regenerate.
33569
33570 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
33571             Max Ostapenko  <m.ostapenko@partner.samsung.com>
33572
33573         PR sanitizer/61547
33574         * asan.c (instrument_strlen_call): Fixed instrumentation of
33575         trailing byte.
33576
33577 2014-06-20  Martin Jambor  <mjambor@suse.cz>
33578
33579         PR ipa/61540
33580         * ipa-prop.c (impossible_devirt_target): New function.
33581         (try_make_edge_direct_virtual_call): Use it, also instead of
33582         asserting.
33583
33584 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
33585             Max Ostapenko  <m.ostapenko@partner.samsung.com>
33586
33587         PR sanitizer/61530
33588         * asan.c (build_check_stmt): Add condition.
33589
33590 2014-06-20  Martin Jambor  <mjambor@suse.cz>
33591
33592         PR ipa/61211
33593         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
33594         expanded clones.
33595
33596 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33597
33598         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
33599         Update comments.
33600         (VCONQ): Make comment more helpful.
33601         (VCON): Delete.
33602         * config/aarch64/aarch64-simd.md
33603         (aarch64_sqdmulh_lane<mode>):
33604         Use VCOND for operands 2.  Update lane checking and flipping logic.
33605         (aarch64_sqrdmulh_lane<mode>): Likewise.
33606         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
33607         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
33608         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
33609         attribute of operand 3 to VCOND.
33610         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
33611         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
33612         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
33613         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
33614         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
33615         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
33616         define_insn.
33617         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
33618         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
33619         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
33620         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
33621         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
33622         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
33623         operand to VCOND.  Update lane flipping and bounds checking logic.
33624         (aarch64_sqdmlal2_lane<mode>): Likewise.
33625         (aarch64_sqdmlsl_lane<mode>): Likewise.
33626         (aarch64_sqdmull_lane<mode>): Likewise.
33627         (aarch64_sqdmull2_lane<mode>): Likewise.
33628         (aarch64_sqdmlal_laneq<mode>):
33629         Replace VCON usage with VCONQ.
33630         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
33631         (aarch64_sqdmlal2_laneq<mode>): Emit
33632         aarch64_sqdmlal2_laneq<mode>_internal insn.
33633         Replace VCON with VCONQ.
33634         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
33635         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
33636         (aarch64_sqdmull_laneq<mode>): Emit
33637         aarch64_sqdmull_laneq<mode>_internal insn.
33638         Replace VCON with VCONQ.
33639         (aarch64_sqdmull2_laneq<mode>): Emit
33640         aarch64_sqdmull2_laneq<mode>_internal insn.
33641         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
33642         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
33643         of 3rd argument to int16x4_t.
33644         (vqdmlalh_lane_s16): Likewise.
33645         (vqdmlslh_lane_s16): Likewise.
33646         (vqdmull_high_lane_s16): Likewise.
33647         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
33648         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
33649         (vqdmlsl_lane_s16): Likewise.
33650         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
33651         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
33652         (vqdmlals_lane_s32): Likewise.
33653         (vqdmlsls_lane_s32): Likewise.
33654         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
33655         (vqdmulls_lane_s32): Likewise.
33656         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
33657         (vqdmlsl_lane_s32): Likewise.
33658         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
33659         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
33660         (vqrdmulhh_lane_s16): Likewise.
33661         (vqdmlsl_high_lane_s16): Likewise.
33662         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
33663         (vqdmlsl_high_lane_s32): Likewise.
33664         (vqrdmulhs_lane_s32): Likewise.
33665
33666 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33667
33668         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
33669         get_call_reg_set_usage.
33670
33671 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33672
33673         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
33674         it contains all call_used_regs.
33675
33676 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33677
33678         * final.c (collect_fn_hard_reg_usage): Add and use variable
33679         function_used_regs.
33680
33681 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33682
33683         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
33684         (set_init_priority, get_init_priority, set_fini_priority,
33685         get_fini_priority): New methods.
33686         * tree.c (init_priority_for_decl): Remove.
33687         (init_ttree): Do not initialize init priority.
33688         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
33689         (decl_priority_info): Remove.
33690         (decl_init_priority_insert): Rewrite.
33691         (decl_fini_priority_insert): Rewrite.
33692         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
33693         tree_priority_map_marked_p): Remove.
33694         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
33695         * lto-streamer-out.c (hash_tree): Do not hash priorities.
33696         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
33697         not output priorities.
33698         (pack_ts_function_decl_value_fields): Likewise.
33699         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33700         not input priorities.
33701         (unpack_ts_function_decl_value_fields): Likewise.
33702         * symtab.c (symbol_priority_map): Declare.
33703         (init_priority_hash): Declare.
33704         (symtab_unregister_node): Unregister from priority hash, too.
33705         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
33706         New methods.
33707         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
33708         (symbol_priority_info): New function.
33709         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
33710         New methods.
33711         * tree-core.h (tree_priority_map): Remove.
33712
33713 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
33714
33715         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
33716         0xff to uint64_t before shifting it up.
33717
33718 2014-06-20  Julian Brown  <julian@codesourcery.com>
33719             Chung-Lin Tang  <cltang@codesourcery.com>
33720
33721         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
33722         TARGET_THUMB1_ONLY. Add comments.
33723
33724 2014-06-19  Tom de Vries  <tom@codesourcery.com>
33725
33726         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
33727         return type to void.
33728         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
33729
33730 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33731
33732         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
33733         as "move", from depends_on.
33734
33735 2014-06-19  Terry Guo  <terry.guo@arm.com>
33736
33737         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
33738         stage.
33739
33740 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
33741
33742         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
33743         Remove cr5.
33744         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
33745
33746 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
33747
33748         PR target/61550
33749         * config/sh/sh.c (prepare_move_operands): Don't process TLS
33750         addresses here if reload in progress or completed.
33751
33752 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33753
33754         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
33755         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
33756         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
33757         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
33758         (mips_register_priority): New function that implements the target
33759         hook TARGET_REGISTER_PRIORITY.
33760         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
33761         (mips_lra_p): Likewise for TARGET_LRA_P.
33762         (TARGET_REGISTER_PRIORITY): Define macro.
33763         (TARGET_SPILL_CLASS): Likewise.
33764         (TARGET_LRA_P): Likewise.
33765         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
33766         classes.
33767         (REG_CLASS_NAMES): Likewise.
33768         (REG_CLASS_CONTENTS): Likewise.
33769         (BASE_REG_CLASS): Use M16_SP_REGS.
33770         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
33771         New set attribute to enable alternatives depending on the register
33772         allocator used.
33773         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
33774         (*lea64): Disable pattern for MIPS16.
33775         * config/mips/mips.opt (mlra): New option.
33776
33777 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33778
33779         * lra-constraints.c (base_to_reg): New function.
33780         (process_address): Use new function.
33781
33782 2014-06-18  Tom de Vries  <tom@codesourcery.com>
33783
33784         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
33785         * config/aarch64/aarch64.c
33786         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
33787         (aarch64_emit_call_insn): New function.
33788         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
33789         of emit_call_insn.
33790         * config/aarch64/aarch64.md (define_expand "call_internal")
33791         (define_expand "call_value_internal", define_expand "sibcall_internal")
33792         (define_expand "sibcall_value_internal"): New.
33793         (define_expand "call", define_expand "call_value")
33794         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
33795         expand variant and aarch64_emit_call_insn.
33796
33797 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
33798             Tom de Vries  <tom@codesourcery.com>
33799
33800         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
33801         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
33802         Redefine to true.
33803         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
33804         clobbers to CALL_INSN_FUNCTION_USAGE.
33805         (define_expand "sibcall_internal")
33806         (define_expand "sibcall_value_internal"): New.
33807         (define_expand "call", define_expand "call_value"): Add argument to
33808         arm_emit_call_insn.
33809         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
33810         (define_expand "sibcall_value"): Use sibcall_value_internal and
33811         arm_emit_call_insn.
33812
33813 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33814
33815         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
33816
33817 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33818
33819         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
33820         __udivmoddi4.
33821
33822 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33823
33824         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
33825         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
33826         annotations. Fix DWARF information.
33827
33828 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33829
33830         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33831         __udivmoddi4, and fixups for negative operands.
33832
33833 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33834
33835         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33836
33837 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33838
33839         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33840         to __udivmoddi4.
33841
33842 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33843
33844         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33845         manipulation.
33846
33847 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33848
33849         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33850         describing register usage on function entry and exit.
33851
33852 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33853
33854         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33855         (__aeabi_ldivmod): Fix whitespace.
33856
33857 2014-06-18  Andreas Schwab  <schwab@suse.de>
33858
33859         * doc/md.texi (Standard Names): Use @itemx for grouped items.
33860         Remove blank line after @item.
33861
33862 2014-06-18  Richard Henderson  <rth@redhat.com>
33863
33864         PR target/61545
33865         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33866
33867 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33868
33869         * config/arm/arm.c (neon_vector_mem_operand): Allow register
33870         POST_MODIFY for neon loads and stores.
33871         (arm_print_operand): Output post-index register for neon loads and
33872         stores.
33873
33874 2014-06-18  Richard Biener  <rguenther@suse.de>
33875
33876         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33877
33878 2014-06-18  Richard Biener  <rguenther@suse.de>
33879
33880         * tree-pass.h (make_pass_dce_loop): Remove.
33881         * passes.def: Replace pass_dce_loop with pass_dce.
33882         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33883         changed free niter estimates and reset the scev cache.
33884         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33885         make_pass_dce_loop): Remove.
33886         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33887         (fini_copy_prop): Return whether something changed.  Always
33888         let substitute_and_fold perform DCE and free niter estimates
33889         and reset the scev cache if so.
33890         (execute_copy_prop): If sth changed schedule cleanup-cfg.
33891         (pass_data_copy_prop): Do not unconditionally schedule
33892         cleanup-cfg or update-ssa.
33893
33894 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
33895
33896         PR tree-optimization/61518
33897         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33898         reduction var is used in reduction stmt or phi-function only.
33899
33900 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33901
33902         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33903
33904 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33905
33906         PR tree-optimization/61517
33907         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33908         whose rhs's first tree is the source expression instead of the
33909         expression itself.
33910         (find_bswap_or_nop): Likewise.
33911         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33912         gimple stmt whose rhs's first tree is the source. In the memory source
33913         case, move the stmt to be replaced close to one of the original load to
33914         avoid the problem of a store between the load and the stmt's original
33915         location.
33916         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33917         signature.
33918
33919 2014-06-18  Andreas Schwab  <schwab@suse.de>
33920
33921         PR rtl-optimization/54555
33922         * postreload.c (move2add_use_add2_insn): Substitute
33923         STRICT_LOW_PART only if it is cheaper.
33924
33925 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
33926
33927         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33928         Do not use unspec as call operand.  Use memory_operand instead of
33929         memory_nox32_operand and add "m" operand constraint.  Disable
33930         pattern for TARGET_X32.
33931         (*sibcall_pop_memory): Ditto.
33932         (*sibcall_value_memory): Ditto.
33933         (*sibcall_value_pop_memory): Ditto.
33934         (sibcall peepholes): Merge SImode and DImode patterns using
33935         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
33936         Disable pattern for TARGET_X32.  Check if eliminated register is
33937         really dead after call insn.  Generate call RTX without unspec operand.
33938         (sibcall_value peepholes): Ditto.
33939         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
33940         instead of memory_nox32_operand.  Check if eliminated register is
33941         really dead after call insn. Generate call RTX without unspec operand.
33942         (sibcall_value_pop peepholes): Ditto.
33943         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33944
33945 2014-06-18  Terry Guo  <terry.guo@arm.com>
33946
33947         PR target/61544
33948         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33949         reach the head.
33950
33951 2014-06-18  Olivier Hainque  <hainque@adacore.com>
33952
33953         * tree-core.h (tree_block): Add an "end_locus" field, allowing
33954         memorization of the end of block source location.
33955         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33956         * gimplify.c (gimplify_bind_expr): Propagate the block start and
33957         end source location info we have on the block entry/exit code we
33958         generate.
33959
33960 2014-06-18  Richard Biener  <rguenther@suse.de>
33961
33962         * common.opt (fssa-phiopt): New option.
33963         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33964         but not with -Og.
33965         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33966         * doc/invoke.texi (-fssa-phiopt): Document.
33967
33968 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33969
33970         * genattrtab.c (n_bypassed): New variable.
33971         (process_bypasses): Initialise n_bypassed.
33972         Count number of bypassed reservations.
33973         (make_automaton_attrs): Allocate space for bypassed reservations
33974         rather than number of bypasses.
33975
33976 2014-06-18  Richard Biener  <rguenther@suse.de>
33977
33978         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33979         we propagated anything.
33980         (substitute_and_fold_dom_walker::before_dom_children): Something
33981         changed if we propagated into PHI arguments.
33982         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33983         we removed a stmt.
33984
33985 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
33986
33987         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33988         vector case.
33989         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33990         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33991         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33992         Introduces alternative way of loads group permutaions.
33993         (vect_transform_grouped_load): Try alternative way of permutations.
33994
33995 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33996
33997         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33998         changed in ORT_TARGET region, don't jump to do_outer.
33999         (struct gimplify_adjust_omp_clauses_data): New type.
34000         (gimplify_adjust_omp_clauses_1): Adjust for data being
34001         a struct gimplify_adjust_omp_clauses_data pointer instead
34002         of tree *.  Pass pre_p as a new argument to
34003         lang_hooks.decls.omp_finish_clause hook.
34004         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
34005         splay_tree_foreach to pass both list_p and pre_p.
34006         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
34007         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
34008         gimplify_adjust_omp_clauses callers.
34009         * langhooks.c (lhd_omp_finish_clause): New function.
34010         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
34011         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
34012         * langhooks.h (struct lang_hooks_for_decls): Add a new
34013         gimple_seq * argument to omp_finish_clause hook.
34014         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
34015         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
34016         (scan_omp_parallel, lower_omp_for): When adding
34017         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
34018         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
34019         * tree-nested.c (convert_nonlocal_omp_clauses,
34020         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
34021         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
34022
34023 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
34024
34025         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
34026         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
34027
34028 2014-06-17  Xinliang David Li  <davidxl@google.com>
34029
34030         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
34031         * passes.c (pass_init_dump_file): Do not set initialize
34032         flag to false unconditionally.
34033
34034 2014-06-17  Richard Biener  <rguenther@suse.de>
34035
34036         * genopinit.c (main): Use vec<>::qsort method.
34037         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
34038         Likewise.
34039         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
34040
34041 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
34042
34043         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
34044         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
34045         (mips_move_to_gpr_cost): Remove ST_REGS case.
34046         (mips_move_from_gpr_cost): Likewise.
34047         (mips_register_move_cost): Likewise.
34048         (mips_secondary_reload_class): Likewise.
34049
34050 2014-06-17  Richard Biener  <rguenther@suse.de>
34051
34052         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
34053         (pass_all_optimizations): Move 3rd copy-prop pass from after
34054         fre to before ifcombine/phiopt.
34055
34056 2014-06-17  Richard Biener  <rguenther@suse.de>
34057
34058         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
34059         and allow all blocks to be forwarders.
34060
34061 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
34062
34063         PR target/61483
34064         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
34065         variable 'size'; calculate 'size' right in the front; use
34066         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
34067         pcum->aapcs_stack_words.
34068
34069 2014-06-17  Nick Clifton  <nickc@redhat.com>
34070
34071         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
34072         (umulhi3, mulsidi3, umulsidi3): Likewise.
34073
34074 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
34075
34076         PR middle-end/61508
34077         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
34078         check for section name.
34079
34080 2014-06-17  Richard Biener  <rguenther@suse.de>
34081
34082         * tree-ssa-propagate.c: Include domwalk.h.
34083         (substitute_and_fold): Outline main worker into a domwalker ...
34084         (substitute_and_fold_dom_walker::before_dom_children): ... here.
34085         Schedule stmts we can fully propagate for removal.  Remove
34086         poor-mans DCE.
34087         (substitute_and_fold): Apply a dominator walk to perform
34088         substitution.  Process stmts scheduled for removal here.
34089
34090 2014-06-17  Richard Biener  <rguenther@suse.de>
34091
34092         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
34093         of PHI node moving.
34094
34095 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
34096
34097         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
34098         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
34099         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
34100         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
34101         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
34102         TARGET_HARD_FLOAT.
34103         (get_fpscr) : Likewise.
34104
34105 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
34106
34107         PR rtl-optimization/61325
34108         * lra-constraints.c (valid_address_p): Add forward declaration.
34109         (simplify_operand_subreg): Check address validity before and after
34110         alter_reg of memory subreg.
34111
34112 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
34113
34114         * config/i386/i386.c (decide_alg): Correctly handle
34115         maximum size of stringop algorithm.
34116
34117 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
34118
34119         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
34120
34121 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
34122
34123         PR rtl-optimization/61522
34124         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
34125
34126 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
34127
34128         Revert:
34129         * symtab.c (symtab_node::reset_section): New method.
34130         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
34131         for localization.
34132         * cgraph.h (reset_section): Declare.
34133         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
34134         do not consider comdat locals.
34135         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
34136         for new symbol.
34137         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
34138         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
34139         reset sections of symbols dragged out of the comdats.
34140         (function_and_variable_visibility): Reset sections of
34141         localized symbols.
34142
34143 2014-06-16  Richard Biener  <rguenther@suse.de>
34144
34145         PR tree-optimization/61482
34146         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
34147         [-INF(OVF), +INF(OVF)] range.
34148
34149 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
34150
34151         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
34152         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
34153         handling 32-bit multiplication.
34154
34155 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
34156
34157         PR middle-end/61430
34158         * lra-lives.c (process_bb_lives): Skip creating copy during
34159         insn scan when src/dest has constrained to same regno.
34160
34161 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
34162
34163         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
34164         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
34165
34166 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
34167
34168         * asan.c (check_func): New function.
34169         (maybe_create_ssa_name): Likewise.
34170         (build_check_stmt_with_calls): Likewise.
34171         (use_calls_p): Likewise.
34172         (report_error_func): Change interface.
34173         (build_check_stmt): Allow non-integer lengths; add support
34174         for new parameter.
34175         (asan_instrument): Likewise.
34176         (instrument_mem_region_access): Moved code to build_check_stmt.
34177         (instrument_derefs): Likewise.
34178         (instrument_strlen_call): Likewise.
34179         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
34180         * doc/invoke.texi: Describe new parameter.
34181         * params.def: Define new parameter.
34182         * params.h: Likewise.
34183         * sanitizer.def: Describe new builtins.
34184
34185 2014-06-16  Richard Biener  <rguenther@suse.de>
34186
34187         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
34188         Make all defs available at the end.
34189         (eliminate): If we remove a PHI node schedule cfg-cleanup.
34190
34191 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
34192
34193         PR plugins/45078
34194         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
34195
34196 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
34197
34198         PR bootstrap/61516
34199         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
34200         initialization.  Replace remaining use of uid.
34201
34202 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
34203
34204         * c-family/c-common.c (handle_tls_model_attribute): Use
34205         set_decl_tls_model.
34206         * c-family/c-common.c (handle_tls_model_attribute): Use
34207         set_decl_tls_model.
34208         * cgraph.h (struct varpool_node): Add tls_model.
34209         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
34210         * tree.h (DECL_TLS_MODEL): Update.
34211         (DECL_THREAD_LOCAL_P): Check that variable is static.
34212         (decl_tls_model): Declare.
34213         (set_decl_tls_model): Declare.
34214         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
34215         set symbol prorperties.
34216         (get_emutls_init_templ_addr): Cleanup.
34217         (new_emutls_decl): Update.
34218         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
34219         (lto_input_varpool_node): Likewise.
34220         * lto-streamer-out.c (hash_tree): Likewise.
34221         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
34222         not stream DECL_TLS_MODEL.
34223         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
34224         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
34225
34226 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34227
34228         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
34229
34230 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34231
34232         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
34233         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
34234         lists.
34235         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
34236         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
34237         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
34238         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
34239         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
34240         (df_get_artificial_defs, df_get_artificial_uses)
34241         (df_single_def, df_single_use): Update accordingly.
34242         (df_refs_chain_dump): Take the first element in a linked list as
34243         parameter, rather than a pointer to an array of pointers.
34244         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
34245         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
34246         (df_chain_create_bb_process_use): Likewise.
34247         (df_md_bb_local_compute_process_def): Likewise.
34248         * fwprop.c (process_defs, process_uses): Likewise.
34249         (register_active_defs, update_uses): Likewise.
34250         (forward_propagate_asm): Update for new df_ref linking.
34251         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
34252         (df_null_ref_rec, df_null_mw_rec): Likewise.
34253         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
34254         explicitly.
34255         (df_scan_free_bb_info): Remove check for null artificial_defs.
34256         (df_install_ref_incremental): Adjust for new df_ref linking.
34257         Use a single-element insertion rather than a full sort.
34258         (df_ref_chain_delete_du_chain): Take the first element
34259         in a linked list as parameter, rather than a pointer to an array of
34260         pointers.
34261         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
34262         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
34263         (df_insn_info_delete): Remove check for null defs and call to
34264         df_scan_free_mws_vec.
34265         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
34266         null rather than df_null_*_rec.
34267         (df_insn_rescan_debug_internal): Likewise, and update null
34268         checks in the same way.  Remove check for null defs.
34269         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
34270         Move a single element rather doing a full sort.
34271         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
34272         linking.
34273         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
34274         Initialize df_ref and df_mw_hardreg lists to null rather than
34275         df_null_*_rec.
34276         (df_ref_compare): Take df_refs as parameter, transferring the
34277         old interface to...
34278         (df_ref_ptr_compare): ...this new function.
34279         (df_sort_and_compress_refs): Update accordingly.
34280         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
34281         old interface to...
34282         (df_mw_ptr_compare): ...this new function.
34283         (df_sort_and_compress_mws): Update accordingly.
34284         (df_install_refs, df_install_mws): Return a linked list rather than
34285         an array of pointers.
34286         (df_refs_add_to_chains): Assert that old lists are empty rather
34287         than freeing them.
34288         (df_insn_refs_verify): Don't handle null defs speciailly.
34289         * web.c (union_match_dups): Update for new df_ref linking.
34290
34291 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34292
34293         * df.h (df_ref_create, df_ref_remove): Delete.
34294         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
34295         (df_ref_remove): Likewise.
34296
34297 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34298
34299         * df.h (df_single_def, df_single_use): New functions.
34300         * ira.c (find_moveable_pseudos): Use them.
34301
34302 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34303
34304         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
34305         * df-problems.c (df_note_bb_compute): Use it.
34306         * regstat.c (regstat_bb_compute_ri): Likewise.
34307
34308 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34309
34310         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
34311         * cse.c (cse_extended_basic_block): Use them.
34312         * dce.c (mark_artificial_use): Likewise.
34313         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
34314         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
34315         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
34316         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
34317         (df_simulate_initialize_backwards): Likewise.
34318         (df_simulate_finalize_backwards): Likewise.
34319         (df_simulate_initialize_forwards): Likewise.
34320         (df_md_simulate_artificial_defs_at_top): Likewise.
34321         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
34322         * regrename.c (init_rename_info): Likewise.
34323         * regstat.c (regstat_bb_compute_ri): Likewise.
34324         (regstat_bb_compute_calls_crossed): Likewise.
34325
34326 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
34327
34328         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
34329         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
34330         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
34331         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
34332         * combine.c (create_log_links): Likewise.
34333         * compare-elim.c (find_flags_uses_in_insn): Likewise.
34334         (try_eliminate_compare): Likewise.
34335         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
34336         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
34337         (remove_reg_equal_equiv_notes_for_defs): Likewise.
34338         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
34339         (word_dce_process_block, dce_process_block): Likewise.
34340         * ddg.c (def_has_ccmode_p): Likewise.
34341         * df-core.c (df_bb_regno_first_def_find): Likewise.
34342         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
34343         * df-problems.c (df_rd_simulate_one_insn): Likewise.
34344         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
34345         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
34346         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
34347         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
34348         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
34349         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
34350         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
34351         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
34352         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
34353         * fwprop.c (local_ref_killed_between_p): Likewise.
34354         (all_uses_available_at, free_load_extend): Likewise.
34355         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
34356         * hw-doloop.c (scan_loop): Likewise.
34357         * ifcvt.c (dead_or_predicable): Likewise.
34358         * init-regs.c (initialize_uninitialized_regs): Likewise.
34359         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
34360         (process_bb_node_lives): Likewise.
34361         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
34362         (find_moveable_pseudos): Likewise.
34363         * loop-invariant.c (check_dependencies, record_uses): Likewise.
34364         * recog.c (peep2_find_free_register): Likewise.
34365         * ree.c (get_defs): Likewise.
34366         * regstat.c (regstat_bb_compute_ri): Likewise.
34367         (regstat_bb_compute_calls_crossed): Likewise.
34368         * sched-deps.c (find_inc, find_mem): Likewise.
34369         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
34370         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
34371         * shrink-wrap.c (requires_stack_frame_p): Likewise.
34372         (prepare_shrink_wrap): Likewise.
34373         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
34374         * web.c (union_defs, pass_web::execute): Likewise.
34375         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
34376         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
34377
34378 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
34379
34380         * lra-assign.c (assign_by_spills): Add code to assign vector regs
34381         to inheritance pseudos.
34382         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
34383
34384 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
34385
34386         PR target/61415
34387         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
34388         (BU_MISC_2): Rename to ...
34389         (BU_LDBL128_2): ... this.
34390         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
34391         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
34392         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
34393         RS6000_BTM_LDBL128.
34394         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
34395         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
34396         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
34397         (unpacktf_1): Likewise.
34398         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
34399         (__builtin_longdouble_dw1): Likewise.
34400         * doc/sourcebuild.texi (longdouble128): Document.
34401
34402 2014-06-13  Jeff Law  <law@redhat.com>
34403
34404         PR rtl-optimization/61094
34405         PR rtl-optimization/61446
34406         * ree.c (combine_reaching_defs): Get the mode for the copy from
34407         the extension insn rather than the defining insn.
34408
34409 2014-06-13  Dehao Chen  <dehao@google.com>
34410
34411         * dwarf2out.c (add_linkage_name): Emit more linkage name.
34412
34413 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
34414
34415         * doc/install.texi (--enable-linker-plugin-configure-flags)
34416         (--enable-linker-plugin-flags): Document new flags.
34417
34418 2014-06-13  Martin Jambor  <mjambor@suse.cz>
34419
34420         PR ipa/61186
34421         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
34422         cache_token if returning early.
34423
34424 2014-06-13  Nick Clifton  <nickc@redhat.com>
34425
34426         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
34427         requested alignment is active.
34428         (LABEL_ALIGN): Likewise.
34429         (LOOP_ALIGN): Likewise.
34430
34431 2014-06-13  Richard Biener  <rguenther@suse.de>
34432
34433         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
34434         Rewrite to propagate the VN result into all uses where
34435         possible and to remove stmts becoming dead because of that.
34436         (eliminate): Generalize stmt removal handling, remove in
34437         reverse dominator order to support proper debug stmt
34438         generation.  Update stmts before removing stmts.
34439         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
34440
34441 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34442
34443         PR tree-optimization/61375
34444         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
34445         symbolic number cannot be represented in an uint64_t.
34446         (find_bswap_or_nop_1): Likewise.
34447
34448 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
34449
34450         * symtab.c (symtab_node::reset_section): New method.
34451         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
34452         for localization.
34453         * cgraph.h (reset_section): Declare.
34454         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
34455         do not consider comdat locals.
34456         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
34457         for new symbol.
34458         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
34459         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
34460         reset sections of symbols dragged out of the comdats.
34461         (function_and_variable_visibility): Reset sections of
34462         localized symbols.
34463
34464 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
34465
34466         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
34467         to use symtab and decl_binds_to_current_def_p
34468         * tree-vectorizer.c (increase_alignment): Increase alignment
34469         of alias target, too.
34470
34471 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
34472
34473         PR middle-end/61486
34474         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
34475         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
34476         if outer combined construct is distribute.
34477         (gimplify_omp_for): For OMP_DISTRIBUTE set
34478         gimplify_omp_ctxp->distribute.
34479         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
34480         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
34481         mapping into decl map.
34482
34483 2014-06-12  Jason Merrill  <jason@redhat.com>
34484
34485         * common.opt (fabi-version): Change default to 0.
34486
34487 2014-06-12  Jason Merrill  <jason@redhat.com>
34488
34489         * toplev.c (process_options): Reject -fabi-version=1.
34490
34491 2014-06-12  Jeff Law  <law@redhat.com>
34492
34493         PR tree-optimization/61009
34494         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
34495         value when we stop processing a block due to problematic PHIs.
34496
34497 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
34498
34499         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
34500         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
34501         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
34502         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
34503         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
34504         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
34505         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
34506         are not in the spec.
34507
34508 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
34509
34510         PR target/59843
34511         * config/aarch64/aarch64-modes.def: Add V1DFmode.
34512         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
34513         Support V1DFmode.
34514
34515 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
34516
34517         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
34518
34519 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
34520
34521         PR target/61443
34522         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
34523         loading from address spaces.
34524
34525 2014-06-12  Martin Liska  <mliska@suse.cz>
34526
34527         PR ipa/61462
34528         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
34529         statement is reachable.
34530
34531 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34532
34533         * symtab.c (section_hash): New hash.
34534         (symtab_unregister_node): Clear section before freeing.
34535         (hash_section_hash_entry): New haser.
34536         (eq_sections): New function.
34537         (symtab_node::set_section_for_node): New method.
34538         (set_section_1): Update.
34539         (symtab_node::set_section): Take string instead of tree as parameter.
34540         (symtab_resolve_alias): Update.
34541         * cgraph.h (section_hash_entry_d): New structure.
34542         (section_hash_entry): New typedef.
34543         (cgraph_node): Change comdat_group_ to x_comdat_group,
34544         change section_ to x_section and turn into section_hash_entry;
34545         update accestors; put set_section_for_node offline.
34546         * tree.c (decl_section_name): Turn into string.
34547         (set_decl_section_name): Change parameter to be string.
34548         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
34549         * sdbout.c (sdbout_one_type): Update.
34550         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
34551         * varasm.c (IN_NAMED_SECTION, get_named_section,
34552         resolve_unique_section, hot_function_section, get_named_text_section,
34553         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
34554         make_decl_rtl, default_unique_section): Update.
34555         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
34556         (c6x_elf_unique_section): Update.
34557         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
34558         * config/pa/pa.c (pa_function_section): Update.
34559         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
34560         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
34561         * config/arc/arc.c (arc_in_small_data_p): Update.
34562         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
34563         * config/mcore/mcore.c (mcore_unique_section): Update.
34564         * config/mips/mips.c (mips16_build_function_stub): Update.
34565         (mips16_build_call_stub): Update.
34566         (mips_function_rodata_section): Update.
34567         (mips_in_small_data_p): Update.
34568         * config/score/score.c (score_in_small_data_p): Update.
34569         * config/rx/rx.c (rx_in_small_data): Update.
34570         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
34571         (rs6000_xcoff_asm_named_section): Update.
34572         (rs6000_xcoff_unique_section): Update.
34573         * config/frv/frv.c (frv_string_begins_with): Update.
34574         (frv_in_small_data_p): Update.
34575         * config/v850/v850.c (v850_encode_data_area): Update.
34576         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
34577         (bfin_handle_l1_data_attribute): Update.
34578         (bfin_handle_l2_attribute): Update.
34579         * config/mep/mep.c (mep_unique_section): Update.
34580         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
34581         Update.
34582         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
34583         (h8300_handle_tiny_data_attribute): Update.
34584         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
34585         (m32r_in_small_data_p): Update.
34586         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
34587         * config/i386/i386.c (ix86_in_large_data_p): Update.
34588         * config/i386/winnt.c (i386_pe_unique_section): Update.
34589         * config/darwin.c (darwin_function_section): Update.
34590         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
34591         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34592         (new_emutls_decl): Update.
34593         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
34594         input_varpool_node): Update.
34595         (ead_string_cst): Turn to ...
34596         (read_string): ... this one.
34597         * dwarf2out.c (secname_for_decl): Update.
34598         * asan.c (asan_protect_global): Update.
34599
34600 2014-06-11  DJ Delorie  <dj@redhat.com>
34601
34602         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
34603         cache lines.
34604         * config/rx/rx.c (rx_option_override): Likewise.
34605         (rx_align_for_label): Likewise.
34606
34607         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
34608
34609 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
34610
34611         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
34612         prototype.
34613
34614 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34615
34616         * common.md: New file.
34617         * doc/md.texi: Update description of generic, machine-independent
34618         constraints.
34619         * config/s390/constraints.md (e): Delete.
34620         * Makefile.in (md_file): Include common.md.
34621         * config/m32c/t-m32c (md_file): Likewise.
34622         * genpreds.c (general_mem): New array.
34623         (generic_constraint_letters): Remove constraints now defined by
34624         common.md.
34625         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
34626         Allow the first character to be '<' or '>' as well.
34627         * genoutput.c (general_mem): New array.
34628         (indep_constraints): Remove constraints now defined by common.md.
34629         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
34630         Remove special handling of 'm'.
34631         * ira-costs.c (record_reg_classes): Remove special handling of
34632         constraints now defined by common.md.
34633         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34634         * ira-lives.c (single_reg_class): Likewise.
34635         (ira_implicitly_set_insn_hard_regs): Likewise.
34636         * lra-constraints.c (reg_class_from_constraints): Likewise.
34637         (process_alt_operands, process_address, curr_insn_transform): Likewise.
34638         * postreload.c (reload_cse_simplify_operands): Likewise.
34639         * reload.c (push_secondary_reload, scratch_reload_class)
34640         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34641         * reload1.c (maybe_fix_stack_asms): Likewise.
34642         * targhooks.c (default_secondary_reload): Likewise.
34643         * stmt.c (parse_output_constraint): Likewise.
34644         * recog.c (preprocess_constraints): Likewise.
34645         (constrain_operands, peep2_find_free_register): Likewise.
34646         (asm_operand_ok): Likewise, but add a comment saying why 'o'
34647         must be handled specially.
34648
34649 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34650
34651         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
34652         * genpreds.c (have_const_dbl_constraints): Delete.
34653         (add_constraint): Don't set it.
34654         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
34655         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
34656         constraints using the lookup_constraint logic.
34657         * ira-lives.c (single_reg_class): Likewise.
34658         * ira.c (ira_setup_alts): Likewise.
34659         * lra-constraints.c (process_alt_operands): Likewise.
34660         * recog.c (asm_operand_ok, constrain_operands): Likewise.
34661         * reload.c (find_reloads): Likewise.
34662
34663 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34664
34665         * genpreds.c (const_int_start, const_int_end): New variables.
34666         (choose_enum_order): Output CONST_INT constraints before memory
34667         constraints.
34668         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
34669         Add CT_CONST_INT.
34670         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
34671         * ira.c (ira_setup_alts): Likewise.
34672         * lra-constraints.c (process_alt_operands): Likewise.
34673         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34674         * reload.c (find_reloads): Likewise.
34675
34676 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34677
34678         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
34679         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
34680         * recog.c (preprocess_constraints): Update accordingly.
34681
34682 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34683
34684         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
34685         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
34686         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
34687         * genpreds.c (print_type_tree): New function.
34688         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
34689         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
34690         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
34691         Write out enum constraint_type and get_constraint_type.
34692         * lra-constraints.c (satisfies_memory_constraint_p): Take a
34693         constraint_num rather than a constraint string.
34694         (satisfies_address_constraint_p): Likewise.
34695         (reg_class_from_constraints): Avoid old constraint macros.
34696         (process_alt_operands, process_address_1): Likewise.
34697         (curr_insn_transform): Likewise.
34698         * ira-costs.c (record_reg_classes): Likewise.
34699         (record_operand_costs): Likewise.
34700         * ira-lives.c (single_reg_class): Likewise.
34701         (ira_implicitly_set_insn_hard_regs): Likewise.
34702         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34703         * postreload.c (reload_cse_simplify_operands): Likewise.
34704         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34705         (constrain_operands, peep2_find_free_register): Likewise.
34706         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
34707         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34708         * reload1.c (maybe_fix_stack_asms): Likewise.
34709         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
34710         * targhooks.c (default_secondary_reload): Likewise.
34711         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
34712         to EXTRA_CONSTRAINT_STR.
34713         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
34714
34715 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34716
34717         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
34718         (write_constraint_satisfied_p_array): ...this new function.
34719         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
34720         an array.
34721         (write_insn_preds_c): Update accordingly.
34722
34723 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34724
34725         * genpreds.c (write_lookup_constraint): Rename to...
34726         (write_lookup_constraint_1): ...this.
34727         (write_lookup_constraint_array): New function.
34728         (write_tm_preds_h): Define lookup_constraint as an inline function
34729         that uses write_lookup_constraint_array where possible.
34730         (write_insn_preds_c): Update for the changes above.
34731
34732 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34733
34734         * doc/md.texi (regclass_for_constraint): Rename to...
34735         (reg_class_for_constraint): ...this.
34736         * genpreds.c (num_constraints, enum_order, register_start)
34737         (register_end, satisfied_start, memory_start, memory_end)
34738         (address_start, address_end): New variables.
34739         (add_constraint): Count the number of constraints.
34740         (choose_enum_order): New function.
34741         (write_enum_constraint_num): Iterate over enum_order.
34742         (write_regclass_for_constraint): Rename to...
34743         (write_reg_class_for_constraint_1): ...this and update output
34744         accordingly.
34745         (write_constraint_satisfied_p): Rename to...
34746         (write_constraint_satisfied_p_1): ...this and update output
34747         accordingly.  Do nothing if all extra constraints are register
34748         constraints.
34749         (write_insn_extra_memory_constraint): Delete.
34750         (write_insn_extra_address_constraint): Delete.
34751         (write_range_function): New function.
34752         (write_tm_preds_h): Define constraint_satisfied_p and
34753         reg_class_for_constraint as inline functions that do a range check
34754         before calling the out-of-line function.  Use write_range_function
34755         to implement insn_extra_{register,memory,address}_constraint,
34756         the first of which is new.
34757         (write_insn_preds_c): Update after above changes to write_* functions.
34758         (main): Call choose_enum_order.
34759
34760 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34761
34762         PR tree-optimization/61306
34763         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
34764         expression instead of its size.
34765         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
34766         false to prevent optimization when the result is unpredictable due to
34767         arithmetic right shift of signed type with highest byte is set.
34768         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
34769         (init_symbolic_number): Likewise.
34770         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
34771         when the result is unpredictable due to sign extension.
34772
34773 2014-06-11  Terry Guo  <terry.guo@arm.com>
34774
34775         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
34776         (*thumb1_addsi3): Ditto.
34777         (*thumb_subdi3): Ditto.
34778         (thumb1_subsi3_insn): Ditto.
34779         (*thumb_mulsi3): Ditto.
34780         (*thumb_mulsi3_v6): Ditto.
34781         (*thumb1_andsi3_insn): Ditto.
34782         (thumb1_bicsi3): Ditto.
34783         (*thumb1_iorsi3_insn): Ditto.
34784         (*thumb1_xorsi3_insn): Ditto.
34785         (*thumb1_ashlsi3): Ditto.
34786         (*thumb1_ashrsi3): Ditto.
34787         (*thumb1_lshrsi3): Ditto.
34788         (*thumb1_rotrsi3): Ditto.
34789         (*thumb1_negdi2): Ditto.
34790         (*thumb1_negsi2): Ditto.
34791         (*thumb1_abssi2): Ditto.
34792         (*thumb1_neg_abssi2): Ditto.
34793         (*thumb1_one_cmplsi2): Ditto.
34794         (*thumb1_zero_extendhisi2): Ditto.
34795         (*thumb1_zero_extendqisi2): Ditto.
34796         (*thumb1_zero_extendqisi2_v6): Ditto.
34797         (thumb1_extendhisi2): Ditto.
34798         (thumb1_extendqisi2): Ditto.
34799         (*thumb1_movdi_insn): Ditto.
34800         (*thumb1_movsi_insn): Ditto.
34801         (*thumb1_movhi_insn): Ditto.
34802         (thumb_movhi_clobber): Ditto.
34803         (*thumb1_movqi_insn): Ditto.
34804         (*thumb1_movhf): Ditto.
34805         (*thumb1_movsf_insn): Ditto.
34806         (*thumb_movdf_insn): Ditto.
34807         (movmem12b): Ditto.
34808         (movmem8b): Ditto.
34809         (cbranchqi4): Ditto.
34810         (cbranchsi4_insn): Ditto.
34811         (cbranchsi4_scratch): Ditto.
34812         (*negated_cbranchsi4): Ditto.
34813         (*tbit_cbranch): Ditto.
34814         (*tlobits_cbranch): Ditto.
34815         (*tstsi3_cbranch): Ditto.
34816         (*cbranchne_decr1): Ditto.
34817         (*addsi3_cbranch): Ditto.
34818         (*addsi3_cbranch_scratch): Ditto.
34819         (*thumb_cmpdi_zero): Ditto.
34820         (cstoresi_eq0_thumb1): Ditto.
34821         (cstoresi_ne0_thumb1): Ditto.
34822         (*cstoresi_eq0_thumb1_insn): Ditto.
34823         (*cstoresi_ne0_thumb1_insn): Ditto.
34824         (cstoresi_nltu_thumb1): Ditto.
34825         (cstoresi_ltu_thumb1): Ditto.
34826         (thumb1_addsi3_addgeu): Ditto.
34827         (*thumb_jump): Ditto.
34828         (*call_reg_thumb1_v5): Ditto.
34829         (*call_reg_thumb1): Ditto.
34830         (*call_value_reg_thumb1_v5): Ditto.
34831         (*call_value_reg_thumb1): Ditto.
34832         (*call_insn): Ditto.
34833         (*call_value_insn): Ditto.
34834         (thumb1_casesi_internal_pic): Ditto.
34835         (thumb1_casesi_dispatch): Ditto.
34836         (*thumb1_indirect_jump): Ditto.
34837         (prologue_thumb1_interwork): Ditto.
34838         (*epilogue_insns): Ditto.
34839         (consttable_1): Ditto.
34840         (consttable_2): Ditto.
34841         (tablejump): Ditto.
34842         (*thumb1_tablejump): Ditto.
34843         (thumb_eh_return): Ditto.
34844         (define_peephole2): Two of them are thumb1 only and got moved into
34845         new file thumb1.md.
34846         (define_split): Six of them are thumb1 only and got moved into new
34847         file thumb1.md.
34848         * config/arm/thumb1.md: New file comprised of above thumb1 only
34849         patterns.
34850
34851 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34852
34853         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34854         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34855         dependencies.
34856         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34857         (aarch64_crc_builtin_datum): New struct.
34858         (aarch64_crc_builtin_data): New.
34859         (aarch64_init_crc32_builtins): New function.
34860         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34861         (aarch64_crc32_expand_builtin): New.
34862         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34863         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34864         __ARM_FEATURE_CRC32 when appropriate.
34865         (TARGET_CRC32): Define.
34866         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34867         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34868         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34869         (aarch64_<crc_variant>): New pattern.
34870         * config/aarch64/arm_acle.h: New file.
34871         * config/aarch64/iterators.md (CRC): New int iterator.
34872         (crc_variant, crc_mode): New int attributes.
34873         * doc/aarch64-acle-intrinsics.texi: New file.
34874         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34875         Include aarch64-acle-intrinsics.texi.
34876
34877 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
34878
34879         * tree-vect-data-refs.c (vect_grouped_store_supported): New
34880         check for stores group of length 3.
34881         (vect_permute_store_chain): New permutations for stores group of
34882         length 3.
34883         * tree-vect-stmts.c (vect_model_store_cost): Change cost
34884         of vec_perm_shuffle for the new permutations.
34885
34886 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34887
34888         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34889         table rewriting temporarily on targets not supporting ONE_ONLY.
34890
34891 2014-06-11  Richard Biener  <rguenther@suse.de>
34892
34893         PR middle-end/61437
34894         Revert
34895         2014-06-04  Richard Biener  <rguenther@suse.de>
34896
34897         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34898         TREE_PUBLIC and DECL_EXTERNAL decls.
34899
34900 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34901
34902         * varasm.c (set_implicit_section): New function.
34903         (resolve_unique_section): Use it to set implicit section
34904         for aliases, too.
34905         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34906         (default_function_section): Likewise.
34907         (decl_binds_to_current_def_p): Constify argument.
34908         * varasm.h (decl_binds_to_current_def_p): Update prototype.
34909         * asan.c (asan_protect_global): Use
34910         symtab_get_node (decl)->implicit_section.
34911         * symtab.c (dump_symtab_base): Dump implicit sections.
34912         (verify_symtab_base): Verify sanity of sectoins and comdats.
34913         (symtab_resolve_alias): Alias share the section of its target.
34914         (set_section_1): New function.
34915         (symtab_node::set_section): Move here, recurse to aliases.
34916         (verify_symtab): Check for duplicated symtab lists.
34917         * tree-core.h (implicit_section_name_p): Remove.
34918         * tree-vect-data-refs.c: Include varasm.h.
34919         (vect_can_force_dr_alignment_p): Fix conditional on when
34920         decl bints to current definition; use
34921         symtab_get_node (decl)->implicit_section.
34922         * cgraph.c (cgraph_make_node_local_1): Fix section set.
34923         * cgraph.h (struct symtab_node): Add implicit_section.
34924         (set_section): Rename to ...
34925         (set_section_for_node): ... this one.
34926         (set_section): Declare.
34927         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34928         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34929         input_overwrite_node, input_varpool_node): Stream implicit_section.
34930         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34931         removal; it will fail in LTO.
34932
34933 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34934
34935         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34936         Change second alternative type to f_mcr.
34937         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34938         and 12th alternatives' types to f_mcr and f_mrc.
34939         (*movdi_aarch64): Same for 12th and 13th alternatives.
34940         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34941         (aarch64_movtilow_tilow): Change type to fmov.
34942
34943 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
34944
34945         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34946         (aarch64_save_or_restore_callee_save_registers): Fix layout.
34947
34948 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34949
34950         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34951         New expander.
34952         (aarch64_sqrdmulh_lane<mode>): Likewise.
34953         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34954         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34955         (aarch64_sqdmulh_laneq<mode>): New expander.
34956         (aarch64_sqrdmulh_laneq<mode>): Likewise.
34957         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34958         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34959         (aarch64_sqdmulh_lane<mode>): New expander.
34960         (aarch64_sqrdmulh_lane<mode>): Likewise.
34961         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34962         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34963         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34964         (aarch64_sqdmlal_laneq<mode>): Likewise.
34965         (aarch64_sqdmlsl_lane<mode>): Likewise.
34966         (aarch64_sqdmlsl_laneq<mode>): Likewise.
34967         (aarch64_sqdmlal2_lane<mode>): Likewise.
34968         (aarch64_sqdmlal2_laneq<mode>): Likewise.
34969         (aarch64_sqdmlsl2_lane<mode>): Likewise.
34970         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34971         (aarch64_sqdmull_lane<mode>): Likewise.
34972         (aarch64_sqdmull_laneq<mode>): Likewise.
34973         (aarch64_sqdmull2_lane<mode>): Likewise.
34974         (aarch64_sqdmull2_laneq<mode>): Likewise.
34975
34976 2014-06-10  Richard Biener  <rguenther@suse.de>
34977
34978         PR tree-optimization/61438
34979         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34980         (eliminate_dom_walker::before_dom_children): Only try to inhibit
34981         insertion of IVs if running PRE.
34982         (eliminate): Adjust.
34983         (pass_pre::execute): Likewise.
34984         (pass_fre::execute): Likewise.
34985
34986 2014-06-10  Richard Biener  <rguenther@suse.de>
34987
34988         PR middle-end/61456
34989         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34990         Do not use the main variant for the type comparison.
34991         (ncr_compar): Likewise.
34992         (nonoverlapping_component_refs_p): Likewise.
34993
34994 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34995
34996         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34997         REG_CFA_RESTORE mode.
34998
34999 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
35000
35001         * config/i386/i386.c (expand_vec_perm_pblendv): New.
35002         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
35003         expand_vec_perm_pblendv.
35004
35005 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35006
35007         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
35008         available.
35009         Simplify description of __crc32d and __crc32cd intrinsics.
35010         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
35011         availability.
35012
35013 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
35014
35015         PR lto/61334
35016         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
35017         * config.in: Regenerate.
35018         * configure: Likewise.
35019
35020 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
35021
35022         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
35023         and public vars.
35024         (intersect_static_var_sets): Remove.
35025         (propagate): Do not prune local statics.
35026
35027 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
35028
35029         PR fortran/60928
35030         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
35031         Set lastprivate_firstprivate even if omp_private_outer_ref
35032         langhook returns true.
35033         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
35034         langhook, call unshare_expr on new_var and call
35035         build_outer_var_ref to get the last argument.
35036
35037 2014-06-10  Marek Polacek  <polacek@redhat.com>
35038
35039         PR c/60988
35040         * doc/extend.texi: Add cindex for transparent_union.
35041
35042 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35043
35044         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
35045         init_symbolic_number ().
35046
35047 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
35048
35049         PR middle-end/61141
35050         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
35051         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
35052         (verify_rtl_sharing): Likewise.
35053
35054 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
35055
35056         PR c++/54442
35057         * tree.c (build_qualified_type): Use a canonical type for
35058         TYPE_CANONICAL.
35059
35060 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35061
35062         * config/arm/arm-modes.def: Remove XFmode.
35063
35064 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
35065
35066         PR target/61062
35067         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
35068         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
35069         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
35070         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
35071         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
35072         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
35073         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
35074         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
35075         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
35076
35077 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
35078
35079         * tree-core.h (tree_decl_with_vis): Remove section_name.
35080
35081 2014-06-09  Kito Cheng  <kito@0xlab.org>
35082
35083         * ira.c (ira): Don't call init_caller_save if LRA enabled
35084         since LRA use its own infrastructure to handle that.
35085
35086 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
35087
35088         * symtab.c (dump_symtab_base): Update dumping.
35089         (symtab_make_decl_local): Clear only DECL_COMDAT.
35090         * tree-vect-data-refs.c (Check that variable is static before
35091         tampering with sections.
35092         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
35093         (cgraph_create_virtual_clone): Likewise.
35094         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
35095         (decl_section_name, set_decl_section_name): New accessors.
35096         (find_decls_types_r): Do not walk section name
35097         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
35098         (decl_comdat_group, decl_comdat_group_id): Constify.
35099         (decl_section_name, set_decl_section_name): Update.
35100         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
35101         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
35102         (cgraph_make_node_local_1): Clear section and comdat group.
35103         * cgraph.h (set_comdat_group): Sanity check.
35104         (get_section, set_section): New.
35105         * ipa-comdats.c (ipa_comdats): Use get_section.
35106         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
35107         * lto-streamer-out.c: Do not follow section names.
35108         * c-family/c-common.c (handle_section_attribute): Update.
35109         * lto-cgraph.c (lto_output_node): Output section.
35110         (lto_output_varpool_node): Likewise.
35111         (read_comdat_group): Rename to ...
35112         (read_identifier): ... this one.
35113         (read_string_cst): New function.
35114         (input_node, input_varpool_node): Input section names.
35115         * tree-emutls.c (get_emutls_init_templ_addr): Update.
35116         (new_emutls_decl): Update.
35117         (secname_for_decl): Check section names only of static vars.
35118         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
35119         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
35120         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
35121         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
35122         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
35123         * config/mcore/mcore.c (mcore_unique_section): Likewise.
35124         * config/mips/mips.c (mips16_build_function_stub): Likewise.
35125         * config/v850/v850.c (v850_insert_attributes): Likewise.
35126         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
35127         Likewise.
35128         (h8300_handle_tiny_data_attribute): Likewise.
35129         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
35130         (bfin_handle_l2_attribute): Likewise.
35131
35132 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
35133
35134         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
35135         remove static initializer.
35136
35137 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
35138
35139         * varasm.c (use_blocks_for_decl_p): Check symbol table
35140         instead of alias attribute.
35141         (place_block_symbol): Recurse on aliases.
35142
35143 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
35144
35145         * ipa-visibility.c: Include varasm.h
35146         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
35147
35148 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
35149
35150         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
35151         outputting aliases.
35152
35153 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
35154
35155         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
35156         from test_insn into GGC space escape via SET_SRC.
35157
35158 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
35159
35160         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
35161         call statement, if any.
35162         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
35163         statements, if any.  Tidy up.
35164
35165 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
35166
35167         PR target/61431
35168         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
35169         iterators, VSX_D that handles 64-bit types, and VSX_LE that
35170         handles swapping the two 64-bit double words on little endian
35171         systems.  Include V1TImode and optionally TImode in VSX_LE so that
35172         these types are properly swapped.  Change all of the insns and
35173         splits that do the 64-bit swaps to use VSX_LE.
35174         (vsx_le_perm_load_<mode>): Likewise.
35175         (vsx_le_perm_store_<mode>): Likewise.
35176         (splitters for little endian memory operations): Likewise.
35177         (vsx_xxpermdi2_le_<mode>): Likewise.
35178         (vsx_lxvd2x2_le_<mode>): Likewise.
35179         (vsx_stxvd2x2_le_<mode>): Likewise.
35180
35181 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
35182
35183         PR target/61423
35184         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
35185         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
35186         and corresponding splitters.  Zero extend general register
35187         or memory input operand to XMM temporary.  Enable for
35188         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
35189         (floatunssi<mode>2): Update expander predicate.
35190
35191 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
35192
35193         PR rtl-optimization/61325
35194         * lra-constraints.c (process_address_1): Check scale equal to one
35195         to prevent transformation: base + scale * index => base + new_reg.
35196
35197 2014-06-06  Richard Biener  <rguenther@suse.de>
35198
35199         PR tree-optimization/59299
35200         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
35201         a def operand.
35202         (nearest_common_dominator_of_uses): Likewise.
35203         (statement_sink_location): Adjust.  Support sinking loads.
35204
35205 2014-06-06  Martin Jambor  <mjambor@suse.cz>
35206
35207         * ipa-prop.c (get_place_in_agg_contents_list): New function.
35208         (build_agg_jump_func_from_list): Likewise.
35209         (determine_known_aggregate_parts): Renamed to
35210         determine_locally_known_aggregate_parts.  Moved some functionality
35211         to the two functions above, removed bound checks.
35212
35213 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
35214
35215         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
35216         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
35217         (aarch64_progress_pointer): Likewise.
35218         (aarch64_copy_one_part_and_move_pointers): Likewise.
35219         (aarch64_expand_movmen): Likewise.
35220         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
35221         * config/aarch64/aarch64.md (movmem<mode>): New.
35222
35223 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
35224
35225         * targhooks.c (default_add_stmt_cost): Call target specific
35226         hook instead of default one.
35227
35228 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35229
35230         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
35231         endianness instead of host endianness.
35232         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
35233         comments.
35234
35235 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
35236
35237         PR debug/53927
35238         * function.c (instantiate_decls): Process the saved static chain.
35239         (expand_function_start): If not optimizing, save the static chain
35240         onto the stack.
35241         * tree-nested.c (convert_all_function_calls): Always create the static
35242         chain for nested functions if not optimizing.
35243
35244 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
35245
35246         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
35247
35248 2014-06-06  Richard Biener  <rguenther@suse.de>
35249
35250         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
35251         (construct_init_block): Likewise.
35252         (construct_exit_block): Likewise.
35253         (pass_expand::execute): Likewise.
35254         * graphite.c (graphite_transforms): Replace check for current_loops
35255         with a check for > 1 loops.
35256         (pass_graphite_transforms::execute): Adjust.
35257         * ipa-split.c (split_function): Remove check for current_loops.
35258         * omp-low.c (expand_parallel_call): Likewise.
35259         (expand_omp_for_init_counts): Likewise.
35260         (extract_omp_for_update_vars): Likewise.
35261         (expand_omp_for_generic): Likewise.
35262         (expand_omp_sections): Likewise.
35263         (expand_omp_target): Likewise.
35264         * tracer.c (tail_duplicate): Likewise.
35265         (pass_tracer::execute): Likewise.
35266         * trans-mem.c (expand_transaction): Likewise.
35267         * tree-complex.c (expand_complex_div_wide): Likewise.
35268         * tree-eh.c (lower_resx): Likewise.
35269         (cleanup_empty_eh_merge_phis): Likewise.
35270         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
35271         current_loops with a check for > 1 loops.
35272         (pass_predcom::execute): Adjust.
35273         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
35274         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
35275         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
35276         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
35277         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
35278         * tree-switch-conversion.c (process_switch): Likewise.
35279         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
35280         * tree-vrp.c (vrp_visit_phi_node): Likewise.
35281         (execute_vrp): Likewise.
35282         * ubsan.c (ubsan_expand_null_ifn): Likewise.
35283
35284 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
35285
35286         * rtl.h (insn_location): Declare.
35287         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
35288         with UNKNOWN_LOCATION.
35289         * emit-rtl.c (insn_location): New function.
35290         * final.c (notice_source_line): Check that the instruction has a
35291         location before retrieving it and use insn_location.
35292         * modulo-sched.c (loop_single_full_bb_p): Likewise.
35293         * print-rtl.c (print_rtx): Likewise.
35294
35295 2014-06-06  Richard Biener  <rguenther@suse.de>
35296
35297         * passes.def: Move 2nd VRP pass before phi-only-cprop.
35298
35299 2014-06-06  Christian Bruel  <christian.bruel@st.com>
35300
35301         PR tree-optimization/43934
35302         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
35303         cost.
35304
35305 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
35306
35307         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
35308         return NO_REGS for extra address and memory constraints.  Handle
35309         operands that match (or are equivalent to something that matches)
35310         extra constant constraints.  Ignore other non-register operands.
35311
35312 2014-06-06  Alan Modra  <amodra@gmail.com>
35313
35314         PR target/61300
35315         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
35316         * doc/tm.texi: Regenerate.
35317         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
35318         Use throughout in place of REG_PARM_STACK_SPACE.
35319         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
35320         "incoming" param.  Pass to rs6000_function_parms_need_stack.
35321         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
35322         prototype_p when incoming.  Use function decl when incoming
35323         to handle K&R style functions.
35324         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
35325         (INCOMING_REG_PARM_STACK_SPACE): Define.
35326
35327 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
35328
35329         PR target/52472
35330         * cfgexpand.c (expand_debug_expr): Use address space of nested
35331         TREE_TYPE for ADDR_EXPR and MEM_REF.
35332
35333 2014-06-05  Jeff Law  <law@redhat.com>
35334
35335         PR tree-optimization/61289
35336         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
35337         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
35338         looking for those which match LHS.  All callers changed.
35339         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
35340         parameters and code which manipulated them.  All callers changed.
35341         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
35342         and DST_MAP parameters.  Simplify invalidation code by just calling
35343         invalidate_equivalences.  All callers changed.
35344         (thread_across_edge): Simplify now that we don't need to maintain
35345         the map of equivalences to invalidate.
35346
35347 2014-06-05  Kai Tietz  <ktietz@redhat.com>
35348             Richard Henderson  <rth@redhat.com>
35349
35350         PR target/46219
35351         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
35352         checking for !TARGET_X32.
35353         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
35354         (sibcall_intern): New define_insn, plus required peepholes.
35355         (sibcall_pop_intern): Likewise.
35356         (sibcall_value_intern): Likewise.
35357         (sibcall_value_pop_intern): Likewise.
35358
35359 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
35360
35361         * tree-inline.c (tree_function_versioning): Check DF info existence
35362         before accessing it.
35363
35364 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35365
35366         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
35367         frame_size.
35368         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
35369         aarch64_frame hard_fp_offset and frame_size.
35370         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
35371         frame_size; remove original_frame_size.
35372         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
35373         (aarch64_initial_elimination_offset): Remove frame_size and
35374         offset.  Use aarch64_frame frame_size.
35375
35376 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35377             Jiong Wang  <jiong.wang@arm.com>
35378             Renlin  <renlin.li@arm.com>
35379
35380         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
35381         initialization of R30 offset.  Update offset.  Iterate core
35382         regisers upto X30.  Remove X29, X30 specific code.
35383
35384 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35385             Jiong Wang  <jiong.wang@arm.com>
35386
35387         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
35388         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
35389         (aarch64_register_saved_on_entry): Adjust test.
35390
35391 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35392
35393         * config/aarch64/aarch64.h (machine_function): Move
35394         saved_varargs_size from here...
35395         (aarch64_frame): ... to here.
35396
35397         * config/aarch64/aarch64.c (aarch64_expand_prologue)
35398         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
35399         (aarch64_initial_elimination_offset)
35400         (aarch64_setup_incoming_varargs): Adjust location of
35401         saved_varargs_size.
35402
35403 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35404
35405         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
35406         layout comment.
35407
35408 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
35409             Prachi Godbole  <Prachi.Godbole@imgtec.com>
35410
35411         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
35412         mips32r5 entry to use PROCESSOR_P5600.
35413         * config/mips/mips-tables.opt: Regenerate.
35414         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
35415         * config/mips/mips.c (mips_fmadd_bypass): New function.
35416         (mips_rtx_cost_data): Add costs for p5600.
35417         (mips_issue_rate): Add support for p5600.
35418         (mips_multipass_dfa_lookahead): Likewise.
35419         * config/mips/mips.h (TUNE_P5600): New define.
35420         (TUNE_MACC_CHAINS): Add TUNE_P5600.
35421         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
35422         * config/mips/mips.md: Include p5600.md.
35423         (processor): Add p5600.
35424         * config/mips/p5600.md: New file.
35425
35426 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
35427
35428         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
35429         * config/i386/predicates.md (palignr_operand): New.
35430         Indicates if permutation is suitable for palignr instruction.
35431
35432 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
35433
35434         PR tree-optimization/61319
35435         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
35436         stmt belongs to loop.
35437
35438 2014-06-05  Richard Biener  <rguenther@suse.de>
35439
35440         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
35441         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
35442         (lookup_tmp_var): Adjust.
35443         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
35444
35445 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35446
35447         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
35448
35449 2014-06-05  Marek Polacek  <polacek@redhat.com>
35450
35451         PR c/49706
35452         * doc/invoke.texi: Document -Wlogical-not-parentheses.
35453
35454 2014-06-04  Tom de Vries  <tom@codesourcery.com>
35455
35456         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
35457         CONST_INT.
35458
35459 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
35460
35461         PR tree-optimization/61385
35462         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
35463
35464 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
35465
35466         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
35467         changed to use fatal_error.
35468         (main): Ensure lto_wrapper_cleanup is run atexit.
35469
35470 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35471
35472         * lra-constraints.c (valid_address_p): Move earlier in file.
35473         (address_eliminator): New structure.
35474         (satisfies_memory_constraint_p): New function.
35475         (satisfies_address_constraint_p): Likewise.
35476         (process_alt_operands, process_address, curr_insn_transform): Use them.
35477
35478 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35479
35480         * lra-int.h (lra_static_insn_data): Make operand_alternative a
35481         const pointer.
35482         (target_lra_int, default_target_lra_int, this_target_lra_int)
35483         (op_alt_data): Delete.
35484         * lra.h (lra_init): Delete.
35485         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
35486         (init_insn_code_data_once): Remove op_alt_data handling.
35487         (finish_insn_code_data_once): Likewise.
35488         (init_op_alt_data): Delete.
35489         (get_static_insn_data): Initialize operand_alternative to null.
35490         (free_insn_recog_data): Cast operand_alternative before freeing it.
35491         (setup_operand_alternative): Take the operand_alternative as
35492         parameter and assume it isn't already cached in the static
35493         insn data.
35494         (lra_set_insn_recog_data): Update accordingly.
35495         (lra_init): Delete.
35496         * ira.c (ira_init): Don't call lra_init.
35497         * target-globals.h (this_target_lra_int): Declare.
35498         (target_globals): Remove lra_int.
35499         (restore_target_globals): Update accordingly.
35500         * target-globals.c: Don't include lra-int.h.
35501         (default_target_globals, save_target_globals): Remove lra_int.
35502
35503 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35504
35505         * recog.h (operand_alternative): Convert reg_class, reject,
35506         matched and matches into bitfields.
35507         (preprocess_constraints): New overload.
35508         (preprocess_insn_constraints): New function.
35509         (preprocess_constraints): Take the insn as parameter.
35510         (recog_op_alt): Change into a pointer.
35511         (target_recog): Add x_op_alt.
35512         * recog.c (asm_op_alt): New variable.
35513         (recog_op_alt): Change into a pointer.
35514         (preprocess_constraints): New overload, replacing the old function
35515         definition with one that doesn't use global state.
35516         (preprocess_insn_constraints): New function.
35517         (preprocess_constraints): Use them.  Take the insn as parameter.
35518         Use asm_op_alt for asms.
35519         (recog_init): Free existing x_op_alt entries.
35520         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
35521         pointer const.
35522         (make_early_clobber_and_input_conflicts): Likewise.
35523         (process_bb_node_lives): Pass the insn to process_constraints.
35524         * reg-stack.c (check_asm_stack_operands): Likewise.
35525         (subst_asm_stack_regs): Likewise.
35526         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
35527         * regrename.c (build_def_use): Likewise.
35528         * sched-deps.c (sched_analyze_insn): Likewise.
35529         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
35530         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
35531         (note_invalid_constants): Likewise.
35532         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
35533         (ix86_legitimate_combined_insn): Make operand_alternative pointer
35534         const.
35535
35536 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35537
35538         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
35539         * ira-lives.c (check_and_make_def_conflict): Check for disabled
35540         alternatives.
35541         (make_early_clobber_and_input_conflicts): Likewise.
35542         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
35543
35544 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35545
35546         * recog.h (alternative_class): New function.
35547         (which_op_alt): Return a const recog_op_alt.
35548         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
35549         (subst_asm_stack_regs): Likewise.
35550         * config/arm/arm.c (note_invalid_constants): Likewise.
35551         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
35552         the operand_alternative; use alternative class instead.
35553         * sel-sched.c (get_reg_class): Likewise.
35554         * regrename.c (build_def_use): Likewise.
35555         (hide_operands, restore_operands, record_out_operands): Update type
35556         accordingly.
35557
35558 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
35559
35560         * recog.h (recog_op_alt): Convert to a flat array.
35561         (which_op_alt): New function.
35562         * recog.c (recog_op_alt): Convert to a flat array.
35563         (preprocess_constraints): Update accordingly, grouping all
35564         operands of the same alternative together, rather than the
35565         other way around.
35566         * ira-lives.c (check_and_make_def_conflict): Likewise.
35567         (make_early_clobber_and_input_conflicts): Likewise.
35568         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
35569         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
35570         (subst_asm_stack_regs): Likewise.
35571         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
35572         * regrename.c (hide_operands, record_out_operands): Likewise.
35573         (build_def_use): Likewise.
35574         * sel-sched.c (get_reg_class): Likewise.
35575         * config/arm/arm.c (note_invalid_constants): Likewise.
35576
35577 2014-06-04  Jason Merrill  <jason@redhat.com>
35578
35579         PR c++/51253
35580         PR c++/61382
35581         * gimplify.c (gimplify_arg): Non-static.
35582         * gimplify.h: Declare it.
35583
35584 2014-06-04  Richard Biener  <rguenther@suse.de>
35585
35586         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
35587         TREE_PUBLIC and DECL_EXTERNAL decls.
35588
35589 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
35590
35591         * regcprop.c (copyprop_hardreg_forward_1): Account for
35592         HARD_REGNO_CALL_PART_CLOBBERED.
35593
35594 2014-06-04  Richard Biener  <rguenther@suse.de>
35595
35596         * configure.ac: Check whether the underlying type of int64_t
35597         is long or long long.
35598         * configure: Regenerate.
35599         * config.in: Likewise.
35600         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
35601         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35602
35603 2014-06-04  Richard Biener  <rguenther@suse.de>
35604
35605         PR tree-optimization/60098
35606         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
35607         we hit a kill.
35608         (dse_optimize_stmt): Simplify, now that we found a kill
35609         earlier.
35610
35611 2014-06-04  Richard Biener  <rguenther@suse.de>
35612
35613         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
35614         of accesses with non-invariant address.
35615
35616 2014-06-04  Martin Liska  <mliska@suse.cz>
35617
35618         * cgraph.h (cgraph_make_wrapper): New function introduced.
35619         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
35620         * ipa-inline.h (inline_analyze_function): The function is global.
35621         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
35622
35623 2014-06-04  Martin Liska  <mliska@suse.cz>
35624
35625         * tree.h (private_lookup_attribute_starting): New function.
35626         (lookup_attribute_starting): Likewise.
35627         * tree.c (private_lookup_attribute_starting): Likewise.
35628
35629 2014-06-04  Martin Liska  <mliska@suse.cz>
35630
35631         * cgraph.h (expand_thunk): New argument added.
35632         (address_taken_from_non_vtable_p): New global function.
35633         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
35634         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
35635         * cgraphunit.c (analyze_function): Likewise.
35636         (assemble_thunks_and_aliases): Argument added to call.
35637         (expand_thunk): New argument forces to produce GIMPLE thunk.
35638
35639 2014-06-04  Martin Liska  <mliska@suse.cz>
35640
35641         * coverage.h (coverage_compute_cfg_checksum): Argument added.
35642         * coverage.c (coverage_compute_cfg_checksum): Likewise.
35643         * profile.c (branch_prob): Likewise.
35644
35645 2014-06-04  Martin Jambor  <mjambor@suse.cz>
35646
35647         PR ipa/61340
35648         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
35649         handler for switch on an ipa_ref_use enum.
35650         * ipa-reference.c (analyze_function): Likewise.
35651
35652 2014-06-04  Kai Tietz  <ktietz@redhat.com>
35653
35654         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
35655         from old call-instruction.
35656
35657 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
35658
35659         * config/aarch64/aarch64.c (aarch64_classify_address)
35660         (aarch64_legitimize_reload_address): Support full addressing modes
35661         for vector modes.
35662         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
35663         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
35664
35665 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35666
35667         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
35668         for OP0.
35669
35670 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35671
35672         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
35673         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
35674
35675 2014-06-03  Kai Tietz  <ktietz@redhat.com>
35676
35677         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
35678         for 64-bit ms-abi.
35679
35680 2014-06-03  Dehao Chen  <dehao@google.com>
35681
35682         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
35683         the same loop.
35684
35685 2014-06-03  Marek Polacek  <polacek@redhat.com>
35686
35687         PR c/60439
35688         * doc/invoke.texi: Document -Wswitch-bool.
35689         * function.c (stack_protect_epilogue): Cast controlling expression of
35690         the switch to int.
35691         * gengtype.c (walk_type): Generate switch expression with its
35692         controlling expression cast to int.
35693
35694 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
35695
35696         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
35697         and attiny841.
35698         * config/avr/avr-tables.opt: Regenerate.
35699         * config/avr/t-multilib: Regenerate.
35700         * doc/avr-mmcu.texi: Regenerate.
35701
35702 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
35703             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
35704
35705         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
35706         (ata6617c, ata664251): Add new avr35 devices.
35707         (ata6612c): Add new avr4 device.
35708         (ata6613c, ata6614q): Add new avr5 devices.
35709         * config/avr/avr-tables.opt: Regenerate.
35710         * config/avr/t-multilib: Regenerate.
35711         * doc/avr-mmcu.texi: Regenerate.
35712
35713 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35714
35715         * gcc/config/aarch64/aarch64-builtins.c
35716         (aarch64_types_binop_ssu_qualifiers): New static data.
35717         (TYPES_BINOP_SSU): Define.
35718         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
35719         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
35720         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
35721         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
35722         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
35723         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
35724         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
35725         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
35726         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
35727         suffix to builtin function name, remove cast.
35728         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
35729         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
35730         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
35731
35732 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35733
35734         * gcc/config/aarch64/aarch64-builtins.c
35735         (aarch64_types_binop_uus_qualifiers,
35736         aarch64_types_shift_to_unsigned_qualifiers,
35737         aarch64_types_unsigned_shiftacc_qualifiers): Define.
35738         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
35739         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
35740         sqshlu_n, uqshl_n): Update qualifiers.
35741         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
35742         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
35743         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
35744         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
35745         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
35746         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
35747         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
35748         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
35749         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
35750         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
35751         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
35752         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
35753         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
35754         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
35755         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
35756         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
35757         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
35758         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
35759         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
35760         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
35761         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
35762         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
35763         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
35764         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
35765         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
35766         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
35767         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
35768
35769 2014-06-03  Teresa Johnson  <tejohnson@google.com>
35770
35771         * tree-sra.c (modify_function): Record caller nodes after rebuild.
35772
35773 2014-06-02  Jason Merrill  <jason@redhat.com>
35774
35775         PR c++/61020
35776         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
35777
35778 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35779
35780         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
35781         location == 0.
35782
35783 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35784
35785         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
35786         New pattern.
35787         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
35788         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
35789         * config/aarch64/iterators.md (REVERSE): New iterator.
35790         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
35791         (rev_op): New int_attribute.
35792         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
35793         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
35794         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
35795         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
35796         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
35797         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
35798         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
35799         Replace temporary __asm__ with __builtin_shuffle.
35800
35801 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35802
35803         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
35804         mips64r5.
35805         * config/mips/mips-tables.opt: Regenerate.
35806         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
35807         to use mips_isa_rev rather than ISA_MIPS32R2.
35808         * config/mips/mips.h (ISA_MIPS32R3): New define.
35809         (ISA_MIPS32R5): New define.
35810         (ISA_MIPS64R3): New define.
35811         (ISA_MIPS64R5): New define.
35812         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
35813         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
35814         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
35815         and mips64r5.
35816         (MIPS_ISA_SYNCI_SPEC): Likewise.
35817         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
35818         (LINK_SPEC): Added mips32r3 and mips32r5.
35819         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
35820         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
35821         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
35822         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
35823         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
35824         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
35825         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
35826
35827 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35828
35829         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35830         options.
35831         * config/mips/mips.opt (mxpa): New option.
35832         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35833         assembler.
35834
35835 2014-06-03  Martin Jambor  <mjambor@suse.cz>
35836
35837         PR ipa/61160
35838         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35839         thunks.
35840
35841 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35842
35843         PR tree-optimization/61328
35844         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35845         initialization from find_bswap_or_nop_1.
35846         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35847         in source_expr2 before using the size value the function sets. Also
35848         make use of init_symbolic_number () in both the old place and
35849         find_bswap_or_nop_load () to avoid reading uninitialized memory when
35850         doing recursion in the GIMPLE_BINARY_RHS case.
35851
35852 2014-06-03  Richard Biener  <rguenther@suse.de>
35853
35854         PR tree-optimization/61383
35855         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35856         stmts can't trap.
35857
35858 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
35859
35860         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35861         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35862         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35863         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35864         in this file.
35865         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35866         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35867         * system.h: ...here and make it unconditional.
35868         * target.def (conditional_register_usage): Mention
35869         define_register_constraint instead of old-style constraint macros.
35870         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35871         * doc/tm.texi: Regenerate.
35872         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35873         protected by !USE_MD_CONSTRAINTS.
35874         * config/frv/frv.md: Remove quote from old version of documentation.
35875         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35876         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35877         CONST_DOUBLE_OK_FOR_LETTER.
35878         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35879
35880 2014-06-02  Andrew Pinski  <apinski@cavium.com>
35881
35882         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35883         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35884         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35885         file whose name depends on -mabi= and -mbig-endian.
35886         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35887         Handle LP64 better and handle ilp32 too.
35888         (MULTILIB_OPTIONS): Delete.
35889         (MULTILIB_DIRNAMES): Delete.
35890
35891 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
35892
35893         * expr.h: Remove prototypes of functions defined in builtins.c.
35894         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35895         Remove prototypes of functions defined in builtins.c.
35896         * builtins.h: Update prototype list to include all exported functions.
35897         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35898         no_c99_libc_has_function): Move to targhooks.c
35899         (build_string_literal, build_call_expr_loc_array,
35900         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35901         to tree.c.
35902         (expand_builtin_object_size, fold_builtin_object_size): Make static.
35903         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35904         no_c99_libc_has_function): Relocate from builtins.c.
35905         * tree.c: Include builtins.h.
35906         (build_call_expr_loc_array, build_call_expr_loc_vec,
35907         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35908         from builtins.c.
35909         * fold-const.h (fold_fma): Move prototype to builtins.h.
35910         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35911         * asan.c: Include builtins.h.
35912         * cfgexpand.c: Likewise.
35913         * convert.c: Likewise.
35914         * emit-rtl.c: Likewise.
35915         * except.c: Likewise.
35916         * expr.c: Likewise.
35917         * fold-const.c: Likewise.
35918         * gimple-fold.c: Likewise.
35919         * gimple-ssa-strength-reduction.c: Likewise.
35920         * gimplify.c: Likewise.
35921         * ipa-inline.c: Likewise.
35922         * ipa-prop.c: Likewise.
35923         * lto-streamer-out.c: Likewise.
35924         * stmt.c: Likewise.
35925         * tree-inline.c: Likewise.
35926         * tree-object-size.c: Likewise.
35927         * tree-sra.c: Likewise.
35928         * tree-ssa-ccp.c: Likewise.
35929         * tree-ssa-forwprop.c: Likewise.
35930         * tree-ssa-loop-ivcanon.c: Likewise.
35931         * tree-ssa-loop-ivopts.c: Likewise.
35932         * tree-ssa-math-opts.c: Likewise.
35933         * tree-ssa-reassoc.c: Likewise.
35934         * tree-ssa-threadedge.c: Likewise.
35935         * tree-streamer-in.c: Likewise.
35936         * tree-vect-data-refs.c: Likewise.
35937         * tree-vect-patterns.c: Likewise.
35938         * tree-vect-stmts.c: Likewise.
35939         * config/aarch64/aarch64.c: Likewise.
35940         * config/alpha/alpha.c: Likewise.
35941         * config/arc/arc.c: Likewise.
35942         * config/arm/arm.c: Likewise.
35943         * config/avr/avr.c: Likewise.
35944         * config/bfin/bfin.c: Likewise.
35945         * config/c6x/c6x.c: Likewise.
35946         * config/cr16/cr16.c: Likewise.
35947         * config/cris/cris.c: Likewise.
35948         * config/epiphany/epiphany.c: Likewise.
35949         * config/fr30/fr30.c: Likewise.
35950         * config/frv/frv.c: Likewise.
35951         * config/h8300/h8300.c: Likewise.
35952         * config/i386/i386.c: Likewise.
35953         * config/i386/winnt.c: Likewise.
35954         * config/ia64/ia64.c: Likewise.
35955         * config/iq2000/iq2000.c: Likewise.
35956         * config/lm32/lm32.c: Likewise.
35957         * config/m32c/m32c.c: Likewise.
35958         * config/m32r/m32r.c: Likewise.
35959         * config/m68k/m68k.c: Likewise.
35960         * config/mcore/mcore.c: Likewise.
35961         * config/mep/mep.c: Likewise.
35962         * config/microblaze/microblaze.c: Likewise.
35963         * config/mips/mips.c: Likewise.
35964         * config/mmix/mmix.c: Likewise.
35965         * config/mn10300/mn10300.c: Likewise.
35966         * config/moxie/moxie.c: Likewise.
35967         * config/msp430/msp430.c: Likewise.
35968         * config/nds32/nds32.c: Likewise.
35969         * config/pa/pa.c: Likewise.
35970         * config/pdp11/pdp11.c: Likewise.
35971         * config/picochip/picochip.c: Likewise.
35972         * config/rl78/rl78.c: Likewise.
35973         * config/rs6000/rs6000.c: Likewise.
35974         * config/rx/rx.c: Likewise.
35975         * config/s390/s390.c: Likewise.
35976         * config/score/score.c: Likewise.
35977         * config/sh/sh.c: Likewise.
35978         * config/sparc/sparc.c: Likewise.
35979         * config/spu/spu.c: Likewise.
35980         * config/stormy16/stormy16.c: Likewise.
35981         * config/tilegx/tilegx.c: Likewise.
35982         * config/tilepro/tilepro.c: Likewise.
35983         * config/v850/v850.c: Likewise.
35984         * config/vax/vax.c: Likewise.
35985         * config/xtensa/xtensa.c: Likewise.
35986
35987 2014-06-02  Jeff Law  <law@redhat.com>
35988
35989         PR rtl-optimization/61094
35990         * ree.c (combine_reaching_defs): Do not reextend an insn if it
35991         was marked as do_no_reextend.  If a copy is needed to eliminate
35992         an extension, then mark it as do_not_reextend.
35993
35994 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35995
35996         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35997
35998 2014-06-02  Richard Henderson  <rth@redhat.com>
35999
36000         PR target/61336
36001         * config/alpha/alpha.c (print_operand_address): Allow symbolic
36002         addresses inside asms.  Use output_operand_lossage instead of
36003         gcc_unreachable.
36004
36005 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
36006
36007         PR target/61239
36008         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
36009         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
36010
36011 2014-06-02  Tom de Vries  <tom@codesourcery.com>
36012
36013         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
36014         case that x has VOIDmode.
36015
36016 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
36017
36018         * varasm.c (copy_constant): Delete function.
36019         (build_constant_desc): Don't call it.
36020
36021 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36022
36023         PR target/61154
36024         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
36025         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
36026         with immediate_operand.
36027
36028 2014-06-02  Andreas Schwab  <schwab@suse.de>
36029
36030         * config/ia64/ia64.c
36031         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
36032         pending_data_specs first.
36033
36034 2014-06-02  Richard Biener  <rguenther@suse.de>
36035
36036         PR tree-optimization/61378
36037         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
36038         valueized_anything.
36039
36040 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
36041
36042         * config/i386/constraints.md (Bw): Rename from 'w'.
36043         (Bz): Rename from 'z'.
36044         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
36045
36046 2014-06-01  Kai Tietz  <ktietz@redhat.com>
36047
36048         PR target/61377
36049         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
36050         * config/i386/i386.md (sibcall_insn_operand): Use Bs
36051         instead of m constraint.
36052
36053 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
36054
36055         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
36056         a separate alternative where the scratch operand 2 is marked as
36057         early clobber.
36058
36059 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
36060
36061         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
36062         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
36063         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
36064         and __builtins_arm_get_fpscr.
36065         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
36066         __builtins_arm_get_fpscr.
36067         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
36068         __builtins_arm_ldfpscr.
36069         (arm_atomic_assign_expand_fenv): New function.
36070         * config/arm/vfp.md (set_fpscr): New pattern.
36071         (get_fpscr) : Likewise.
36072         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
36073         VUNSPEC_SET_FPSCR.
36074         * doc/extend.texi (AARCH64 Built-in Functions) : Document
36075         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
36076
36077 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
36078
36079         * asan.c (report_error_func): Add SLOW_P argument, use
36080         BUILT_IN_ASAN_*_N if set.
36081         (build_check_stmt): Likewise.
36082         (instrument_derefs): If T has insufficient alignment,
36083         force same handling as for odd sizes.
36084
36085         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
36086         BUILT_IN_ASAN_REPORT_STORE_N): New.
36087         * asan.c (struct asan_mem_ref): Change access_size type to
36088         HOST_WIDE_INT.
36089         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
36090         update_mem_ref_hash_table): Likewise.
36091         (asan_mem_ref_hasher::hash): Hash in a HWI.
36092         (report_error_func): Change size_in_bytes argument to HWI.
36093         Use *_N builtins if size_in_bytes is larger than 16 or not power of
36094         two.
36095         (build_shadow_mem_access): New function.
36096         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
36097         Handle size_in_bytes not power of two or larger than 16.
36098         (instrument_derefs): Don't give up if size_in_bytes is not
36099         power of two or is larger than 16.
36100
36101 2014-05-30  Kai Tietz  <ktietz@redhat.com>
36102
36103         PR target/60104
36104         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
36105         for sibling-tail-calls.
36106         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
36107         to its use.
36108         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
36109         (sibcall_insn_operand): Add check for sibcall_memory_operand.
36110
36111 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
36112
36113         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
36114         * config/avr/avr-tables.opt: Regenerate.
36115         * config/avr/t-multilib: Regenerate.
36116         * doc/avr-mmcu.texi: Regenerate.
36117
36118 2014-05-30  Ian Lance Taylor  <iant@google.com>
36119
36120         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
36121         target("sse").
36122
36123 2014-05-30  Tom de Vries  <tom@codesourcery.com>
36124
36125         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
36126         Redefine as true.
36127
36128 2014-05-30  Tom de Vries  <tom@codesourcery.com>
36129
36130         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
36131         * lra.c (initialize_lra_reg_info_element): Add init of
36132         actual_call_used_reg_set field.
36133         (lra): Call lra_create_live_ranges before lra_inheritance for
36134         -fuse-caller-save.
36135         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
36136         -fuse-caller-save.
36137         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
36138         instead of call_used_reg_set for -fuse-caller-save.
36139         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
36140
36141 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36142
36143         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
36144         to mov_imm.
36145         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
36146
36147 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
36148
36149         * ira.c (ira_get_dup_out_num): Check for output operands at
36150         the start of the loop.  Handle cases where an included alternative
36151         follows an excluded one.
36152
36153 2014-05-29  Mike Stump  <mikestump@comcast.net>
36154
36155         PR debug/61352
36156         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
36157         post ld passes when lto is used.
36158
36159 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
36160
36161         PR rtl-optimization/61325
36162         * lra-constraints.c (process_address): Rename to process_address_1.
36163         (process_address): New function.
36164
36165 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
36166
36167         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
36168         TYPES_BINOPV): New static data.
36169         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
36170         New builtin.
36171         * config/aarch64/aarch64-simd.md (aarch64_ext,
36172         aarch64_im_lane_boundsi): New patterns.
36173         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
36174         patterns for EXT.
36175         (aarch64_evpc_ext): New function.
36176
36177         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
36178
36179         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
36180         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
36181         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
36182         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
36183         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
36184
36185 2014-05-29  Tom de Vries  <tom@codesourcery.com>
36186
36187         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
36188
36189 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
36190             Richard Sandiford  <rdsandiford@googlemail.com>
36191
36192         * arm/iterators.md (shiftable_ops): New code iterator.
36193         (t2_binop0, arith_shift_insn): New code attributes.
36194         * arm/predicates.md (shift_nomul_operator): New predicate.
36195         * arm/arm.md (insn_enabled): Delete.
36196         (enabled): Remove insn_enabled test.
36197         (*arith_shiftsi): Delete.  Replace with ...
36198         (*<arith_shift_insn>_multsi): ... new pattern.
36199         (*<arith_shift_insn>_shiftsi): ... new pattern.
36200         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
36201
36202 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
36203             Tom de Vries  <tom@codesourcery.com>
36204
36205         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
36206         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
36207         clobber.
36208         (mips_split_call): Use POST_CALL_TMP_REG.
36209         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
36210
36211 2014-05-29  Tom de Vries  <tom@codesourcery.com>
36212
36213         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
36214         with #ifdef STACK_REGS.
36215
36216 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
36217
36218         * varasm.c (get_variable_section): Walk aliases.
36219         (place_block_symbol): Walk aliases.
36220
36221 2014-05-28  Tom de Vries  <tom@codesourcery.com>
36222
36223         Revert:
36224         2014-05-28  Tom de Vries  <tom@codesourcery.com>
36225
36226         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
36227         * lra.c (initialize_lra_reg_info_element): Add init of
36228         actual_call_used_reg_set field.
36229         (lra): Call lra_create_live_ranges before lra_inheritance for
36230         -fuse-caller-save.
36231         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
36232         -fuse-caller-save.
36233         * lra-constraints.c (need_for_call_save_p): Use
36234         actual_call_used_reg_set instead of call_used_reg_set for
36235         -fuse-caller-save.
36236         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
36237
36238 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
36239
36240         * doc/md.texi: Document that the % constraint character must
36241         be at the beginning of the string.
36242         * genoutput.c (validate_insn_alternatives): Check that '=',
36243         '+' and '%' only appear at the beginning of a constraint.
36244         * ira.c (commutative_constraint_p): Delete.
36245         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
36246         at the start of the string.
36247         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
36248         duplicate '='s.
36249         * config/arm/neon.md (bicdi3_neon): Likewise.
36250         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
36251         (slt_si, sltu_si): Likewise.
36252         * config/vax/vax.md (sbcdi3): Likewise.
36253         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
36254         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
36255         (mul64): Move '%' to beginning of constraint.
36256         * config/arm/arm.md (*xordi3_insn): Likewise.
36257         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
36258         (xorsi3): Likewise.
36259
36260 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
36261
36262         * doc/md.texi: Document the restrictions on the "enabled" attribute.
36263
36264 2014-05-28  Jason Merrill  <jason@redhat.com>
36265
36266         PR c++/47202
36267         * cgraph.h (symtab_node::get_comdat_group_id): New.
36268         * cgraphunit.c (analyze_functions): Call it.
36269         * symtab.c (dump_symtab_node): Likewise.
36270         * tree.c (decl_comdat_group_id): New.
36271         * tree.h: Declare it.
36272         * lto-streamer-out.c (write_symbol): Use it.
36273         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
36274
36275 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36276
36277         PR bootstrap/PR61146
36278         * wide-int.cc: Do not include longlong.h when compiling with clang.
36279
36280 2014-05-28  Richard Biener  <rguenther@suse.de>
36281
36282         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
36283         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
36284         (vrp_visit_assignment_or_call): Print less vertical space.
36285         (vrp_visit_stmt): Likewise.
36286         (vrp_visit_phi_node): Likewise.  For a PHI argument with
36287         VR_VARYING range consider recording it as copy.
36288
36289 2014-05-28  Richard Biener  <rguenther@suse.de>
36290
36291         Revert
36292         2014-05-28  Richard Biener  <rguenther@suse.de>
36293
36294         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
36295
36296 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36297
36298         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
36299         sufficiently aligned and an offset is used at the same time.
36300         (expand_expr_real_1): Likewise.
36301
36302 2014-05-28  Richard Biener  <rguenther@suse.de>
36303
36304         PR middle-end/61045
36305         * fold-const.c (fold_comparison): When folding
36306         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
36307         the sign of the remaining constant operand stays the same.
36308
36309 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
36310
36311         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
36312         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
36313         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
36314         to the assembler.
36315         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
36316         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
36317         (m32bit-doubles) Likewise.
36318         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
36319         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
36320         option for RL78.
36321
36322 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36323
36324         * configure.ac ($gcc_cv_ld_clearcap): New test.
36325         * configure: Regenerate.
36326         * config.in: Regenerate.
36327         * config/sol2.opt (mclear-hwcap): New option.
36328         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
36329         * config/sol2-clearcap.map: Moved here from
36330         testsuite/gcc.target/i386/clearcap.map.
36331         * config/sol2-clearcapv2.map: Move here from
36332         gcc.target/i386/clearcapv2.map.
36333         * config/t-sol2 (install): Depend on install-clearcap-map.
36334         (install-clearcap-map): New target.
36335         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
36336         -mclear-hwcap.
36337
36338 2014-05-28  Richard Biener  <rguenther@suse.de>
36339
36340         * hwint.h (*_HALF_WIDE_INT*): Move to ...
36341         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
36342         ... here and remove the rest.
36343         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
36344
36345 2014-05-28  Richard Biener  <rguenther@suse.de>
36346
36347         PR tree-optimization/61335
36348         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
36349         new range fails, drop to varying.
36350
36351 2014-05-28  Olivier Hainque  <hainque@adacore.com>
36352
36353         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
36354         (CPP_SPEC): Add entry for -mcpu=8548.
36355         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
36356         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
36357
36358 2014-05-28  Tom de Vries  <tom@codesourcery.com>
36359
36360         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
36361         * lra.c (initialize_lra_reg_info_element): Add init of
36362         actual_call_used_reg_set field.
36363         (lra): Call lra_create_live_ranges before lra_inheritance for
36364         -fuse-caller-save.
36365         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
36366         -fuse-caller-save.
36367         * lra-constraints.c (need_for_call_save_p): Use
36368         actual_call_used_reg_set instead of call_used_reg_set for
36369         -fuse-caller-save.
36370         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
36371
36372 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36373             Tom de Vries  <tom@codesourcery.com>
36374
36375         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
36376         to gccoptlist.
36377         (@item -fuse-caller-save): New item.
36378
36379 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36380             Tom de Vries  <tom@codesourcery.com>
36381
36382         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
36383         OPT_fuse_caller_save.
36384
36385 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36386             Tom de Vries  <tom@codesourcery.com>
36387
36388         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
36389         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
36390         get_call_reg_set_usage.
36391         * resource.c (mark_set_resources, mark_target_live_regs): Use
36392         get_call_reg_set_usage.
36393         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
36394         field.
36395         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
36396         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
36397         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
36398         * ira-build.c (ira_create_allocno): Init
36399         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
36400         (create_cap_allocno, propagate_allocno_info)
36401         (propagate_some_info_from_allocno)
36402         (copy_info_to_removed_store_destinations): Handle
36403         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
36404         * ira-costs.c (ira_tune_allocno_costs): Use
36405         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
36406
36407 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
36408             Tom de Vries  <tom@codesourcery.com>
36409
36410         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
36411         and function_used_regs_valid fields.
36412         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
36413         find_all_hard_reg_sets.
36414         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
36415         (get_call_reg_set_usage): New function.
36416         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
36417         * regs.h (get_call_reg_set_usage): Declare.
36418
36419 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
36420
36421         PR libgcc/61152
36422         * config/dbx.h (License): Add Runtime Library Exception.
36423         * config/newlib-stdint.h (License): Same.
36424         * config/rtems.h (License): Same
36425         * config/initfini-array.h (License): Same
36426         * config/v850/v850.h (License): Same.
36427         * config/v850/v850-opts.h (License): Same
36428         * config/v850/rtems.h (License): Same.
36429
36430 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
36431
36432         PR target/61044
36433         * doc/extend.texi (Local Labels): Note that label differences are
36434         not supported for AVR.
36435
36436 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
36437             Olivier Hainque  <hainque@adacore.com>
36438
36439         * rtl.h (set_for_reg_notes): Declare.
36440         * emit-rtl.c (set_for_reg_notes): New function.
36441         (set_unique_reg_note): Use it.
36442         * optabs.c (add_equal_note): Likewise
36443
36444 2014-05-27  Andrew Pinski  <apinski@cavium.com>
36445
36446         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
36447         Use <w> for the register in assembly template.
36448         (stack_protect_test): Use the mode of operands[0] for the result.
36449         (stack_protect_test_<mode>): Use <w> for the register
36450         in assembly template.
36451
36452 2014-05-27  DJ Delorie  <dj@redhat.com>
36453
36454         * config/rx/rx.c (add_vector_labels): New.
36455         (rx_output_function_prologue): Call it.
36456         (rx_handle_func_attribute): Don't require empty arguments.
36457         (rx_handle_vector_attribute): New.
36458         (rx_attribute_table): Add "vector" attribute.
36459         * doc/extend.texi (interrupt, vector): Document new/changed
36460         RX-specific attributes.
36461
36462         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
36463
36464 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
36465
36466         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
36467         predicate to detect a negative quotient.
36468
36469 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
36470
36471         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
36472         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
36473         Add X - Y CMP 0 to X CMP Y transformation.
36474         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
36475
36476 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
36477
36478         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
36479         before printing.
36480
36481 2014-05-27  Steve Ellcey  <sellcey@mips.com>
36482
36483         * config/mips/mips.c: Add include of cgraph.h.
36484
36485 2014-05-27  Richard Biener  <rguenther@suse.de>
36486
36487         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
36488
36489 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
36490
36491         PR libgcc/61152
36492         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
36493         * config/arm/arm-cores.def (License): Same.
36494         * config/arm/arm-opts.h (License): Same.
36495         * config/arm/aout.h (License): Same.
36496         * config/arm/bpabi.h (License): Same.
36497         * config/arm/elf.h (License): Same.
36498         * config/arm/linux-elf.h (License): Same.
36499         * config/arm/linux-gas.h (License): Same.
36500         * config/arm/netbsd-elf.h (License): Same.
36501         * config/arm/uclinux-eabi.h (License): Same.
36502         * config/arm/uclinux-elf.h (License): Same.
36503         * config/arm/vxworks.h (License): Same.
36504
36505 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36506
36507         * config/arm/neon.md (neon_bswap<mode>): New pattern.
36508         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
36509         (arm_init_neon_builtins): Handle NEON_BSWAP.
36510         Define required type nodes.
36511         (arm_expand_neon_builtin): Handle NEON_BSWAP.
36512         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
36513         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
36514         * config/arm/iterators.md (VDQHSD): New mode iterator.
36515
36516 2014-05-27  Richard Biener  <rguenther@suse.de>
36517
36518         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
36519         Try using literal operands when comparing value-ranges failed.
36520
36521 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
36522
36523         * ira.c (commutative_operand): Adjust for change to recog_data.
36524         [Missing from previous commit.]
36525
36526 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
36527
36528         * system.h (TEST_BIT): New macro.
36529         * recog.h (alternative_mask): New type.
36530         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
36531         (recog_data_d): Replace alternative_enabled_p array with
36532         enabled_alternatives.
36533         (target_recog): New structure.
36534         (default_target_recog, this_target_recog): Declare.
36535         (get_enabled_alternatives, recog_init): Likewise.
36536         * recog.c (default_target_recog, this_target_recog): New variables.
36537         (get_enabled_alternatives): New function.
36538         (extract_insn): Use it.
36539         (recog_init): New function.
36540         (preprocess_constraints, constrain_operands): Adjust for change to
36541         recog_data.
36542         * postreload.c (reload_cse_simplify_operands): Likewise.
36543         * reload.c (find_reloads): Likewise.
36544         * ira-costs.c (record_reg_classes): Likewise.
36545         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
36546         all alternatives after a disabled one would be skipped.
36547         (ira_implicitly_set_insn_hard_regs): Likewise.
36548         * ira.c (ira_setup_alts): Adjust for change to recog_data.
36549         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
36550         with enabled_alternatives.
36551         * lra.c (free_insn_recog_data): Update accordingly.
36552         (lra_update_insn_recog_data): Likewise.
36553         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
36554         * lra-constraints.c (process_alt_operands): Likewise.  Handle
36555         only_alternative as part of the enabled mask.
36556         * target-globals.h (this_target_recog): Declare.
36557         (target_globals): Add a recog field.
36558         (restore_target_globals): Restore this_target_recog.
36559         * target-globals.c: Include recog.h.
36560         (default_target_globals): Initialize recog field.
36561         (save_target_globals): Likewise.
36562         * reginfo.c (reinit_regs): Call recog_init.
36563         * toplev.c (backend_init_target): Likewise.
36564
36565 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
36566
36567         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
36568         rather than any named insn's code.
36569
36570 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
36571
36572         PR libgcc/61152
36573         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
36574         * config/arm/arm-cores.def (License): Same.
36575
36576 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
36577
36578         * tree.h (decl_comdat_group): Declare.
36579         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
36580         * tree.c (decl_comdat_group): Here.
36581
36582 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
36583
36584         PR rtl-optimization/61222
36585         * combine.c (simplify_shift_const_1): When moving a PLUS outside
36586         the shift, truncate the PLUS operand to the result mode.
36587
36588 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
36589
36590         PR target/61271
36591         * config/i386/i386.c (ix86_rtx_costs)
36592         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
36593         Fix condition.
36594
36595 2014-05-26  Martin Jambor  <mjambor@suse.cz>
36596
36597         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
36598         subreg uses.
36599
36600 2014-05-26  Richard Biener  <rguenther@suse.de>
36601
36602         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
36603         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
36604         Provide specializations.
36605         (wi::int_traits <HOST_WIDE_INT>,
36606         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
36607
36608 2014-05-26  Alan Modra  <amodra@gmail.com>
36609
36610         PR target/61098
36611         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
36612         params and return a bool.  Remove dead code.  Update comment.
36613         Assert we have a const_int source.  Remove bogus code from
36614         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
36615         handling of constants > 2G and reg_equal note, from..
36616         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
36617         return value.  Update comment.  If we can, use a new pseudo
36618         for intermediate calculations.
36619         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
36620         prototype.
36621         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
36622         call to rs6000_emit_set_const in splitter.
36623         (movdi_internal64+2, +3): Likewise.
36624
36625 2014-05-26  Richard Biener  <rguenther@suse.de>
36626
36627         * system.h: Define __STDC_FORMAT_MACROS before
36628         including inttypes.h.
36629         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
36630         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
36631         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
36632         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
36633         HOST_WIDEST_INT_C): Remove.
36634         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
36635         if C99 inttypes.h is not available.
36636         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
36637         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
36638         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
36639         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
36640         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
36641         (struct output_info): Likewise.
36642         (print_statistics): Adjust.
36643         (dump_bitmap_statistics): Likewise.
36644         * bt-load.c (migrate_btr_defs): Print with PRId64.
36645         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
36646         (MAX_SAFE_MULTIPLIER): Adjust.
36647         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
36648         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
36649         dump_cgraph_node): Likewise.
36650         * final.c (dump_basic_block_info): Likewise.
36651         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
36652         * gcov.c (format_gcov): Likewise.
36653         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
36654         for calculation.
36655         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
36656         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
36657         (inline_small_functions, dump_overall_stats, dump_inline_stats):
36658         Use PRId64 for dumping.
36659         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
36660         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
36661         (add_allocno_hard_regs): Adjust.
36662         * loop-doloop.c (doloop_modify): Print using PRId64.
36663         * loop-iv.c (inverse): Compute in uint64_t.
36664         (determine_max_iter, iv_number_of_iterations): Likewise.
36665         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
36666         Print using PRId64.
36667         * lto-streamer-out.c (write_symbol): Use uint64_t.
36668         * mcf.c (CAP_INFINITY): Use int64_t maximum.
36669         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
36670         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
36671         * modulo-sched.c (const_iteration_count): Use int64_t.
36672         (sms_schedule): Dump using PRId64.
36673         * predict.c (dump_prediction): Likewise.
36674         * pretty-print.h (pp_widest_integer): Remove.
36675         * profile.c (get_working_sets, is_edge_inconsistent,
36676         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
36677         * tree-pretty-print.c (pp_double_int): Remove case handling
36678         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
36679         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
36680         and adjust users.
36681         (pass_optimize_bswap::execute): Remove restriction on hosts.
36682         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
36683         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
36684         * tree.c (widest_int_cst_value): Remove.
36685         * tree.h (widest_int_cst_value): Likewise.
36686         * value-prof.c (dump_histogram_value): Print using PRId64.
36687         * gengtype.c (main): Also inject int64_t.
36688         * ggc-page.c (struct max_alignment): Use int64_t.
36689         * alloc-pool.c (struct allocation_object_def): Likewise.
36690         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
36691         for computation.
36692         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
36693         * doc/tm.texi: Regenerated.
36694         * gengtype-lex.l (IWORD): Handle [u]int64_t.
36695         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
36696         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
36697         mmix_output_register_setting): Use [u]int64_t in prototypes.
36698         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
36699         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
36700         mmix_output_octa, mmix_output_shifted_value): Adjust.
36701         (mmix_intval): Adjust.  Remove unreachable case.
36702         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
36703
36704 2014-05-26  Richard Biener  <rguenther@suse.de>
36705
36706         * configure.ac: Drop __int64 type check.  Insist that we
36707         found uint64_t and int64_t.
36708         * hwint.h (HOST_BITS_PER___INT64): Remove.
36709         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
36710         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
36711         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
36712         (HOST_WIDEST_FAST_INT): Remove __int64 case.
36713         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
36714         for dst_q_src_df_rms_cdt.
36715         * configure: Regenerate.
36716         * config.in: Likewise.
36717
36718 2014-05-26  Michael Tautschnig  <mt@debian.org>
36719
36720         PR target/61249
36721         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
36722         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
36723
36724 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36725
36726         PR rtl-optimization/61278
36727         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
36728
36729 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36730
36731         PR rtl-optimization/61220
36732         Part of PR rtl-optimization/61225
36733         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
36734         insn; skip split_edge for a block with only one successor.
36735
36736 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36737
36738         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
36739         for variables.
36740
36741 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36742
36743         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
36744         (update_vtable_references): New function.
36745         (function_and_variable_visibility): Rewrite also vtable initializers.
36746         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
36747
36748 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36749
36750         * ggc.h (ggc_grow): New function.
36751         * ggc-none.c (ggc_grow): New function.
36752         * ggc-page.c (ggc_grow): Likewise.
36753
36754 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36755
36756         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
36757         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
36758         comdat_can_be_unshared_p, cgraph_externally_visible_p,
36759         varpool_externally_visible_p, can_replace_by_local_alias,
36760         update_visibility_by_resolution_info, function_and_variable_visibility,
36761         pass_data_ipa_function_and_variable_visibility,
36762         make_pass_ipa_function_and_variable_visibility,
36763         whole_program_function_and_variable_visibility,
36764         pass_data_ipa_whole_program_visibility,
36765         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
36766         * cgraph.h (cgraph_local_node_p): Declare.
36767         * ipa-visibility.c: New file.
36768         * Makefile.in (OBJS): Add ipa-visiblity.o
36769
36770 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36771
36772         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
36773         that var decl is available.
36774
36775 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36776
36777         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
36778         symtab_node pointer.
36779         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
36780         (find_decls_types_r): Do not walk COMDAT_GROUP.
36781         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
36782         * varasm.c (make_decl_one_only): Use set_comdat_group;
36783         create node if needed.
36784         * ipa-inline-transform.c (save_inline_function_body): Update
36785         way we decl->symtab mapping.
36786         * symtab.c (symtab_hash, hash_node, eq_node
36787         symtab_insert_node_to_hashtable): Remove.
36788         (symtab_register_node): Update.
36789         (symtab_unregister_node): Update.
36790         (symtab_get_node): Reimplement as inline function.
36791         (symtab_add_to_same_comdat_group): Update.
36792         (symtab_dissolve_same_comdat_group_list): Update.
36793         (dump_symtab_base): Update.
36794         (verify_symtab_base): Update.
36795         (symtab_make_decl_local): Update.
36796         (fixup_same_cpp_alias_visibility): Update.
36797         (symtab_nonoverwritable_alias): Update.
36798         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
36799         * ipa.c (update_visibility_by_resolution_info): UPdate.
36800         * bb-reorder.c: Include cgraph.h
36801         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
36802         with comdat groups.
36803         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
36804         * cgraph.c (cgraph_get_create_node): Update.
36805         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
36806         and comdat_group_.
36807         (symtab_get_node): Make inline.
36808         (symtab_insert_node_to_hashtable): Remove.
36809         (symtab_can_be_discarded): Update.
36810         (decl_comdat_group): New function.
36811         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
36812         Update.
36813         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
36814         comdat group name.
36815         (read_comdat_group): New function.
36816         (input_node, input_varpool_node): Use it.
36817         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
36818         comdat groups.
36819         * mips.c (mips_start_unique_function): Likewise.
36820         (ix86_code_end): Likewise.
36821         (rs6000_code_end): Likweise.
36822         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
36823
36824 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36825
36826         * gengtype-state.c (fatal_reading_state): Bring offline.
36827         * optabs.c (widening_optab_handler): Bring offline.
36828         * optabs.h (widening_optab_handler): Likewise.
36829         * final.c (get_attr_length_1): Likewise.
36830
36831 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36832
36833         * sched-int.h (sd_iterator_cond): Manually tail recurse.
36834
36835 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36836
36837         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36838         (ppc440-compare): Include shift with dot.
36839         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36840         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36841         without dot.
36842         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36843         without dot.
36844         (e6500_sfx2): Include it.
36845         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36846         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36847         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36848         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36849         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36850         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36851         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36852         *lshiftrt_internal1le, *lshiftrt_internal1be,
36853         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36854         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36855         *rotldi3_internal10le, *rotldi3_internal10be,
36856         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36857         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36858         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36859         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36860         define_insns): Use type "shift" in the appropriate alternatives.
36861
36862 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36863
36864         * config/rs6000/rs6000.md (type): Add "logical".  Delete
36865         "fast_compare".
36866         (dot): Adjust comment.
36867         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36868         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36869         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36870         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36871         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36872         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36873         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36874         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36875
36876         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36877         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36878         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36879         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36880         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36881         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36882         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36883         * config/rs6000/8540.md (ppc8540_su): Adjust.
36884         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36885         cell-cmp-microcoded): Adjust.
36886         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36887         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36888         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36889         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36890         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36891         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36892         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36893         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36894         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36895         Adjust.
36896         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36897         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36898         Adjust.  Adjust comment.
36899         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36900         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36901
36902 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36903
36904         * config/rs6000/rs6000.md (type): Add "add".
36905         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36906         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36907         define_insns): Use it.
36908         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36909
36910         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36911         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36912         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36913         * config/rs6000/601.md (ppc601-integer): Adjust.
36914         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36915         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36916         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36917         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36918         * config/rs6000/8540.md (ppc8540_su): Adjust.
36919         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36920         cell-cmp-microcoded): Adjust.
36921         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36922         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36923         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36924         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36925         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36926         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36927         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36928         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36929         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36930         Adjust.
36931         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36932         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36933         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36934         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36935
36936 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36937
36938         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36939         "delayed_compare", "var_delayed_compare".
36940         (var_shift): New attribute.
36941         (cell_micro): Adjust.
36942         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36943         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36944         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36945         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36946         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36947         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36948         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36949         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36950         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36951         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36952         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36953         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36954         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36955         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36956         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36957         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36958         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36959         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36960         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36961         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36962         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36963         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36964         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36965         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36966         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36967
36968         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36969         * config/rs6000/440.md (ppc440-integer): Adjust.
36970         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36971         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36972         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36973         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36974         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36975         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36976         * config/rs6000/8540.md (ppc8540_su): Adjust.
36977         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36978         cell-cmp-microcoded): Adjust.
36979         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36980         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36981         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36982         e500mc64_delayed): Adjust.
36983         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36984         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36985         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36986         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36987         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36988         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36989         power6-delayed-compare, power6-var-delayed-compare): Adjust.
36990         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36991         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36992         Adjust comment.
36993         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36994         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36995
36996 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36997
36998         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
36999         (bits): New mode_attr.
37000         (idiv_ldiv): Delete mode_attr.
37001         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
37002         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
37003         rs6000_adjust_priority, is_nonpipeline_insn,
37004         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
37005
37006         * config/rs6000/40x.md (ppc403-idiv): Adjust.
37007         * config/rs6000/440.md (ppc440-idiv): Adjust.
37008         * config/rs6000/476.md (ppc476-idiv): Adjust.
37009         * config/rs6000/601.md (ppc601-idiv): Adjust.
37010         * config/rs6000/603.md (ppc603-idiv): Adjust.
37011         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
37012         ppc620-ldiv): Adjust.
37013         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
37014         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
37015         * config/rs6000/8540.md (ppc8540_divide): Adjust.
37016         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
37017         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
37018         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
37019         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
37020         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
37021         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
37022         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
37023         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
37024         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
37025         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
37026         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
37027         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
37028         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
37029         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
37030         * config/rs6000/titan.md (titan_fxu_div): Adjust.
37031
37032 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
37033
37034         * config/rs6000/rs6000.md (type): Delete "insert_word",
37035         "insert_dword".  Add "insert".
37036         (size): Update comment.
37037         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
37038         insn_must_be_first_in_group): Adjust.
37039         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
37040         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
37041         *insvsi_internal6, insvdi_internal): Adjust.
37042
37043         * config/rs6000/40x.md (ppc403-integer): Adjust.
37044         * config/rs6000/440.md (ppc440-integer): Adjust.
37045         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
37046         * config/rs6000/601.md (ppc601-integer): Adjust.
37047         * config/rs6000/603.md (ppc603-integer): Adjust.
37048         * config/rs6000/6xx.md (ppc604-integer): Adjust.
37049         * config/rs6000/7450.md (ppc7450-integer): Adjust.
37050         * config/rs6000/7xx.md (ppc750-integer): Adjust.
37051         * config/rs6000/8540.md (ppc8540_su): Adjust.
37052         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
37053         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
37054         * config/rs6000/e500mc.md (e500mc_su): Adjust.
37055         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
37056         * config/rs6000/e5500.md (e5500_sfx): Adjust.
37057         * config/rs6000/e6500.md (e6500_sfx): Adjust.
37058         * config/rs6000/mpc.md (mpccore-integer): Adjust.
37059         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
37060         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
37061         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
37062         * config/rs6000/power7.md (power7-integer): Adjust.
37063         * config/rs6000/power8.md (power8-1cyc): Adjust.
37064         * config/rs6000/rs64.md (rs64a-integer): Adjust.
37065         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
37066
37067 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
37068
37069         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
37070         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
37071         (size): New attribute.
37072         (dot): New attribute.
37073         (cell_micro): Adjust.
37074         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
37075         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
37076         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
37077         umuldi3_highpart): Adjust.
37078         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
37079         rs6000_adjust_priority, is_nonpipeline_insn,
37080         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
37081
37082         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
37083         ppc405-imul3): Adjust.
37084         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
37085         * config/rs6000/476.md (ppc476-imul): Adjust.
37086         * config/rs6000/601.md (ppc601-imul): Adjust.
37087         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
37088         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
37089         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
37090         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
37091         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
37092         Adjust.
37093         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
37094         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
37095         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
37096         cell-imul): Adjust.
37097         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
37098         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
37099         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
37100         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
37101         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
37102         * config/rs6000/mpc.md (mpccore-imul): Adjust.
37103         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
37104         power4-lmul, power4-imul, power4-imul3): Adjust.
37105         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
37106         power5-lmul, power5-imul, power5-imul3): Adjust.
37107         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
37108         power6-lmul, power6-imul, power6-imul3): Adjust.
37109         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
37110         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
37111
37112         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
37113         rs64a-lmul): Adjust.
37114         * config/rs6000/titan.md (titan_imul): Adjust.
37115
37116 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
37117
37118         * config/rs6000/rs6000.md (type): Add new value "halfmul".
37119         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
37120         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
37121         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
37122         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
37123         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
37124         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
37125         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
37126         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
37127         * config/rs6000/titan.md: Delete nonsensical comment.
37128         (titan_imul): Add type imul3.
37129         (titan_mulhw): Remove type imul3; add type halfmul.
37130
37131 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
37132
37133         * config/rs6000/rs6000.md (type): Reorder, reformat.
37134
37135 2014-05-23  Martin Jambor  <mjambor@suse.cz>
37136
37137         PR tree-optimization/53787
37138         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
37139         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
37140         analysis_done, update all uses.
37141         * ipa-prop.c: Include domwalk.h
37142         (param_analysis_info): Removed.
37143         (param_aa_status): New type.
37144         (ipa_bb_info): Likewise.
37145         (func_body_info): Likewise.
37146         (ipa_get_bb_info): New function.
37147         (aa_overwalked): Likewise.
37148         (find_dominating_aa_status): Likewise.
37149         (parm_bb_aa_status_for_bb): Likewise.
37150         (parm_preserved_before_stmt_p): Changed to use new param AA info.
37151         (load_from_unmodified_param): Accept func_body_info as a parameter
37152         instead of parms_ainfo.
37153         (parm_ref_data_preserved_p): Changed to use new param AA info.
37154         (parm_ref_data_pass_through_p): Likewise.
37155         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
37156         (compute_complex_assign_jump_func): Changed to use new param AA info.
37157         (compute_complex_ancestor_jump_func): Likewise.
37158         (ipa_compute_jump_functions_for_edge): Likewise.
37159         (ipa_compute_jump_functions): Removed.
37160         (ipa_compute_jump_functions_for_bb): New function.
37161         (ipa_analyze_indirect_call_uses): Likewise, moved variable
37162         declarations down.
37163         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
37164         and info, moved variable declarations down.
37165         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
37166         node and info.
37167         (ipa_analyze_stmt_uses): Likewise.
37168         (ipa_analyze_params_uses): Removed.
37169         (ipa_analyze_params_uses_in_bb): New function.
37170         (ipa_analyze_controlled_uses): Likewise.
37171         (free_ipa_bb_info): Likewise.
37172         (analysis_dom_walker): New class.
37173         (ipa_analyze_node): Handle node-specific forbidden analysis,
37174         initialize and free func_body_info, use dominator walker.
37175         (ipcp_modif_dom_walker): New class.
37176         (ipcp_transform_function): Create and free func_body_info, use
37177         ipcp_modif_dom_walker, moved a lot of functionality there.
37178
37179 2014-05-23  Marek Polacek  <polacek@redhat.com>
37180             Jakub Jelinek  <jakub@redhat.com>
37181
37182         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
37183         * gcc.c (sanitize_spec_function): Likewise.
37184         * convert.c (convert_to_integer): Include "ubsan.h".  Add
37185         floating-point to integer instrumentation.
37186         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
37187         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
37188         SANITIZE_NONDEFAULT.
37189         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
37190         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
37191         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
37192         * ubsan.c: Include "realmpfr.h" and "dfp.h".
37193         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
37194         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
37195         float/double/long double.
37196         (ubsan_instrument_float_cast): New function.
37197         * ubsan.h (ubsan_instrument_float_cast): Declare.
37198
37199 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
37200
37201         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
37202         predicate.
37203         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
37204         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
37205         Adjust for tailcalling through registers.
37206         * config/aarch64/aarch64.h (enum reg_class): New caller save
37207         register class.
37208         (REG_CLASS_NAMES): Likewise.
37209         (REG_CLASS_CONTENTS): Likewise.
37210         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
37211         Allow tailcalling without decls.
37212
37213 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
37214
37215         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
37216         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
37217
37218         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
37219         gsi, and variables v_* to v*.
37220
37221 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
37222
37223         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
37224
37225 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
37226
37227         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
37228         * omp-low.c: Update accordingly.
37229
37230         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
37231         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
37232         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
37233         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
37234         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
37235         GF_OMP_TARGET_KIND_UPDATE.
37236
37237         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
37238         Explicitly enumerate the expected region types.
37239
37240 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
37241
37242         PR other/56955
37243         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
37244         documentation; the old documentation didn't clearly state the
37245         constraints on the contents of the pointed-to storage.
37246
37247 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37248
37249         Fix bootstrap error on ia64
37250         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
37251         Return default value.
37252
37253 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37254
37255         PR tree-optimization/54733
37256         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
37257         (CMPNOP): Define.
37258         (find_bswap_or_nop_load): New.
37259         (find_bswap_1): Renamed to ...
37260         (find_bswap_or_nop_1): This. Also add support for memory source.
37261         (find_bswap): Renamed to ...
37262         (find_bswap_or_nop): This. Also add support for memory source and
37263         detection of bitwise operations equivalent to load in target
37264         endianness.
37265         (execute_optimize_bswap): Likewise. Also move its leading comment back
37266         in place and split statement transformation into ...
37267         (bswap_replace): This.
37268
37269 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
37270
37271         PR rtl-optimization/61215
37272         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
37273         simplify_gen_subreg until final substitution.
37274
37275 2014-05-23  Alan Modra  <amodra@gmail.com>
37276
37277         PR target/61231
37278         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
37279         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
37280         Use "Y" constraint rather than "m".
37281
37282 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
37283
37284         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
37285         define.
37286         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
37287         New function declaration.
37288         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
37289         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
37290         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
37291         (aarch64_init_builtins) : Initialize builtins
37292         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
37293         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
37294         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
37295         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
37296         and __builtins_aarch64_set_fpsr.
37297         (aarch64_atomic_assign_expand_fenv): New function.
37298         * config/aarch64/aarch64.md (set_fpcr): New pattern.
37299         (get_fpcr) : Likewise.
37300         (set_fpsr) : Likewise.
37301         (get_fpsr) : Likewise.
37302         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
37303         and UNSPECV_SET_FPSR.
37304         * doc/extend.texi (AARCH64 Built-in Functions) : Document
37305         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
37306         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
37307
37308 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
37309
37310         PR rtl-optimization/60969
37311         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
37312         constraints.  Set up mem cost for NO_REGS case.
37313
37314 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
37315
37316         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
37317
37318 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
37319
37320         * config/darwin.c: Include "lto-section-names.h".
37321         (LTO_SEGMENT_NAME): Don't define.
37322         * config/i386/winnt.c: Include "lto-section-names.h".
37323         * lto-streamer.c: Include "lto-section-names.h".
37324         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
37325         * lto-wrapper.c: Include "lto-section-names.h".
37326         (LTO_SECTION_NAME_PREFIX): Don't define.
37327         * lto-section-names.h: New file.
37328         * cgraphunit.c: Include "lto-section-names.h".
37329
37330 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
37331
37332         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
37333
37334 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
37335
37336         PR target/61208
37337         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
37338
37339 2014-05-22  Nick Clifton  <nickc@redhat.com>
37340
37341         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
37342
37343 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
37344
37345         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
37346         -> (T)A transformation to integer types.
37347
37348 2014-05-22  Teresa Johnson  <tejohnson@google.com>
37349
37350         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
37351         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
37352         (gcov_rewrite): Use gcov_nonruntime_assert.
37353         (gcov_open): Ditto.
37354         (gcov_write_words): Ditto.
37355         (gcov_write_length): Ditto.
37356         (gcov_read_words): Use gcov_nonruntime_assert, and remove
37357         gcc_assert from IN_LIBGCOV code.
37358         (gcov_read_summary): Use gcov_error to flag profile corruption.
37359         (gcov_sync): Use gcov_nonruntime_assert.
37360         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
37361         (gcov_histo_index): Use gcov_nonruntime_assert.
37362         (static void gcov_histogram_merge): Ditto.
37363         (compute_working_sets): Ditto.
37364         * gcov-io.h (gcov_nonruntime_assert): Define.
37365         (gcov_error): Define for !IN_LIBGCOV
37366
37367 2014-05-22  Richard Biener  <rguenther@suse.de>
37368
37369         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
37370         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
37371         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
37372         and deallocation site.
37373         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
37374         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
37375         passing through the incoming points-to set.
37376         (handle_lhs_call): Use flags argument instead of recomputing it.
37377         (find_func_aliases_for_call): Call handle_lhs_call with proper
37378         call return flags.
37379
37380 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
37381
37382         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
37383         all padding bits in REAL_VALUE_TYPE are cleared.
37384
37385 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37386
37387         Cleanup and improve multipass_dfa_lookahead_guard
37388         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
37389         (core2i7_first_cycle_multipass_begin,)
37390         (core2i7_first_cycle_multipass_issue,)
37391         (core2i7_first_cycle_multipass_backtrack): Update signature.
37392         * config/ia64/ia64.c
37393         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
37394         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
37395         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
37396         hook definition.
37397         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
37398         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
37399         values.
37400         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
37401         return values.
37402         * doc/tm.texi: Regenerate.
37403         * doc/tm.texi.in
37404         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
37405         * haifa-sched.c (ready_try): Make signed to allow negative values.
37406         (rebug_ready_list_1): Update.
37407         (choose_ready): Simplify.
37408         (sched_extend_ready_list): Update.
37409
37410 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37411
37412         Remove IA64 speculation tweaking flags
37413         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
37414         speculation tuning flags.
37415         (msched-prefer-non-data-spec-insns,)
37416         (msched-prefer-non-control-spec-insns): Obsolete options.
37417         * haifa-sched.c (choose_ready): Remove handling of
37418         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
37419         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
37420         and PREFER_NON_DATA_SPEC.
37421         * sel-sched.c (process_spec_exprs): Remove handling of
37422         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
37423
37424 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37425
37426         Improve scheduling debug output
37427         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
37428         (advance_one_cycle): Update.
37429         (schedule_insn, queue_to_ready): Add debug printouts.
37430         (debug_ready_list_1): New static function.
37431         (debug_ready_list): Update.
37432         (max_issue): Add debug printouts.
37433         (dump_insn_stream): New static function.
37434         (schedule_block): Use it.  Also better indent printouts.
37435
37436 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37437
37438         Fix sched_insn debug counter
37439         * haifa-sched.c (schedule_insn): Update.
37440         (struct haifa_saved_data): Add nonscheduled_insns_begin.
37441         (save_backtrack_point, restore_backtrack_point): Update.
37442         (first_nonscheduled_insn): New static function.
37443         (queue_to_ready, choose_ready): Use it.
37444         (schedule_block): Init nonscheduled_insns_begin.
37445         (sched_emit_insn): Update.
37446
37447
37448 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
37449
37450         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
37451         to GENERAL_REGS.
37452         (aarch64_secondary_reload) : LikeWise.
37453         (aarch64_class_max_nregs) : Remove CORE_REGS.
37454         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
37455         (REG_CLASS_NAMES) : Likewise.
37456         (REG_CLASS_CONTENTS) : LikeWise.
37457         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
37458
37459 2014-05-21  Guozhi Wei  <carrot@google.com>
37460
37461         PR target/61202
37462         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
37463         constraint.
37464         (vqdmulhq_n_s16): Likewise.
37465
37466 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
37467
37468         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
37469
37470 2014-05-21  Marek Polacek  <polacek@redhat.com>
37471
37472         PR sanitizer/61272
37473         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
37474
37475 2014-05-21  Martin Jambor  <mjambor@suse.cz>
37476
37477         * doc/invoke.texi (Optimize Options): Document parameters
37478         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
37479         ipa-cp-array-index-hint-bonus.
37480
37481 2014-05-21  Mark Wielaard  <mjw@redhat.com>
37482
37483         PR debug/16063
37484         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
37485         version >= 3 or not strict DWARF.
37486         * langhooks.h (struct lang_hooks_for_types): Add
37487         enum_underlying_base_type.
37488         * langhooks.c (lhd_enum_underlying_base_type): New function.
37489         * gcc/langhooks.h (struct lang_hooks_for_types): Add
37490         enum_underlying_base_type.
37491         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
37492         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
37493         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
37494
37495 2014-05-21  Richard Biener  <rguenther@suse.de>
37496
37497         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
37498
37499 2014-05-21  John Marino  <gnugcc@marino.st>
37500
37501         * config.gcc (*-*-dragonfly*): New target.
37502         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
37503         * configure: Regenerate.
37504         * config/dragonfly-stdint.h: New.
37505         * config/dragonfly.h: New.
37506         * config/dragonfly.opt: New.
37507         * config/i386/dragonfly.h: New.
37508         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
37509
37510 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
37511
37512         * tree.def (VOID_CST): New.
37513         * tree-core.h (TI_VOID): New.
37514         * tree.h (void_node): New.
37515         * tree.c (tree_node_structure_for_code, tree_code_size)
37516         (iterative_hash_expr): Handle VOID_CST.
37517         (build_common_tree_nodes): Initialize void_node.
37518
37519 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
37520
37521         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
37522         functions.
37523         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
37524
37525         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
37526         more places.
37527
37528         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
37529         flag_reorder_blocks_and_partition.
37530         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
37531
37532 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
37533
37534         PR target/54236
37535         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
37536         constraints.
37537         (*addc_r_t): Add new insn_and_split.
37538
37539 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
37540
37541         PR middle-end/61252
37542         * omp-low.c (handle_simd_reference): New function.
37543         (lower_rec_input_clauses): Use it.  Defer adding reference
37544         initialization even for reduction without placeholder if in simd,
37545         handle it properly later on.
37546
37547 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37548
37549         PR tree-optimization/60899
37550         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
37551         assume all static symbols will have definition wile parsing and
37552         check the do have definition later in compilation; check that
37553         variable referring symbol will be output before concluding that
37554         reference is safe; be conservative for referring local statics;
37555         be more precise about when comdat is output in other partition.
37556
37557 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37558
37559         PR bootstrap/60984
37560         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
37561         parameter.
37562         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
37563         (ipa_inline): Loop inline_to_all_callers until no more aliases
37564         are removed.
37565
37566 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37567
37568         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
37569         set writeonly flag only for vars actually written to.
37570
37571 2014-05-20  Dehao Chen  <dehao@google.com>
37572
37573         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
37574         and callee count to get clone count.
37575         * tree-inline.c (expand_call_inline): Use callee count instead of bb
37576         count in copy_body.
37577
37578 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
37579
37580         PR rtl-optimization/61243
37581         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
37582
37583 2014-05-20  Xinliang David Li  <davidxl@google.com>
37584
37585         * cgraphunit.c (walk_polymorphic_call_targets): Add
37586         dbgcnt and fopt-info support.
37587         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
37588         * ipa-devirt.c (ipa_devirt): Ditto.
37589         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
37590         * ipa.c (walk_polymorphic_call_targets): Ditto.
37591         * gimple-fold.c (fold_gimple_assign): Ditto.
37592         (gimple_fold_call): Ditto.
37593         * dbgcnt.def: New counter.
37594
37595 2014-05-20  DJ Delorie  <dj@redhat.com>
37596
37597         * config/msp430/msp430.md (split): Don't allow subregs when
37598         splitting SImode adds.
37599         (andneghi): Fix subtraction logic.
37600         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
37601
37602 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
37603
37604         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
37605         symbols.
37606         * except.c (switch_to_exception_section, resolve_unique_section,
37607         get_named_text_section, default_function_rodata_section,
37608         align_variable, get_block_for_decl, default_section_type_flags):
37609         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
37610         * symtab.c (symtab_add_to_same_comdat_group,
37611         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
37612         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
37613         Likewise.
37614         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
37615         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
37616         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
37617         (c6x_function_in_section_p): Likewise.
37618         * config/darwin.c (machopic_select_section): Likewise.
37619         * config/arm/arm.c (arm_function_in_section_p): Likewise.
37620         * config/mips/mips.c (mips_function_rodata_section): Likewise.
37621         * config/mep/mep.c (mep_select_section): LIkewise.
37622         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
37623
37624 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
37625
37626         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
37627         EH region of calls to pure functions that can throw an exception.
37628         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
37629         (copy_reference_ops_from_call): Also copy the EH region of the call if
37630         it can throw an exception.
37631
37632 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37633
37634         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
37635         nested VEC_SELECTs that are inverses of each other.
37636
37637 2014-05-20  Richard Biener  <rguenther@suse.de>
37638
37639         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
37640         (extract_and_process_scc_for_name): not here.
37641         (cond_dom_walker::before_dom_children): Only process
37642         stmts that end the BB in interesting ways.
37643         (run_scc_vn): Mark param uses as visited.
37644
37645 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37646
37647         * config/arm/arm.md (arith_shiftsi): Do not predicate for
37648         arm_restrict_it.
37649
37650 2014-05-20  Nick Clifton  <nickc@redhat.com>
37651
37652         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
37653         (msp430_gimplify_va_arg_expr): New function.
37654         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
37655
37656         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
37657         operand 0 in order to prevent confusion about the number of
37658         registers involved.
37659
37660 2014-05-20  Richard Biener  <rguenther@suse.de>
37661
37662         PR tree-optimization/61221
37663         * tree-ssa-pre.c (el_to_update): Remove.
37664         (eliminate_dom_walker::before_dom_children): Handle released
37665         VDEFs by value-numbering them to the associated VUSE.  Update
37666         stmt immediately for substituted call address.
37667         (eliminate): Remove delayed stmt updating code.
37668         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
37669         possibly late re-numbered vuses.
37670         (vn_reference_lookup_2): Adjust.
37671         (vn_reference_lookup_pieces): Likewise.
37672         (vn_reference_lookup): Likewise.
37673
37674 2014-05-20  Richard Biener  <rguenther@suse.de>
37675
37676         * config.gcc: Remove need_64bit_hwint.
37677         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
37678         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
37679         it to be true.
37680         * config.in: Regenerate.
37681         * configure: Likewise.
37682
37683 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
37684
37685         * doc/extend.texi: Create Label Attributes section,
37686         move all label attributes into it and reference it.
37687
37688 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
37689
37690         * arm.c (thumb1_reorg): When scanning backwards skip anything
37691         that's not a proper insn.
37692
37693 2014-05-19  Richard Biener  <rguenther@suse.de>
37694
37695         PR tree-optimization/61221
37696         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
37697         Do nothing for unreachable blocks.
37698         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
37699         Improve unreachability detection.
37700
37701 2014-05-19  Richard Biener  <rguenther@suse.de>
37702
37703         PR tree-optimization/61209
37704         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
37705
37706 2014-05-19  Nick Clifton  <nickc@redhat.com>
37707
37708         * except.c (init_eh): Fix computation of builtin setjmp buffer
37709         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
37710
37711 2014-05-19  Richard Biener  <rguenther@suse.de>
37712
37713         PR tree-optimization/61184
37714         * tree-vrp.c (is_negative_overflow_infinity): Use
37715         TREE_OVERFLOW_P and do that check first.
37716         (is_positive_overflow_infinity): Likewise.
37717         (is_overflow_infinity): Likewise.
37718         (vrp_operand_equal_p): Properly treat operands with
37719         differing overflow as not equal.
37720
37721 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
37722
37723         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
37724         shift simplification where it was intended.
37725
37726 2014-05-19  Christian Bruel  <christian.bruel@st.com>
37727
37728         PR target/61195
37729         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
37730
37731 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
37732
37733         PR target/61084
37734         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
37735         than wide_int.
37736
37737 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37738
37739         * reg-notes.def (CROSSING_JUMP): Likewise.
37740         * rtl.h (rtx_def): Update comment for jump flag.
37741         (CROSSING_JUMP_P): Define.
37742         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
37743         of a REG_CROSSING_JUMP note.
37744         * cfghooks.c (tidy_fallthru_edges): Likewise.
37745         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
37746         * emit-rtl.c (try_split): Likewise.
37747         * haifa-sched.c (sched_create_recovery_edges): Likewise.
37748         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
37749         * jump.c (redirect_jump_2): Likewise.
37750         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
37751         (relax_delay_slots): Likewise.
37752         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
37753         (bbit_di): Likewise.
37754         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
37755         * config/sh/sh.md (jump_compact): Likewise.
37756         * bb-reorder.c (rotate_loop): Likewise.
37757         (pass_duplicate_computed_gotos::execute): Likewise.
37758         (add_reg_crossing_jump_notes): Rename to...
37759         (update_crossing_jump_flags): ...this.
37760         (pass_partition_blocks::execute): Update accordingly.
37761
37762 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37763
37764         * tree.h: Remove extraneous template <>.
37765
37766 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37767
37768         * ipa.c (symtab_remove_unreachable_nodes): Remove
37769         symbol from comdat group if its body was eliminated.
37770         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
37771         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
37772         (symtab_unregister_node): ... this one.
37773         (verify_symtab_base): More strict checking of comdats.
37774         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
37775
37776 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37777
37778         * tree-pass.h (make_pass_ipa_comdats): New pass.
37779         * timevar.def (TV_IPA_COMDATS): New timevar.
37780         * passes.def (pass_ipa_comdats): Add.
37781         * Makefile.in (OBJS): Add ipa-comdats.o
37782         * ipa-comdats.c: New file.
37783
37784 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37785
37786         * ipa.c (update_visibility_by_resolution_info): New function.
37787         (function_and_variable_visibility): Use it.
37788
37789 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37790
37791         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
37792         New functions.
37793         (FOR_EACH_DEFINED_SYMBOL): New macro.
37794         (varpool_first_static_initializer, varpool_next_static_initializer,
37795         varpool_first_defined_variable, varpool_next_defined_variable):
37796         Fix comments.
37797         (symtab_in_same_comdat_p): Correctly deal with inline functions.
37798
37799 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37800
37801         * ggc-page.c (ggc_handle_finalizers): Add comment.
37802
37803 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37804
37805         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
37806         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
37807         (ggc_internal_cleared_alloc): Likewise.
37808         * ggc-page.c (finalizer): New class.
37809         (vec_finalizer): Likewise.
37810         (globals::finalizers): New member.
37811         (globals::vec_finalizers): Likewise.
37812         (ggc_internal_alloc): Record the finalizer if any for the block being
37813         allocated.
37814         (ggc_handle_finalizers): New function.
37815         (ggc_collect): Call ggc_handle_finalizers.
37816         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
37817         finalizer.
37818         (ggc_internal_cleared_alloc): Likewise.
37819         (finalize): New function.
37820         (need_finalization_p): Likewise.
37821         (ggc_alloc): Install the type's destructor as the finalizer if it
37822         might do something.
37823         (ggc_cleared_alloc): Likewise.
37824         (ggc_vec_alloc): Likewise.
37825         (ggc_cleared_vec_alloc): Likewise.
37826
37827 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37828
37829         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37830
37831 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37832
37833         * alias.c (record_alias_subset): Adjust.
37834         * bitmap.c (bitmap_element_allocate): Likewise.
37835         (bitmap_gc_alloc_stat): Likewise.
37836         * cfg.c (init_flow): Likewise.
37837         (alloc_block): Likewise.
37838         (unchecked_make_edge): Likewise.
37839         * cfgloop.c (alloc_loop): Likewise.
37840         (flow_loops_find): Likewise.
37841         (rescan_loop_exit): Likewise.
37842         * cfgrtl.c (init_rtl_bb_info): Likewise.
37843         * cgraph.c (insert_new_cgraph_node_version): Likewise.
37844         (cgraph_allocate_node): Likewise.
37845         (cgraph_create_edge_1): Likewise.
37846         (cgraph_allocate_init_indirect_info): Likewise.
37847         * cgraphclones.c (cgraph_clone_edge): Likewise.
37848         * cgraphunit.c (add_asm_node): Likewise.
37849         (init_lowered_empty_function): Likewise.
37850         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37851         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37852         (alpha_use_linkage): Likewise.
37853         * config/arc/arc.c (arc_init_machine_status): Likewise.
37854         * config/arm/arm.c (arm_init_machine_status): Likewise.
37855         * config/avr/avr.c (avr_init_machine_status): Likewise.
37856         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37857         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37858         * config/cris/cris.c (cris_init_machine_status): Likewise.
37859         * config/darwin.c (machopic_indirection_name): Likewise.
37860         (darwin_build_constant_cfstring): Likewise.
37861         (darwin_enter_string_into_cfstring_table): Likewise.
37862         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37863         * config/frv/frv.c (frv_init_machine_status): Likewise.
37864         * config/i386/i386.c (get_dllimport_decl): Likewise.
37865         (ix86_init_machine_status): Likewise.
37866         (assign_386_stack_local): Likewise.
37867         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37868         (i386_pe_maybe_record_exported_symbol): Likewise.
37869         (i386_pe_record_stub): Likewise.
37870         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37871         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37872         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37873         (m32c_note_pragma_address): Likewise.
37874         * config/mep/mep.c (mep_init_machine_status): Likewise.
37875         (mep_note_pragma_flag): Likewise.
37876         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37877         (mips16_local_alias): Likewise.
37878         (mips_init_machine_status): Likewise.
37879         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37880         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37881         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37882         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37883         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37884         * config/pa/pa.c (pa_init_machine_status): Likewise.
37885         (pa_get_deferred_plabel): Likewise.
37886         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37887         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37888         (rs6000_init_machine_status): Likewise.
37889         (output_toc): Likewise.
37890         * config/s390/s390.c (s390_init_machine_status): Likewise.
37891         * config/score/score.c (score_output_external): Likewise.
37892         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37893         * config/spu/spu.c (spu_init_machine_status): Likewise.
37894         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37895         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37896         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37897         * coverage.c (coverage_end_function): Likewise.
37898         * dbxout.c (dbxout_init): Likewise.
37899         * doc/gty.texi: Don't mention variable_size attribute.
37900         * dwarf2cfi.c (new_cfi): Adjust.
37901         (new_cfi_row): Likewise.
37902         (copy_cfi_row): Likewise.
37903         (create_cie_data): Likewise.
37904         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37905         (new_loc_descr): Likewise.
37906         (find_AT_string_in_table): Likewise.
37907         (add_addr_table_entry): Likewise.
37908         (new_die): Likewise.
37909         (add_var_loc_to_decl): Likewise.
37910         (clone_die): Likewise.
37911         (clone_as_declaration): Likewise.
37912         (break_out_comdat_types): Likewise.
37913         (new_loc_list): Likewise.
37914         (add_loc_descr_to_each): Likewise.
37915         (add_location_or_const_value_attribute): Likewise.
37916         (add_linkage_name): Likewise.
37917         (lookup_filename): Likewise.
37918         (dwarf2out_var_location): Likewise.
37919         (new_line_info_table): Likewise.
37920         (dwarf2out_init): Likewise.
37921         (mem_loc_descriptor): Likewise.
37922         (loc_descriptor): Likewise.
37923         (add_const_value_attribute): Likewise.
37924         (tree_add_const_value_attribute): Likewise.
37925         (comp_dir_string): Likewise.
37926         (dwarf2out_vms_debug_main_pointer): Likewise.
37927         (string_cst_pool_decl): Likewise.
37928         * emit-rtl.c (set_mem_attrs): Likewise.
37929         (get_reg_attrs): Likewise.
37930         (start_sequence): Likewise.
37931         (init_emit): Likewise.
37932         (init_emit_regs): Likewise.
37933         * except.c (init_eh_for_function): Likewise.
37934         (gen_eh_region): Likewise.
37935         (gen_eh_region_catch): Likewise.
37936         (gen_eh_landing_pad): Likewise.
37937         (add_call_site): Likewise.
37938         * function.c (add_frame_space): Likewise.
37939         (insert_temp_slot_address): Likewise.
37940         (assign_stack_temp_for_type): Likewise.
37941         (get_hard_reg_initial_val): Likewise.
37942         (allocate_struct_function): Likewise.
37943         (prepare_function_start): Likewise.
37944         (types_used_by_var_decl_insert): Likewise.
37945         * gengtype.c (variable_size_p): Remove function.
37946         (enum alloc_quantity): Remove enum.
37947         (write_typed_alloc_def): Remove function.
37948         (write_typed_struct_alloc_def): Likewise.
37949         (write_typed_typedef_alloc_def): Likewise.
37950         (write_typed_alloc_defns): Likewise.
37951         (main): Adjust.
37952         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37953         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37954         * ggc.h (ggc_alloc): new function.
37955         (ggc_cleared_alloc): Likewise.
37956         (ggc_vec_alloc): Template on type of vector element, and remove
37957         element size argument.
37958         (ggc_cleared_vec_alloc): Likewise.
37959         * gimple.c (gimple_build_omp_for): Adjust.
37960         (gimple_copy): Likewise.
37961         * ipa-cp.c (get_replacement_map): Likewise.
37962         (find_aggregate_values_for_callers_subset): Likewise.
37963         (known_aggs_to_agg_replacement_list): Likewise.
37964         * ipa-devirt.c (get_odr_type): Likewise.
37965         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37966         (read_agg_replacement_chain): Likewise.
37967         * loop-iv.c (get_simple_loop_desc): Likewise.
37968         * lto-cgraph.c (input_node_opt_summary): Likewise.
37969         * lto-section-in.c (lto_new_in_decl_state): Likewise.
37970         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37971         (input_eh_region): Likewise.
37972         (input_eh_lp): Likewise.
37973         (input_cfg): Likewise.
37974         * optabs.c (set_optab_libfunc): Likewise.
37975         (init_tree_optimization_optabs): Likewise.
37976         (set_conv_libfunc): Likewise.
37977         * passes.c (do_per_function_toporder): Likewise.
37978         * rtl.h: Don't use variable_size gty attribute.
37979         * sese.c (if_region_set_false_region): Adjust.
37980         * stringpool.c (gt_pch_save_stringpool): Likewise.
37981         * target-globals.c (save_target_globals): Likewise.
37982         * toplev.c (general_init): Likewise.
37983         * trans-mem.c (record_tm_replacement): Likewise.
37984         (split_bb_make_tm_edge): Likewise.
37985         * tree-cfg.c (move_sese_region_to_fn): Likewise.
37986         * tree-data-ref.h (lambda_vector_new): Likewise.
37987         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37988         * tree-iterator.c (tsi_link_before): Likewise.
37989         (tsi_link_after): Likewise.
37990         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37991         * tree-ssa-loop-niter.c (record_estimate): Likewise.
37992         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37993         * tree-ssa-operands.h: Don't use variable_size gty attribute.
37994         * tree-ssa.c (init_tree_ssa): Adjust.
37995         * tree-ssanames.c (set_range_info): Likewise.
37996         (get_ptr_info): Likewise.
37997         (duplicate_ssa_name_ptr_info): Likewise.
37998         (duplicate_ssa_name_range_info): Likewise.
37999         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
38000         (unpack_ts_fixed_cst_value_fields): Likewise.
38001         * tree.c (build_fixed): Likewise.
38002         (build_real): Likewise.
38003         (build_string): Likewise.
38004         (decl_priority_info): Likewise.
38005         (decl_debug_expr_insert): Likewise.
38006         (decl_value_expr_insert): Likewise.
38007         (decl_debug_args_insert): Likewise.
38008         (type_hash_add): Likewise.
38009         (build_omp_clause): Likewise.
38010         * ubsan.c (decl_for_type_insert): Likewise.
38011         * varasm.c (get_unnamed_section): Likewise.
38012         (get_noswitch_section): Likewise.
38013         (get_section): Likewise.
38014         (get_block_for_section): Likewise.
38015         (create_block_symbol): Likewise.
38016         (build_constant_desc): Likewise.
38017         (create_constant_pool): Likewise.
38018         (force_const_mem): Likewise.
38019         (record_tm_clone_pair): Likewise.
38020         * varpool.c (varpool_create_empty_node): Likewise.
38021
38022 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
38023
38024         * dwarf2out.c (tree_add_const_value_attribute): Call
38025         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
38026         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
38027         instead of ggc_internal_<x>alloc_stat.
38028         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
38029         (ggc_realloc): Likewise.
38030         * ggc-none.c (ggc_internal_alloc): Likewise.
38031         (ggc_internal_cleared_alloc): Likewise.
38032         * ggc-page.c: Likewise.
38033         * ggc.h (ggc_internal_alloc_stat): Likewise.
38034         (ggc_internal_alloc): Remove macro.
38035         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
38036         (ggc_internal_cleared_alloc): Remove macro.
38037         (GGC_RESIZEVEC): Adjust.
38038         (ggc_resizevar): Remove macro.
38039         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
38040         (ggc_internal_cleared_vec_alloc_stat): Likewise.
38041         (ggc_internal_vec_cleared_alloc): Remove macro.
38042         (ggc_alloc_atomic_stat): Drop _stat suffix.
38043         (ggc_alloc_atomic): Remove macro.
38044         (ggc_alloc_cleared_atomic): Remove macro.
38045         (ggc_alloc_string_stat): Drop _stat suffix.
38046         (ggc_alloc_string): Remove macro.
38047         (ggc_alloc_rtx_def_stat): Adjust.
38048         (ggc_alloc_tree_node_stat): Likewise.
38049         (ggc_alloc_cleared_tree_node_stat): Likewise.
38050         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
38051         (ggc_alloc_cleared_simd_clone_stat): Likewise.
38052         * gimple.c (gimple_build_omp_for): Likewise.
38053         (gimple_copy): Likewise.
38054         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
38055         * toplev.c (realloc_for_line_map): Adjust.
38056         * tree-data-ref.h (lambda_vector_new): Likewise.
38057         * tree-phinodes.c (allocate_phi_node): Likewise.
38058         * tree.c (grow_tree_vec_stat): Likewise.
38059         * vec.h (va_gc::reserve): Adjust.
38060
38061 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
38062
38063         * config/microblaze/microblaze.c (break_handler): New Declaration.
38064         (microblaze_break_function_p,microblaze_is_break_handler): New.
38065         (compute_frame_size): Use microblaze_break_function_p.
38066         Add the test of break_handler.
38067         (microblaze_function_prologue) : Add the test of variable
38068         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
38069         (microblaze_function_epilogue) : Add the test of break_handler.
38070         (microblaze_globalize_label) : Add the test of break_handler.
38071         Check the name by BREAK_HANDLER_NAME.
38072
38073         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
38074
38075         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
38076         microblaze_is_break_handler test.
38077         (call_internal1,call_value_intern): Use microblaze_break_function_p.
38078         Use SYMBOL_REF_DECL.
38079
38080         * config/microblaze/microblaze-protos.h
38081         (microblaze_break_function_p,microblaze_is_break_handler):
38082         New Declaration.
38083
38084         * doc/extend.texi (MicroBlaze break_handler Functions): Document
38085         new MicroBlaze break_handler functions.
38086
38087 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
38088
38089         * doc/extend.texi (Size of an asm): Move node text according
38090         to its @menu entry position.
38091
38092 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
38093
38094         PR tree-optimization/61140
38095         PR tree-optimization/61150
38096         PR tree-optimization/61197
38097         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
38098
38099 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
38100
38101         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
38102
38103 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
38104
38105         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
38106         __SIZEOF_INT128__ is defined.
38107
38108 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
38109
38110         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
38111         (rs6000_delegitimize_address): Use it.
38112
38113 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
38114
38115         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
38116         inplace argument.  Store the new address in the original MEM when true.
38117         * emit-rtl.c (change_address_1): Likewise.
38118         (adjust_address_1, adjust_automodify_address_1, offset_address):
38119         Update accordingly.
38120         * rtl.h (plus_constant): Add an inplace argument.
38121         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
38122         when true.  Avoid generating (plus X (const_int 0)).
38123         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
38124         in-place.  Pass true to plus_constant.
38125         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
38126
38127 2014-05-16  Dehao Chen  <dehao@google.com>
38128
38129         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
38130
38131 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
38132
38133         PR target/54089
38134         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
38135         patterns.
38136         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
38137
38138 2014-05-16  Dehao Chen  <dehao@google.com>
38139
38140         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
38141         optimize_function_for_size_p.
38142         * regs.h (REG_FREQ_FROM_BB): Likewise.
38143
38144 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
38145
38146         PR target/51244
38147         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
38148         negt_reg_operand cases.
38149         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
38150         predicate.
38151         * config/sh/predicates.md (cbranch_treg_value): Simplify.
38152
38153 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
38154
38155         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
38156         target variants.
38157
38158 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
38159
38160         Revert:
38161         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
38162
38163         * tree-cfg.c (dump_function_to_file): Dump the return type of
38164         functions, in a line to itself before the function body, mimicking
38165         the layout of a C function.
38166
38167 2014-05-16  Dehao Chen  <dehao@google.com>
38168
38169         * cfghooks.c (make_forwarder_block): Use direct computation to
38170         get fall-through edge's count and frequency.
38171
38172 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
38173
38174         * config/arc/arc.c (arc_init): Fix typo in error message.
38175         * config/i386/i386.c (ix86_expand_builtin): Likewise.
38176         (split_stack_prologue_scratch_regno): Likewise.
38177         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
38178         word from error message.
38179
38180 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
38181
38182         * ira-costs.c: Fix typo in comment.
38183
38184 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
38185
38186         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
38187
38188 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
38189
38190         * varpool.c (dump_varpool_node): Dump write-only flag.
38191         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
38192         write-only flag.
38193         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
38194         write-only variables.
38195         * ipa.c (process_references): New function.
38196         (set_readonly_bit): New function.
38197         (set_writeonly_bit): New function.
38198         (clear_addressable_bit): New function.
38199         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
38200         fix handling of aliases.
38201         * cgraph.h (struct varpool_node): Add writeonly flag.
38202
38203 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
38204
38205         PR rtl-optimization/60969
38206         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
38207         Calculate costs for this case.
38208
38209 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
38210
38211         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
38212         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
38213
38214 2014-05-16  Richard Biener  <rguenther@suse.de>
38215
38216         PR tree-optimization/61194
38217         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
38218         bool patterns ending in a COND_EXPR.
38219
38220 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38221
38222         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
38223
38224 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38225
38226         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
38227         where we were unable to cost an RTX.
38228
38229 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38230
38231         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
38232         HIGH, LO_SUM.
38233
38234 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38235             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38236
38237         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
38238
38239 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38240             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38241
38242         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
38243         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
38244
38245 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38246             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38247
38248         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
38249         operators.
38250
38251 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38252             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38253
38254         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
38255         DIV/MOD.
38256
38257 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38258             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38259
38260         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
38261         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
38262
38263 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38264             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38265
38266         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
38267         rotates and shifts.
38268
38269 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38270             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38271
38272         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
38273         ZERO_EXTEND and SIGN_EXTEND better.
38274
38275 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38276             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38277
38278         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
38279         logical operations.
38280
38281 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38282             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38283
38284         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
38285         costs when costing loads and stores to memory.
38286
38287 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38288             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
38289
38290         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
38291         for SET RTX.
38292
38293 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38294
38295         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
38296
38297 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38298             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38299
38300         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
38301         to...
38302         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
38303         well formed.
38304         (aarch64_rtx_mult_cost): New.
38305         (aarch64_rtx_costs): Use it, refactor as appropriate.
38306
38307 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38308             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38309
38310         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
38311         emit instructions, return number of instructions which would
38312         be emitted.
38313         (aarch64_add_constant): Update call to aarch64_build_constant.
38314         (aarch64_output_mi_thunk): Likewise.
38315         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
38316         a CONST_DOUBLE.
38317
38318 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38319
38320         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
38321         (TARGET_RTX_COSTS): Call it.
38322
38323 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38324
38325         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
38326         (cortexa57_vector_cost): Likewise.
38327         (cortexa57_tunings): Use them.
38328
38329 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
38330
38331         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
38332         (cpu_addrcost_table): Use it.
38333         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
38334         (aarch64_address_cost): Rewrite using aarch64_classify_address,
38335         move it.
38336
38337 2014-05-16  Richard Biener  <rguenther@suse.de>
38338
38339         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
38340         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
38341         (visit_phi): Ignore edges marked as not executable.
38342         (class cond_dom_walker): New.
38343         (cond_dom_walker::before_dom_children): Value-number
38344         control statements and mark successor edges as not
38345         executable if possible.
38346         (run_scc_vn): First walk all control statements in
38347         dominator order, marking edges as not executable.
38348         * tree-inline.c (copy_edges_for_bb): Be not confused
38349         about random edge flags.
38350
38351 2014-05-16  Richard Biener  <rguenther@suse.de>
38352
38353         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
38354
38355 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
38356
38357         PR target/61193
38358         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
38359         (__TM_simple_begin): Use it.
38360         (__TM_begin): Likewise.
38361
38362 2014-05-15  Martin Jambor  <mjambor@suse.cz>
38363
38364         PR ipa/61085
38365         * ipa-prop.c (update_indirect_edges_after_inlining): Check
38366         type_preserved flag when the indirect edge is polymorphic.
38367
38368 2014-05-15  Martin Jambor  <mjambor@suse.cz>
38369
38370         PR tree-optimization/61090
38371         * tree-sra.c (sra_modify_expr): Pass the current gsi to
38372         build_ref_for_model.
38373
38374 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38375
38376         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
38377         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
38378
38379 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
38380
38381         PR tree-optimization/61158
38382         * fold-const.c (fold_binary_loc): If X is zero-extended and
38383         shiftc >= prec, make sure zerobits is all ones instead of
38384         invoking undefined behavior.
38385
38386 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38387
38388         * regcprop.h: New file.
38389         * regcprop.c (skip_debug_insn_p): New decl.
38390         (replace_oldest_value_reg): Check skip_debug_insn_p.
38391         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
38392         * shrink-wrap.c: Include regcprop.h.
38393         (prepare_shrink_wrap): Call
38394         copyprop_hardreg_forward_bb_without_debug_insn.
38395
38396 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38397
38398         * shrink-wrap.h: Update comment.
38399         * shrink-wrap.c: Update comment.
38400         (next_block_for_reg): Rename to live_edge_for_reg.
38401         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
38402         (move_insn_for_shrink_wrap): Split live_edge.
38403         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
38404
38405 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
38406
38407         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
38408         Delete.
38409         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
38410         * config/sparc/sparc.md (fptype_ut699): New attribute.
38411         (in_branch_delay): Return false if -mfix-ut699 is specified and
38412         fptype_ut699 is set to single.
38413         (truncdfsf2): Add fptype_ut699 attribute.
38414         (fix_truncdfsi2): Likewise.
38415         (floatsisf2): Change fptype attribute.
38416         (fix_truncsfsi2): Likewise.
38417         (negtf2_notv9): Delete.
38418         (negtf2_v9): Likewise.
38419         (negtf2_hq): New instruction.
38420         (negtf2): New instruction and splitter.
38421         (negdf2_notv9): Rewrite.
38422         (abstf2_notv9): Delete.
38423         (abstf2_hq_v9): Likewise.
38424         (abstf2_v9): Likewise.
38425         (abstf2_hq): New instruction.
38426         (abstf2): New instruction and splitter.
38427         (absdf2_notv9): Rewrite.
38428
38429 2014-05-14  Cary Coutant  <ccoutant@google.com>
38430
38431         PR debug/61013
38432         * opts.c (common_handle_option): Don't special-case "-g".
38433         (set_debug_level): Default to at least level 2 with "-g".
38434
38435 2014-05-14  DJ Delorie  <dj@redhat.com>
38436
38437         * config/msp430/msp430.c (msp430_builtin): Add
38438         MSP430_BUILTIN_DELAY_CYCLES.
38439         (msp430_init_builtins): Register void __delay_cycles(long long).
38440         (msp430_builtin_decl): Add it.
38441         (cg_magic_constant): New.
38442         (msp430_expand_delay_cycles): New.
38443         (msp430_expand_builtin): Call it.
38444         (msp430_print_operand_raw): Change integer printing from "int" to
38445         HOST_WIDE_INT.
38446         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
38447         (delay_cycles_start): New.
38448         (delay_cycles_end): New.
38449         (delay_cycles_32): New.
38450         (delay_cycles_32x): New.
38451         (delay_cycles_16): New.
38452         (delay_cycles_16x): New.
38453         (delay_cycles_2): New.
38454         (delay_cycles_1): New.
38455         * doc/extend.texi: Document __delay_cycles().
38456
38457 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
38458
38459         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
38460         length attribute computation.
38461
38462 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
38463
38464         PR debug/61188
38465         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
38466
38467 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
38468
38469         PR target/61084
38470         * config/sparc/sparc.md: Fix types of low and high in DI constant
38471         splitter.  Use gen_int_mode in some other splitters.
38472
38473 2014-05-14  Martin Jambor  <mjambor@suse.cz>
38474
38475         PR ipa/60897
38476         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
38477
38478 2014-05-14  James Norris  <jnorris@codesourcery.com>
38479
38480         * omp-low.c (expand_parallel_call): Remove shadow variable.
38481         (expand_omp_taskreg): Likewise.
38482
38483 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
38484
38485         * common/config/i386/i386-common.c
38486         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
38487         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
38488         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
38489         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
38490         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
38491         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
38492         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
38493         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
38494         xsavecintrin.h, xsavesintrin.h.
38495         (x86_64-*-*): Ditto.
38496         * config/i386/clflushoptintrin.h: New.
38497         * config/i386/xsavecintrin.h: Ditto.
38498         * config/i386/xsavesintrin.h: Ditto.
38499         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
38500         (bit_XSAVES): Ditto.
38501         (bit_XSAVES): Ditto.
38502         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
38503         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
38504         -mno-clflushopt.
38505         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
38506         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
38507         OPTION_MASK_ISA_XSAVES.
38508         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
38509         -mxsavec, -mxsaves.
38510         (PTA_CLFLUSHOPT) Define.
38511         (PTA_XSAVEC): Ditto.
38512         (PTA_XSAVES): Ditto.
38513         (ix86_option_override_internal): Handle new options.
38514         (ix86_valid_target_attribute_inner_p): Ditto.
38515         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
38516         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
38517         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
38518         (bdesc_special_args): Add __builtin_ia32_xsaves,
38519         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
38520         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
38521         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
38522         (ix86_expand_builtin): Handle new builtins.
38523         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
38524         (TARGET_CLFLUSHOPT_P): Ditto.
38525         (TARGET_XSAVEC): Ditto.
38526         (TARGET_XSAVEC_P): Ditto.
38527         (TARGET_XSAVES): Ditto.
38528         (TARGET_XSAVES_P): Ditto.
38529         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
38530         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
38531         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
38532         (ANY_XRSTOR): New.
38533         (ANY_XRSTOR64): Ditto.
38534         (xrstor): Ditto.
38535         (xrstor): Change into <xrstor>.
38536         (xrstor_rex64): Change into <xrstor>_rex64.
38537         (xrstor64): Change into <xrstor>64
38538         (clflushopt): New.
38539         * config/i386/i386.opt (mclflushopt): New.
38540         (mxsavec): Ditto.
38541         (mxsaves): Ditto.
38542         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
38543         xsavecintrin.h.
38544         * doc/invoke.texi: Document new options.
38545
38546 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
38547
38548         PR rtl-optimization/60866
38549         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
38550         Default it to -1.  Pass it down to init_simplejump_data.
38551         (init_simplejump_data): New parameter old_seqno.  Pass it down
38552         to get_seqno_for_a_jump.
38553         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
38554         initializing new jump seqno as a last resort.  Add comment.
38555         (sel_redirect_edge_and_branch): Save old seqno of the conditional
38556         jump and pass it down to sel_init_new_insn.
38557         (sel_redirect_edge_and_branch_force): Likewise.
38558
38559 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
38560
38561         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
38562         shifted values to avoid build warning.
38563
38564 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
38565
38566         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
38567         * cfgrtl.c (rtl_merge_blocks): Fix comment.
38568         (cfg_layout_merge_blocks): Likewise.
38569         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
38570
38571 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
38572
38573         PR rtl-optimization/60901
38574         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
38575         bb predecessor belongs to the same scheduling region.  Adjust comment.
38576
38577 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
38578
38579         * doc/sourcebuild.texi: (dfp_hw): Document.
38580         (p8vector_hw): Likewise.
38581         (powerpc_eabi_ok): Likewise.
38582         (powerpc_elfv2): Likewise.
38583         (powerpc_htm_ok): Likewise.
38584         (ppc_recip_hw): Likewise.
38585         (vsx_hw): Likewise.
38586
38587 2014-05-13  Cary Coutant  <ccoutant@google.com>
38588
38589         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
38590
38591 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
38592
38593         * gengtype-parse.c (require3): Eliminate in favor of...
38594         (require4): New.
38595         (require_template_declaration): Update to support optional single *
38596         on a type.
38597
38598         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
38599         (create_user_defined_type): Handle a single level of explicit
38600         pointerness within template arguments.
38601         (struct write_types_data): Add field "kind".
38602         (filter_type_name): Handle "*" character.
38603         (write_user_func_for_structure_ptr): Require a write_types_data
38604         rather than just a prefix string, so that we can look up the kind
38605         of the wtd and use it as an index into wrote_user_func_for_ptr,
38606         ensuring that such functions are written at most once.  Support
38607         subclasses by invoking the marking function of the ultimate base class.
38608         (write_user_func_for_structure_body): Require a write_types_data
38609         rather than just a prefix string, so that we can pass this to
38610         write_user_func_for_structure_ptr.
38611         (write_func_for_structure): Likewise.
38612         (ggc_wtd): Add initializer of new "kind" field.
38613         (pch_wtd): Likewise.
38614
38615         * gengtype.h (enum write_types_kinds): New.
38616         (struct type): Add field wrote_user_func_for_ptr to the "s"
38617         union member.
38618
38619 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
38620
38621         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
38622         instead of const_binop.
38623         (fold_binary_loc): Likewise.
38624
38625 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
38626
38627         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
38628         calculation to match get_ref_base_and_extent.
38629
38630 2014-05-13  Catherine Moore  <clm@codesourcery.com>
38631             Sandra Loosemore  <sandra@codesourcery.com>
38632
38633         * configure.ac: Fix assembly for explicit JALR relocation check.
38634         * configure: Regenerate.
38635
38636 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38637
38638         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
38639         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
38640         Remove associated type declarations and initialisations.
38641         (arm_expand_neon_builtin): Likewise.
38642         (neon_emit_pair_result_insn): Delete.
38643         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
38644         * config/arm/neon.md (neon_vtrn<mode>): Delete.
38645         (neon_vzip<mode>): Likewise.
38646         (neon_vuzp<mode>): Likewise.
38647
38648 2014-05-13  Richard Biener  <rguenther@suse.de>
38649
38650         PR ipa/60973
38651         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
38652         it needs revisiting whether the call still may be tail-called.
38653
38654 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38655
38656         * rtl.def (SYMBOL_REF): Remove middle "0" field.
38657         * rtl.h (block_symbol): Reduce number of fields to 2.
38658         (rtx_def): Add u2.symbol_ref_flags.
38659         (SYMBOL_REF_FLAGS): Use it.
38660         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
38661         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
38662         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
38663         Lower index of SYMBOL_REF_DATA.
38664         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
38665         Print SYMBOL_REF_FLAGS at the same time.
38666         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
38667
38668 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38669
38670         * rtl.def (VAR_LOCATION): Remove "i" field.
38671         * rtl.h (rtx_def): Add u2.var_location_status.
38672         (PAT_VAR_LOCATION_STATUS): Use it.
38673         (gen_rtx_VAR_LOCATION): Declare.
38674         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
38675         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
38676         * var-tracking.c (emit_note_insn_var_location): Remove casts.
38677
38678 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38679
38680         * rtl.def (scratch): Fix outdated comment and remove "0" field.
38681         * gengtype.c (adjust_field_rtx_def): Update accordingly.
38682
38683 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38684
38685         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
38686         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
38687         * rtl.h (rtx_def): Add insn_uid to u2 field.
38688         (RTX_FLAG_CHECK8): Delete in favor of...
38689         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
38690         (INSN_DELETED_P): Update accordingly.
38691         (INSN_UID): Use u2.insn_uid.
38692         (INSN_CHAIN_CODE_P): Define.
38693         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
38694         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
38695         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
38696         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
38697         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
38698         indices accordingly.
38699         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
38700         Update indices for insn-chain rtxes.
38701         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
38702         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
38703         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
38704         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
38705         * combine.c (try_combine): Likewise.
38706         * ira.c (setup_prohibited_mode_move_regs): Likewise.
38707
38708 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38709
38710         * rtl.def (REG): Remove middle field.
38711         * rtl.h (rtx_def): Add orignal_regno to u2.
38712         (ORIGINAL_REGNO): Use it instead of field 1.
38713         (REG_ATTRS): Lower field index accordingly.
38714         * gengtype.c (adjust_field_rtx_def): Remove handling of
38715         ORIGINAL_REGNO.  Move REG_ATTRS index down.
38716         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
38717         code that prints the REGNO.
38718
38719 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38720
38721         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
38722         GENERATOR_FILE.
38723
38724 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38725
38726         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
38727
38728 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
38729
38730         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
38731         (alloc_iv): Lower base expressions containing ADDR_EXPR.
38732
38733 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
38734
38735         * config/aarch64/aarch64-protos.h
38736         (aarch64_hard_regno_caller_save_mode): New prototype.
38737         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
38738         New function.
38739         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
38740
38741 2014-05-13  Christian Bruel  <christian.bruel@st.com>
38742
38743         * target.def (mode_switching): New hook vector.
38744         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
38745         (mode_exit, modepriority_to_mode): Likewise.
38746         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
38747         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38748         * target.h: Include tm.h and hard-reg-set.h.
38749         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
38750         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
38751         * doc/tm.texi Regenerate.
38752         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38753         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38754         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
38755         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
38756         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38757         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38758         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
38759         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
38760         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
38761         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
38762         (ix86_emit_mode_set): Hookify.
38763         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
38764         Delete.
38765         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38766         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
38767         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
38768         (epiphany_mode_priority_to_mode): Remove declaration.
38769         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
38770         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
38771         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
38772         Likewise.
38773         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
38774         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
38775         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
38776
38777 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
38778
38779         PR target/61060
38780         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
38781         is const0_rtx, return immediately.  Don't test count == 0 when
38782         it is always true.
38783
38784 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38785
38786         * Makefile.in: add shrink-wrap.o.
38787         * config/i386/i386.c: include "shrink-wrap.h"
38788         * function.c: Likewise.
38789         (requires_stack_frame_p, next_block_for_reg,
38790         move_insn_for_shrink_wrap, prepare_shrink_wrap,
38791         dup_block_and_redirect): Move to shrink-wrap.c
38792         (thread_prologue_and_epilogue_insns): Extract three code segments
38793         as functions in shrink-wrap.c
38794         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
38795         shrink-wrap.h
38796         * shrink-wrap.c: New file.
38797         * shrink-wrap.h: New file.
38798
38799 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38800
38801         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
38802         reference to Solaris.
38803
38804 2014-05-12  Mike Stump  <mikestump@comcast.net>
38805
38806         PR other/31778
38807         * genattrtab.c (filename): Add.
38808         (convert_set_attr_alternative): Improve error message.
38809         (check_defs): Restore read_md_filename for error messages.
38810         (gen_insn): Save filename.
38811
38812 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
38813
38814         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
38815         -fno-local-ivars and -fivar-visibility.
38816         * c-family/c.opt: Make -Wshadow also implicitly enable
38817         -Wshadow-ivar.
38818
38819 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38820
38821         * doc/tm.texi: Remove reference to deleted macro.
38822         * doc/tm.texi.in: Likewise.
38823
38824 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
38825
38826         PR target/60991
38827         * config/avr/avr.c (avr_out_store_psi): Use correct constant
38828         to restore Y.
38829
38830 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
38831
38832         PR libgcc/61152
38833         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38834         * config/arm/aout.h (License): Same.
38835         * config/arm/bpabi.h (License): Same.
38836         * config/arm/elf.h (License): Same.
38837         * config/arm/linux-elf.h (License): Same.
38838         * config/arm/linux-gas.h (License): Same.
38839         * config/arm/netbsd-elf.h (License): Same.
38840         * config/arm/uclinux-eabi.h (License): Same.
38841         * config/arm/uclinux-elf.h (License): Same.
38842         * config/arm/vxworks.h (License): Same.
38843
38844 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
38845
38846         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38847         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38848         number of operands to 3.
38849         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38850         * tree-nested.c (convert_nonlocal_omp_clauses,
38851         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38852         * gimplify.c (gimplify_scan_omp_clauses): Handle
38853         OMP_CLAUSE_LINEAR_STMT.
38854         * omp-low.c (lower_rec_input_clauses): Fix typo.
38855         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38856         cast between Fortran boolean_type_node and C _Bool if
38857         needed.
38858
38859 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
38860
38861         PR tree-optimization/61136
38862         * wide-int.h (multiple_of_p): Define a version that doesn't return
38863         the quotient.
38864         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38865         integer_zerop/const_binop pair.
38866         (multiple_of_p): Likewise, converting both operands to widest_int
38867         precision.
38868
38869 2014-05-09  Teresa Johnson  <tejohnson@google.com>
38870
38871         * cgraphunit.c (analyze_functions): Use correct dump file.
38872
38873 2014-05-09  Florian Weimer  <fweimer@redhat.com>
38874
38875         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38876         expand_used_vars.
38877         (stack_protect_return_slot_p): New function.
38878         (expand_used_vars): Call stack_protect_decl_p and
38879         stack_protect_return_slot_p for -fstack-protector-strong.
38880
38881 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
38882         Andrew Haley <aph@redhat.com>
38883         Richard Sandiford <rdsandiford@googlemail.com>
38884
38885         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38886         pages.
38887
38888 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
38889
38890         PR middle-end/61111
38891         * fold-const.c (fold_binary_loc): Changed width of mask.
38892
38893 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38894
38895         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38896         unsigned int initializers for regno_in, regno_out.
38897
38898 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38899
38900         PR target/61055
38901         * config/avr/avr.md (cc): Add new attribute set_vzn.
38902         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38903         Set cc insn attribute to set_vzn instead of set_zn for alternatives
38904         with INC, DEC or NEG.
38905         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38906         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38907         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38908
38909 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38910
38911         Revert:
38912         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38913
38914         * wide-int.cc (UTItype): Define.
38915         (UDWtype): Define for appropriate W_TYPE_SIZE.
38916
38917 2014-05-09  Richard Biener  <rguenther@suse.de>
38918
38919         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38920         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38921         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38922         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38923         ssa_propagate): Adjust.
38924
38925 2014-05-08  Jeff Law  <law@redhat.com>
38926
38927         PR tree-optimization/61009
38928         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38929         tri-state rather than a boolean.  When a block is too big to
38930         thread through, inform caller via negative return value.
38931         (thread_across_edge): If a block was too big for normal threading,
38932         then it's too big for a joiner too, so remove temporary equivalences
38933         and return immediately.
38934
38935 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38936             Matthias Klose  <doko@ubuntu.com>
38937
38938         PR driver/61106
38939         * optc-gen.awk: Fix option handling for -Wunused-parameter.
38940
38941 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38942
38943         PR target/59952
38944         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38945
38946 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38947
38948         PR target/61092
38949         * config/alpha/alpha.c: Include gimple-iterator.h.
38950         (alpha_gimple_fold_builtin): New function.  Move
38951         ALPHA_BUILTIN_UMULH folding from ...
38952         (alpha_fold_builtin): ... here.
38953         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38954
38955 2014-05-08  Wei Mi  <wmi@google.com>
38956
38957         PR target/58066
38958         * config/i386/i386.c (ix86_compute_frame_layout): Update
38959         preferred_stack_boundary for call, expanded from tls descriptor.
38960         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38961         to depend on SP register.
38962         (*tls_local_dynamic_base_32_gnu): Ditto.
38963         (*tls_local_dynamic_32_once): Ditto.
38964         (tls_global_dynamic_64_<mode>): Set
38965         ix86_tls_descriptor_calls_expanded_in_cfun.
38966         (tls_local_dynamic_base_64_<mode>): Ditto.
38967         (tls_global_dynamic_32): Set
38968         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38969         to depend on SP register.
38970         (tls_local_dynamic_base_32): Ditto.
38971
38972 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38973
38974         * config/arm/arm_neon.h: Update comment.
38975         * config/arm/neon-docgen.ml: Delete.
38976         * config/arm/neon-gen.ml: Delete.
38977         * doc/arm-neon-intrinsics.texi: Update comment.
38978
38979 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38980
38981         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38982         and v4sf versions.
38983         (vand, vorr, veor, vorn, vbic): Remove.
38984         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38985         iterator.
38986         (neon_vsub_unspec): Likewise.
38987         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38988
38989 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38990
38991         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38992         (vadd_s16): Likewise.
38993         (vadd_s32): Likewise.
38994         (vadd_f32): Likewise.
38995         (vadd_u8): Likewise.
38996         (vadd_u16): Likewise.
38997         (vadd_u32): Likewise.
38998         (vadd_s64): Likewise.
38999         (vadd_u64): Likewise.
39000         (vaddq_s8): Likewise.
39001         (vaddq_s16): Likewise.
39002         (vaddq_s32): Likewise.
39003         (vaddq_s64): Likewise.
39004         (vaddq_f32): Likewise.
39005         (vaddq_u8): Likewise.
39006         (vaddq_u16): Likewise.
39007         (vaddq_u32): Likewise.
39008         (vaddq_u64): Likewise.
39009         (vmul_s8): Likewise.
39010         (vmul_s16): Likewise.
39011         (vmul_s32): Likewise.
39012         (vmul_f32): Likewise.
39013         (vmul_u8): Likewise.
39014         (vmul_u16): Likewise.
39015         (vmul_u32): Likewise.
39016         (vmul_p8): Likewise.
39017         (vmulq_s8): Likewise.
39018         (vmulq_s16): Likewise.
39019         (vmulq_s32): Likewise.
39020         (vmulq_f32): Likewise.
39021         (vmulq_u8): Likewise.
39022         (vmulq_u16): Likewise.
39023         (vmulq_u32): Likewise.
39024         (vsub_s8): Likewise.
39025         (vsub_s16): Likewise.
39026         (vsub_s32): Likewise.
39027         (vsub_f32): Likewise.
39028         (vsub_u8): Likewise.
39029         (vsub_u16): Likewise.
39030         (vsub_u32): Likewise.
39031         (vsub_s64): Likewise.
39032         (vsub_u64): Likewise.
39033         (vsubq_s8): Likewise.
39034         (vsubq_s16): Likewise.
39035         (vsubq_s32): Likewise.
39036         (vsubq_s64): Likewise.
39037         (vsubq_f32): Likewise.
39038         (vsubq_u8): Likewise.
39039         (vsubq_u16): Likewise.
39040         (vsubq_u32): Likewise.
39041         (vsubq_u64): Likewise.
39042         (vand_s8): Likewise.
39043         (vand_s16): Likewise.
39044         (vand_s32): Likewise.
39045         (vand_u8): Likewise.
39046         (vand_u16): Likewise.
39047         (vand_u32): Likewise.
39048         (vand_s64): Likewise.
39049         (vand_u64): Likewise.
39050         (vandq_s8): Likewise.
39051         (vandq_s16): Likewise.
39052         (vandq_s32): Likewise.
39053         (vandq_s64): Likewise.
39054         (vandq_u8): Likewise.
39055         (vandq_u16): Likewise.
39056         (vandq_u32): Likewise.
39057         (vandq_u64): Likewise.
39058         (vorr_s8): Likewise.
39059         (vorr_s16): Likewise.
39060         (vorr_s32): Likewise.
39061         (vorr_u8): Likewise.
39062         (vorr_u16): Likewise.
39063         (vorr_u32): Likewise.
39064         (vorr_s64): Likewise.
39065         (vorr_u64): Likewise.
39066         (vorrq_s8): Likewise.
39067         (vorrq_s16): Likewise.
39068         (vorrq_s32): Likewise.
39069         (vorrq_s64): Likewise.
39070         (vorrq_u8): Likewise.
39071         (vorrq_u16): Likewise.
39072         (vorrq_u32): Likewise.
39073         (vorrq_u64): Likewise.
39074         (veor_s8): Likewise.
39075         (veor_s16): Likewise.
39076         (veor_s32): Likewise.
39077         (veor_u8): Likewise.
39078         (veor_u16): Likewise.
39079         (veor_u32): Likewise.
39080         (veor_s64): Likewise.
39081         (veor_u64): Likewise.
39082         (veorq_s8): Likewise.
39083         (veorq_s16): Likewise.
39084         (veorq_s32): Likewise.
39085         (veorq_s64): Likewise.
39086         (veorq_u8): Likewise.
39087         (veorq_u16): Likewise.
39088         (veorq_u32): Likewise.
39089         (veorq_u64): Likewise.
39090         (vbic_s8): Likewise.
39091         (vbic_s16): Likewise.
39092         (vbic_s32): Likewise.
39093         (vbic_u8): Likewise.
39094         (vbic_u16): Likewise.
39095         (vbic_u32): Likewise.
39096         (vbic_s64): Likewise.
39097         (vbic_u64): Likewise.
39098         (vbicq_s8): Likewise.
39099         (vbicq_s16): Likewise.
39100         (vbicq_s32): Likewise.
39101         (vbicq_s64): Likewise.
39102         (vbicq_u8): Likewise.
39103         (vbicq_u16): Likewise.
39104         (vbicq_u32): Likewise.
39105         (vbicq_u64): Likewise.
39106         (vorn_s8): Likewise.
39107         (vorn_s16): Likewise.
39108         (vorn_s32): Likewise.
39109         (vorn_u8): Likewise.
39110         (vorn_u16): Likewise.
39111         (vorn_u32): Likewise.
39112         (vorn_s64): Likewise.
39113         (vorn_u64): Likewise.
39114         (vornq_s8): Likewise.
39115         (vornq_s16): Likewise.
39116         (vornq_s32): Likewise.
39117         (vornq_s64): Likewise.
39118         (vornq_u8): Likewise.
39119         (vornq_u16): Likewise.
39120         (vornq_u32): Likewise.
39121         (vornq_u64): Likewise.
39122
39123 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39124
39125         * wide-int.cc (UTItype): Define.
39126         (UDWtype): Define for appropriate W_TYPE_SIZE.
39127
39128 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
39129
39130         PR tree-optimization/59100
39131         * tree-ssa-phiopt.c: Include tree-inline.h.
39132         (neutral_element_p, absorbing_element_p): New functions.
39133         (value_replacement): Handle conditional binary operations with a
39134         neutral or absorbing element.
39135
39136 2014-05-08  Richard Biener  <rguenther@suse.de>
39137
39138         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
39139         folding the expression.
39140         (valueize_expr): Remove.
39141         (visit_reference_op_load): Do not valueize the result of
39142         vn_get_expr_for.
39143         (simplify_binary_expression): Likewise.
39144         (simplify_unary_expression): Likewise.
39145
39146 2014-05-08  Richard Biener  <rguenther@suse.de>
39147
39148         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
39149         looking at TYPE_ARG_TYPES.
39150
39151 2014-05-08  Richard Biener  <rguenther@suse.de>
39152
39153         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
39154         pointer propagation special-case.
39155
39156 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
39157
39158         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
39159         core part of address expressions.
39160
39161 2014-05-08  Alan Modra  <amodra@gmail.com>
39162
39163         PR target/60737
39164         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
39165         loads and stores when -mno-strict-align at any alignment.
39166         (expand_block_clear): Similarly.  Also correct calculation of
39167         instruction count.
39168
39169 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
39170
39171         PR middle-end/39246
39172         * tree-complex.c (expand_complex_move): Keep line info when expanding
39173         complex move.
39174         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
39175         of complex expression. Use new argument to display correct location
39176         for values coming from phi statement.
39177         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
39178         (warn_uninitialized_phi): Pass location of phi argument to
39179         warn_uninit.
39180         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
39181         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
39182
39183 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
39184
39185         * config/rs6000/predicates.md (indexed_address_mem): New.
39186         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
39187         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
39188         fpstore_ux, fpstore_u.
39189         (sign_extend, indexed, update): New.
39190         (cell_micro): Adjust.
39191         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
39192         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
39193         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
39194         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
39195         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
39196         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
39197         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
39198         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
39199         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
39200         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
39201         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
39202         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
39203         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
39204         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
39205         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
39206
39207         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
39208         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
39209         *vsx_extract_<mode>_store): Adjust.
39210         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
39211         is_cracked_insn, insn_must_be_first_in_group,
39212         insn_must_be_last_in_group): Adjust.
39213
39214         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
39215         Adjust.
39216         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
39217         ppc440-fpstore): Adjust.
39218         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
39219         ppc476-fpstore): Adjust.
39220         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
39221         ppc601-fpstore): Adjust.
39222         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
39223         Adjust.
39224         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
39225         Adjust.
39226         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
39227         ppc7450-fpstore): Adjust.
39228         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
39229         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
39230         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
39231         Adjust.
39232         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
39233         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
39234         cell-fpstore, cell-fpstore-update): Adjust.
39235         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
39236         ppce300c3_store, ppce300c3_fpstore): Adjust.
39237         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
39238         e500mc_fpstore): Adjust.
39239         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
39240         e500mc64_store, e500mc64_fpstore): Adjust.
39241         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
39242         e5500_fpstore): Adjust.
39243         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
39244         e6500_fpstore): Adjust.
39245         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
39246         Adjust.
39247         * config/rs6000/power4.md (power4-load, power4-load-ext,
39248         power4-load-ext-update, power4-load-ext-update-indexed,
39249         power4-load-update-indexed, power4-load-update, power4-fpload,
39250         power4-fpload-update, power4-store, power4-store-update,
39251         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
39252         Adjust.
39253         * config/rs6000/power5.md (power5-load, power5-load-ext,
39254         power5-load-ext-update, power5-load-ext-update-indexed,
39255         power5-load-update-indexed, power5-load-update, power5-fpload,
39256         power5-fpload-update, power5-store, power5-store-update,
39257         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
39258         Adjust.
39259         * config/rs6000/power6.md (power6-load, power6-load-ext,
39260         power6-load-update, power6-load-update-indexed,
39261         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
39262         power6-fpload-update, power6-store, power6-store-update,
39263         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
39264         Adjust.
39265         * config/rs6000/power7.md (power7-load, power7-load-ext,
39266         power7-load-update, power7-load-update-indexed,
39267         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
39268         power7-fpload-update, power7-store, power7-store-update,
39269         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
39270         Adjust.
39271         * config/rs6000/power8.md (power8-load, power8-load-update,
39272         power8-load-ext, power8-load-ext-update, power8-fpload,
39273         power8-fpload-update, power8-store, power8-store-update-indexed,
39274         power8-fpstore, power8-fpstore-update): Adjust.
39275         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
39276         Adjust.
39277         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
39278         titan_lsu_store, titan_lsu_fpstore): Adjust.
39279         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
39280
39281 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
39282
39283         PR target/60884
39284         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
39285         unrolled byte insns.  Emit address increments after move insns.
39286
39287 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
39288
39289         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
39290         const_gimple, rather than a gimple.
39291         (gimple_call_builtin_p): Likewise, for the three variants.
39292
39293         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
39294         (gimple_call_builtin_p): Likewise, for the three variants.
39295
39296 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
39297
39298         PR tree-optimization/61095
39299         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
39300
39301 2014-05-07  Richard Biener  <rguenther@suse.de>
39302
39303         PR tree-optimization/61034
39304         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
39305         (maybe_skip_until): Use translate to take into account
39306         lattices when trying to do disambiguations.
39307         (get_continuation_for_phi_1): Likewise.
39308         (get_continuation_for_phi): Adjust for added translate arguments.
39309         (walk_non_aliased_vuses): Likewise.
39310         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
39311         (walk_non_aliased_vuses): Likewise.
39312         (call_may_clobber_ref_p_1): Declare.
39313         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
39314         calls.  Stop early if we are only supposed to disambiguate.
39315         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
39316
39317 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
39318
39319         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
39320         Emit an error when the function has arguments.
39321
39322 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
39323
39324         * cfgloop.h (unswitch_loops): Remove.
39325         * doc/passes.texi: Remove references to loop-unswitch.c
39326         * timevar.def (TV_LOOP_UNSWITCH): Remove.
39327
39328 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
39329
39330         * tree-vect-data-refs.c (vect_grouped_load_supported): New
39331         check for loads group of length 3.
39332         (vect_permute_load_chain): New permutations for loads group of
39333         length 3.
39334         * tree-vect-stmts.c (vect_model_load_cost): Change cost
39335         of vec_perm_shuffle for the new permutations.
39336
39337 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
39338
39339         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
39340         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
39341         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
39342         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
39343         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
39344         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
39345         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
39346         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
39347
39348 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
39349
39350         * loop-unswitch.c: Delete.
39351
39352 2014-05-07  Richard Biener  <rguenther@suse.de>
39353
39354         * config.gcc: Always set need_64bit_hwint to yes.
39355
39356 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
39357
39358         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
39359         of using optimize_size.
39360
39361 2014-05-06  Mike Stump  <mikestump@comcast.net>
39362
39363         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
39364
39365 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
39366
39367         * config/i386/sse.md (*mov<mode>_internal)
39368         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
39369         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
39370         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
39371         (*<code><mode>3, *andnot<mode>3<mask_name>)
39372         (<mask_codefor><code><mode>3<mask_name>): Only consider
39373         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
39374
39375 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
39376
39377         Revert:
39378         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39379
39380         * lra-constraints.c (valid_address_p): Move earlier in file.
39381         Add a constraint argument to the address_info version.
39382         (satisfies_memory_constraint_p): New function.
39383         (satisfies_address_constraint_p): Likewise.
39384         (process_alt_operands, curr_insn_transform): Use them.
39385         (process_address): Pass the constraint to valid_address_p when
39386         checking address operands.
39387
39388 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
39389
39390         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
39391         to their respective blocks.  Fix inadvertent use of "node".
39392
39393 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
39394
39395         * emit-rtl.c (init_derived_machine_modes): New functionm, split
39396         out from...
39397         (init_emit_once): ...here.
39398         * rtl.h (init_derived_machine_modes): Declare.
39399         * toplev.c (do_compile): Call it even if no_backend.
39400
39401 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
39402             Mike Stump  <mikestump@comcast.net>
39403             Richard Sandiford  <rdsandiford@googlemail.com>
39404             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39405
39406         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
39407         (rtx_equal_for_memref_p): Update comment.
39408         (adjust_offset_for_component_ref): Use wide-int interfaces.
39409         * builtins.c (get_object_alignment_2): Likewise.
39410         (c_readstr): Likewise.
39411         (target_char_cast): Add comment.
39412         (determine_block_size): Use wide-int interfaces.
39413         (expand_builtin_signbit): Likewise.
39414         (fold_builtin_int_roundingfn): Likewise.
39415         (fold_builtin_bitop): Likewise.
39416         (fold_builtin_bswap): Likewise.
39417         (fold_builtin_logarithm): Use signop.
39418         (fold_builtin_pow): Likewise.
39419         (fold_builtin_memory_op): Use wide-int interfaces.
39420         (fold_builtin_object_size): Likewise.
39421         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
39422         nb_iterations_estimate.
39423         (record_niter_bound): Use wide-int interfaces.
39424         (get_estimated_loop_iterations_int): Likewise.
39425         (get_estimated_loop_iterations): Likewise.
39426         (get_max_loop_iterations): Likewise.
39427         * cfgloop.h: Include wide-int.h.
39428         (struct nb_iter_bound): Change bound to widest_int.
39429         (struct loop): Change nb_iterations_upper_bound and
39430         nb_iterations_estimate to widest_int.
39431         (record_niter_bound): Switch to use widest_int.
39432         (get_estimated_loop_iterations): Likewise.
39433         (get_max_loop_iterations): Likewise.
39434         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
39435         update for wide-int.
39436         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
39437         * combine.c (try_combine): Likewise.
39438         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
39439         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
39440         interfaces.
39441         (aarch64_float_const_representable_p): Likewise.
39442         * config/arc/arc.c: Include wide-int.h.
39443         (arc_can_use_doloop_p): Use wide-int interfaces.
39444         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
39445         (vfp3_const_double_index): Likewise.
39446         * config/avr/avr.c (avr_out_round): Likewise.
39447         (avr_fold_builtin): Likewise.
39448         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
39449         (bfin_can_use_doloop_p): Likewise.
39450         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
39451         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
39452         * config/i386/i386.c: Include wide-int.h.
39453         (ix86_data_alignment): Use wide-int interfaces.
39454         (ix86_local_alignment): Likewise.
39455         (ix86_emit_swsqrtsf): Update real_from_integer.
39456         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
39457         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
39458         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
39459         (zero_constant): Likewise.
39460         (input_operand): Likewise.
39461         (splat_input_operand): Likewise.
39462         (non_logical_cint_operand): Change const_double to const_wide_int.
39463         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
39464         (easy_altivec_constant): Remove comment.
39465         (paired_expand_vector_init): Use CONSTANT_P.
39466         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
39467         (rs6000_emit_move): Update checks.
39468         (rs6000_aggregate_candidate): Use wide-int interfaces.
39469         (rs6000_expand_ternop_builtin): Likewise.
39470         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
39471         (rs6000_assemble_integer): Likewise.
39472         (rs6000_hash_constant): Likewise.
39473         (output_toc): Likewise.
39474         (rs6000_rtx_costs): Likewise.
39475         (rs6000_emit_swrsqrt); Update call to real_from_integer.
39476         * config/rs6000/rs6000-c.c: Include wide-int.h.
39477         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
39478         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
39479         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
39480         Handle CONST_WIDE_INT.
39481         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
39482         Use tree_fits_uhwi_p.
39483         * config/sparc/sparc.c: Include wide-int.h.
39484         (sparc_fold_builtin): Use wide-int interfaces.
39485         * config/vax/vax.c: Include wide-int.h.
39486         (vax_float_literal): Use real_from_integer.
39487         * coretypes.h (struct hwivec_def): New.
39488         (hwivec): New.
39489         (const_hwivec): New.
39490         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
39491         (equiv_constant): Handle CONST_WIDE_INT.
39492         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
39493         (cselib_hash_rtx): Handle CONST_WIDE_INT.
39494         * dbxout.c (stabstr_U): Use wide-int interfaces.
39495         (dbxout_type): Update to use cst_fits_shwi_p.
39496         * defaults.h (LOG2_BITS_PER_UNIT): Define.
39497         (TARGET_SUPPORTS_WIDE_INT): Add default.
39498         * dfp.c: Include wide-int.h.
39499         (decimal_real_to_integer2): Use wide-int interfaces and rename to
39500         decimal_real_to_integer.
39501         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
39502         decimal_real_to_integer.
39503         * doc/generic.texi (Constant expressions): Update for wide_int.
39504         * doc/rtl.texi (const_double): Likewise.
39505         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
39506         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
39507         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
39508         (REAL_VALUE_FROM_INT): Remove.
39509         (TARGET_SUPPORTS_WIDE_INT): New.
39510         * doc/tm.texi: Regenerate.
39511         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
39512         * double-int.h: Include wide-int.h.
39513         (struct wi::int_traits): New.
39514         * dwarf2out.c (get_full_len): New.
39515         (dw_val_equal_p): Add case dw_val_class_wide_int.
39516         (size_of_loc_descr): Likewise.
39517         (output_loc_operands): Likewise.
39518         (insert_double): Remove.
39519         (insert_wide_int): New.
39520         (add_AT_wide): New.
39521         (print_die): Add case dw_val_class_wide_int.
39522         (attr_checksum): Likewise.
39523         (attr_checksum_ordered): Likewise.
39524         (same_dw_val_p): Likewise.
39525         (size_of_die): Likewise.
39526         (value_format): Likewise.
39527         (output_die): Likewise.
39528         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
39529         Use wide-int.
39530         (clz_loc_descriptor): Use wide-int interfaces.
39531         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
39532         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
39533         (round_up_to_align): Use wide-int interfaces.
39534         (field_byte_offset): Likewise.
39535         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
39536         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
39537         CONST_DOUBLE handling.  Use wide-int interfaces.
39538         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
39539         (gen_enumeration_type_die): Use add_AT_wide.
39540         (hash_loc_operands): Add case dw_val_class_wide_int.
39541         (compare_loc_operands): Likewise.
39542         * dwarf2out.h: Include wide-int.h.
39543         (wide_int_ptr): New.
39544         (enum dw_val_class): Add dw_val_class_wide_int.
39545         (struct dw_val_struct): Add val_wide.
39546         * emit-rtl.c (const_wide_int_htab): New.
39547         (const_wide_int_htab_hash): New.
39548         (const_wide_int_htab_eq): New.
39549         (lookup_const_wide_int): New.
39550         (const_double_htab_hash): Use wide-int interfaces.
39551         (const_double_htab_eq): Likewise.
39552         (rtx_to_double_int): Conditionally compile for wide-int.
39553         (immed_double_int_const): Rename to immed_wide_int_const and
39554         update for wide-int.
39555         (immed_double_const): Conditionally compile for wide-int.
39556         (init_emit_once): Use wide-int interfaces.
39557         * explow.c (plus_constant): Likewise.
39558         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
39559         (lshift_value): Use wide-int interfaces.
39560         (expand_mult): Likewise.
39561         (choose_multiplier): Likewise.
39562         (expand_smod_pow2): Likewise.
39563         (make_tree): Likewise.
39564         * expr.c (convert_modes): Consolidate handling of constants.
39565         Use wide-int interfaces.
39566         (emit_group_load_1): Add note.
39567         (store_expr): Update comment.
39568         (get_inner_reference): Use wide-int interfaces.
39569         (expand_constructor): Update comment.
39570         (expand_expr_real_2): Use wide-int interfaces.
39571         (expand_expr_real_1): Likewise.
39572         (reduce_to_bit_field_precision): Likewise.
39573         (const_vector_from_tree): Likewise.
39574         * final.c: Include wide-int-print.h.
39575         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
39576         * fixed-value.c: Include wide-int.h.
39577         (fixed_from_string): Use wide-int interfaces.
39578         (fixed_to_decimal): Likewise.
39579         (fixed_convert_from_real): Likewise.
39580         (real_convert_from_fixed): Likewise.
39581         * fold-const.h (mem_ref_offset): Return an offset_int.
39582         (div_if_zero_remainder): Remove code parameter.
39583         * fold-const.c (div_if_zero_remainder): Remove code parameter.
39584         Use wide-int interfaces.
39585         (may_negate_without_overflow_p): Use wide-int interfaces.
39586         (negate_expr_p): Likewise.
39587         (fold_negate_expr): Likewise.
39588         (int_const_binop_1): Likewise.
39589         (const_binop): Likewise.
39590         (fold_convert_const_int_from_int): Likewise.
39591         (fold_convert_const_int_from_real): Likewise.
39592         (fold_convert_const_int_from_fixed): Likewise.
39593         (fold_convert_const_fixed_from_int): Likewise.
39594         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
39595         (sign_bit_p): Use wide-int interfaces.
39596         (make_range_step): Likewise.
39597         (build_range_check): Likewise.  Pass an integer of the correct type
39598         instead of using integer_one_node.
39599         (range_predecessor): Pass an integer of the correct type instead
39600         of using integer_one_node.
39601         (range_successor): Likewise.
39602         (merge_ranges): Likewise.
39603         (unextend): Use wide-int interfaces.
39604         (extract_muldiv_1): Likewise.
39605         (fold_div_compare): Likewise.
39606         (fold_single_bit_test): Likewise.
39607         (fold_sign_changed_comparison): Likewise.
39608         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
39609         (fold_plusminus_mult_expr): Use wide-int interfaces.
39610         (native_encode_int): Likewise.
39611         (native_interpret_int): Likewise.
39612         (fold_unary_loc): Likewise.
39613         (pointer_may_wrap_p): Likewise.
39614         (size_low_cst): Likewise.
39615         (mask_with_tz): Likewise.
39616         (fold_binary_loc): Likewise.
39617         (fold_ternary_loc): Likewise.
39618         (multiple_of_p): Likewise.
39619         (tree_call_nonnegative_warnv_p): Update calls to
39620         tree_int_cst_min_precision and real_from_integer.
39621         (fold_negate_const): Use wide-int interfaces.
39622         (fold_abs_const): Likewise.
39623         (fold_relational_const): Use tree_int_cst_lt.
39624         (round_up_loc): Use wide-int interfaces.
39625         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
39626         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
39627         * gengtype.c: Remove include of double-int.h.
39628         (do_typedef): Use wide-int interfaces.
39629         (open_base_files): Add wide-int.h.
39630         (main): Add offset_int and widest_int typedefs.
39631         * gengtype-lex.l: Handle "^".
39632         (CXX_KEYWORD): Add "static".
39633         * gengtype-parse.c (require3): New.
39634         (require_template_declaration): Handle constant template arguments
39635         and nested templates.
39636         * gengtype-state.c: Don't include "double-int.h".
39637         * genpreds.c (write_one_predicate_function): Update comment.
39638         (write_tm_constrs_h): Add check for hval and lval use in
39639         CONST_WIDE_INT.
39640         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
39641         (add_to_sequence): Likewise.
39642         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
39643         and const_double_operand.
39644         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
39645         interfaces.
39646         * gimple-fold.c (get_base_constructor): Likewise.
39647         (fold_array_ctor_reference): Likewise.
39648         (fold_nonarray_ctor_reference): Likewise.
39649         (fold_const_aggregate_ref_1): Likewise.
39650         (gimple_val_nonnegative_real_p): Likewise.
39651         (gimple_fold_indirect_ref): Likewise.
39652         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
39653         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
39654         (struct slsr_cand_d): Change index to be widest_int.
39655         (struct incr_info_d): Change incr to be widest_int.
39656         (alloc_cand_and_find_basis): Use wide-int interfaces.
39657         (slsr_process_phi): Likewise.
39658         (backtrace_base_for_ref): Likewise.  Return a widest_int.
39659         (restructure_reference): Take a widest_int instead of a double_int.
39660         (slsr_process_ref): Use wide-int interfaces.
39661         (create_mul_ssa_cand): Likewise.
39662         (create_mul_imm_cand): Likewise.
39663         (create_add_ssa_cand): Likewise.
39664         (create_add_imm_cand): Take a widest_int instead of a double_int.
39665         (slsr_process_add): Use wide-int interfaces.
39666         (slsr_process_cast): Likewise.
39667         (slsr_process_copy): Likewise.
39668         (dump_candidate): Likewise.
39669         (dump_incr_vec): Likewise.
39670         (replace_ref): Likewise.
39671         (cand_increment): Likewise.  Return a widest_int.
39672         (cand_abs_increment): Likewise.
39673         (replace_mult_candidate): Take a widest_int instead of a double_int.
39674         (replace_unconditional_candidate): Use wide-int interfaces.
39675         (incr_vec_index): Take a widest_int instead of a double_int.
39676         (create_add_on_incoming_edge): Likewise.
39677         (create_phi_basis): Use wide-int interfaces.
39678         (replace_conditional_candidate): Likewise.
39679         (record_increment): Take a widest_int instead of a double_int.
39680         (record_phi_increments): Use wide-int interfaces.
39681         (phi_incr_cost): Take a widest_int instead of a double_int.
39682         (lowest_cost_path): Likewise.
39683         (total_savings): Likewise.
39684         (analyze_increments): Use wide-int interfaces.
39685         (ncd_with_phi): Take a widest_int instead of a double_int.
39686         (ncd_of_cand_and_phis): Likewise.
39687         (nearest_common_dominator_for_cands): Likewise.
39688         (insert_initializers): Use wide-int interfaces.
39689         (all_phi_incrs_profitable): Likewise.
39690         (replace_one_candidate): Likewise.
39691         (replace_profitable_candidates): Likewise.
39692         * godump.c: Include wide-int-print.h.
39693         (go_output_typedef): Use wide-int interfaces.
39694         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
39695         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
39696         (build_loop_iteration_domains): Likewise.
39697         * hooks.h: Include wide-int.h rather than double-int.h.
39698         (hook_bool_dint_dint_uint_bool_true): Delete.
39699         (hook_bool_wint_wint_uint_bool_true): Declare.
39700         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
39701         (hook_bool_wint_wint_uint_bool_true): New.
39702         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
39703         interfaces.
39704         (ubsan_expand_si_overflow_mul_check): Likewise.
39705         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
39706         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
39707         (get_ancestor_addr_info): Likewise.
39708         (ipa_modify_call_arguments): Likewise.
39709         * loop-doloop.c (doloop_modify): Likewise.
39710         (doloop_optimize): Likewise.
39711         * loop-iv.c (iv_number_of_iterations): Likewise.
39712         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
39713         (unroll_loop_constant_iterations): Likewise.
39714         (decide_unroll_runtime_iterations): Likewise.
39715         (unroll_loop_runtime_iterations): Likewise.
39716         (decide_peel_simple): Likewise.
39717         (decide_unroll_stupid): Likewise.
39718         * lto-streamer-in.c (streamer_read_wi): Add.
39719         (input_cfg): Use wide-int interfaces.
39720         (lto_input_tree_1): Likewise.
39721         * lto-streamer-out.c (streamer_write_wi): Add.
39722         (hash_tree): Use wide-int interfaces.
39723         (output_cfg): Likewise.
39724         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
39725         (GTFILES): Add wide-int.h and signop.h.
39726         (TAGS): Look for .cc files too.
39727         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
39728         * optabs.c (expand_subword_shift): Likewise.
39729         (expand_doubleword_shift): Likewise.
39730         (expand_absneg_bit): Likewise.
39731         (expand_copysign_absneg): Likewise.
39732         (expand_copysign_bit): Likewise.
39733         * postreload.c (reload_cse_simplify_set): Likewise.
39734         * predict.c (predict_iv_comparison): Likewise.
39735         * pretty-print.h: Include wide-int-print.h.
39736         (pp_wide_int) New.
39737         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
39738         * print-tree.c: Include wide-int-print.h.
39739         (print_node_brief): Use wide-int interfaces.
39740         (print_node): Likewise.
39741         * read-rtl.c (validate_const_wide_int): New.
39742         (read_rtx_code): Add CONST_WIDE_INT case.
39743         * real.c: Include wide-int.h.
39744         (real_to_integer2): Delete.
39745         (real_to_integer): New function, returning a wide_int.
39746         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39747         (ten_to_ptwo): Update call to real_from_integer.
39748         (real_digit): Likewise.
39749         * real.h: Include signop.h, wide-int.h and insn-modes.h.
39750         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
39751         (REAL_VALUE_TO_INT): Delete.
39752         (real_to_integer): Declare a wide-int form.
39753         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39754         * recog.c (const_int_operand): Improve comment.
39755         (const_scalar_int_operand): New.
39756         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
39757         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
39758         (split_double): Likewise.
39759         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
39760         (rtx_size): Likewise.
39761         (rtx_alloc_stat_v): New.
39762         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
39763         (cwi_output_hex): New.
39764         (iterative_hash_rtx): Handle CONST_WIDE_INT.
39765         (cwi_check_failed_bounds): New.
39766         * rtl.def (CONST_WIDE_INT): New.
39767         * rtl.h: Include <utility> and wide-int.h.
39768         (struct hwivec_def): New.
39769         (CWI_GET_NUM_ELEM): New.
39770         (CWI_PUT_NUM_ELEM): New.
39771         (struct rtx_def): Add num_elem and hwiv.
39772         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
39773         (CASE_CONST_UNIQUE): Likewise.
39774         (CASE_CONST_ANY): Likewise.
39775         (CONST_SCALAR_INT_P): Likewise.
39776         (CONST_WIDE_INT_P): New.
39777         (CWI_ELT): New.
39778         (HWIVEC_CHECK): New.
39779         (cwi_check_failed_bounds): New.
39780         (CWI_ELT): New.
39781         (HWIVEC_CHECK): New.
39782         (CONST_WIDE_INT_VEC) New.
39783         (CONST_WIDE_INT_NUNITS) New.
39784         (CONST_WIDE_INT_ELT) New.
39785         (rtx_mode_t): New type.
39786         (wi::int_traits <rtx_mode_t>): New.
39787         (wi::shwi): New.
39788         (wi::min_value): New.
39789         (wi::max_value): New.
39790         (rtx_alloc_v) New.
39791         (const_wide_int_alloc): New.
39792         (immed_wide_int_const): New.
39793         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
39794         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
39795         * signop.h: New file.
39796         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
39797         (simplify_const_unary_operation): Use wide-int interfaces.
39798         (simplify_binary_operation_1): Likewise.
39799         (simplify_const_binary_operation): Likewise.
39800         (simplify_const_relational_operation): Likewise.
39801         (simplify_immed_subreg): Likewise.
39802         * stmt.c (expand_case): Likewise.
39803         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
39804         signop rather than a bool.
39805         * stor-layout.c (layout_type): Use wide-int interfaces.
39806         (initialize_sizetypes): Update calls to
39807         set_min_and_max_values_for_integral_type.
39808         (set_min_and_max_values_for_integral_type): Take a signop rather
39809         than a bool.  Use wide-int interfaces.
39810         (fixup_signed_type): Update accordingly.  Remove
39811         HOST_BITS_PER_DOUBLE_INT limit.
39812         (fixup_unsigned_type): Likewise.
39813         * system.h (STATIC_CONSTANT_P): New.
39814         (STATIC_ASSERT): New.
39815         * target.def (can_use_doloop_p): Take widest_ints rather than
39816         double_ints.
39817         * target.h: Include wide-int.h rather than double-int.h.
39818         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
39819         than double_ints.
39820         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
39821         rather than INT_CST_LT_UNSIGNED.
39822         (can_use_doloop_if_innermost): Take widest_ints rather than
39823         double_ints.
39824         * tree-affine.c: Include wide-int-print.h.
39825         (double_int_ext_for_comb): Delete.
39826         (wide_int_ext_for_comb): New.
39827         (aff_combination_zero): Use wide-int interfaces.
39828         (aff_combination_const): Take a widest_int instead of a double_int.
39829         (aff_combination_elt): Use wide-int interfaces.
39830         (aff_combination_scale): Take a widest_int instead of a double_int.
39831         (aff_combination_add_elt): Likewise.
39832         (aff_combination_add_cst): Likewise.
39833         (aff_combination_add): Use wide-int interfaces.
39834         (aff_combination_convert): Likewise.
39835         (tree_to_aff_combination): Likewise.
39836         (add_elt_to_tree): Take a widest_int instead of a double_int.
39837         (aff_combination_to_tree): Use wide-int interfaces.
39838         (aff_combination_remove_elt): Likewise.
39839         (aff_combination_add_product): Take a widest_int instead of
39840         a double_int.
39841         (aff_combination_mult): Use wide-int interfaces.
39842         (aff_combination_expand): Likewise.
39843         (double_int_constant_multiple_p): Delete.
39844         (wide_int_constant_multiple_p): New.
39845         (aff_combination_constant_multiple_p): Take a widest_int pointer
39846         instead of a double_int pointer.
39847         (print_aff): Use wide-int interfaces.
39848         (get_inner_reference_aff): Take a widest_int pointer
39849         instead of a double_int pointer.
39850         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39851         * tree-affine.h: Include wide-int.h.
39852         (struct aff_comb_elt): Change type of coef to widest_int.
39853         (struct affine_tree_combination): Change type of offset to widest_int.
39854         (double_int_ext_for_comb): Delete.
39855         (wide_int_ext_for_comb): New.
39856         (aff_combination_const): Use widest_int instead of double_int.
39857         (aff_combination_scale): Likewise.
39858         (aff_combination_add_elt): Likewise.
39859         (aff_combination_constant_multiple_p): Likewise.
39860         (get_inner_reference_aff): Likewise.
39861         (aff_comb_cannot_overlap_p): Likewise.
39862         (aff_combination_zero_p): Use wide-int interfaces.
39863         * tree.c: Include tree.h.
39864         (init_ttree): Use make_int_cst.
39865         (tree_code_size): Removed code for INTEGER_CST case.
39866         (tree_size): Add INTEGER_CST case.
39867         (make_node_stat): Update comment.
39868         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39869         (build_int_cst_type): Use wide-int interfaces.
39870         (double_int_to_tree): Likewise.
39871         (double_int_fits_to_tree_p): Delete.
39872         (force_fit_type_double): Delete.
39873         (force_fit_type): New.
39874         (int_cst_hash_hash): Use wide-int interfaces.
39875         (int_cst_hash_eq): Likewise.
39876         (build_int_cst_wide): Delete.
39877         (wide_int_to_tree): New.
39878         (cache_integer_cst): Use wide-int interfaces.
39879         (build_low_bits_mask): Likewise.
39880         (cst_and_fits_in_hwi): Likewise.
39881         (real_value_from_int_cst): Likewise.
39882         (make_int_cst_stat): New.
39883         (integer_zerop): Use wide_int interfaces.
39884         (integer_onep): Likewise.
39885         (integer_all_onesp): Likewise.
39886         (integer_pow2p): Likewise.
39887         (integer_nonzerop): Likewise.
39888         (tree_log2): Likewise.
39889         (tree_floor_log2): Likewise.
39890         (tree_ctz): Likewise.
39891         (int_size_in_bytes): Likewise.
39892         (mem_ref_offset): Return an offset_int rather than a double_int.
39893         (build_type_attribute_qual_variant): Use wide_int interfaces.
39894         (type_hash_eq): Likewise
39895         (tree_int_cst_equal): Likewise.
39896         (tree_int_cst_lt): Delete.
39897         (tree_int_cst_compare): Likewise.
39898         (tree_fits_shwi_p): Use wide_int interfaces.
39899         (tree_fits_uhwi_p): Likewise.
39900         (tree_int_cst_sign_bit): Likewise.
39901         (tree_int_cst_sgn): Likewise.
39902         (tree_int_cst_min_precision): Take a signop rather than a bool.
39903         (simple_cst_equal): Use wide_int interfaces.
39904         (compare_tree_int): Likewise.
39905         (iterative_hash_expr): Likewise.
39906         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
39907         INT_CST_LT.
39908         (get_type_static_bounds): Use wide_int interfaces.
39909         (tree_int_cst_elt_check_failed): New.
39910         (build_common_tree_nodes): Reordered to set prec before filling in
39911         value.
39912         (int_cst_value): Check cst_and_fits_in_hwi.
39913         (widest_int_cst_value): Use wide_int interfaces.
39914         (upper_bound_in_type): Likewise.
39915         (lower_bound_in_type): Likewise.
39916         (num_ending_zeros): Likewise.
39917         (drop_tree_overflow): Likewise.
39918         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39919         (gen_conditions_for_pow_cst_base): Likewise.
39920         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39921         (group_case_labels_stmt): Use wide-int interfaces.
39922         (verify_gimple_assign_binary): Likewise.
39923         (print_loop): Likewise.
39924         * tree-chrec.c (tree_fold_binomial): Likewise.
39925         * tree-core.h (struct tree_base): Add int_length.
39926         (struct tree_int_cst): Change rep of value.
39927         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39928         (dr_may_alias_p): Likewise.
39929         (max_stmt_executions_tree): Likewise.
39930         * tree.def (INTEGER_CST): Update comment.
39931         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39932         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39933         * tree-dump.c: Include wide-int.h and wide-int-print.h.
39934         (dequeue_and_dump): Use wide-int interfaces.
39935         * tree.h: Include wide-int.h.
39936         (NULL_TREE): Moved to earlier loc in file.
39937         (TREE_INT_CST_ELT_CHECK): New.
39938         (tree_int_cst_elt_check_failed): New.
39939         (TYPE_SIGN): New.
39940         (TREE_INT_CST): Delete.
39941         (TREE_INT_CST_LOW): Use wide-int interfaces.
39942         (TREE_INT_CST_HIGH): Delete.
39943         (TREE_INT_CST_NUNITS): New.
39944         (TREE_INT_CST_EXT_NUNITS): Likewise.
39945         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39946         (TREE_INT_CST_ELT): Likewise.
39947         (INT_CST_LT): Delete.
39948         (tree_int_cst_elt_check): New (two forms).
39949         (type_code_size): Update comment.
39950         (make_int_cst_stat, make_int_cst): New.
39951         (tree_to_double_int): Delete.
39952         (double_int_fits_to_tree_p): Delete.
39953         (force_fit_type_double): Delete.
39954         (build_int_cstu): Replace with out-of-line function.
39955         (build_int_cst_wide): Delete.
39956         (tree_int_cst_lt): Define inline.
39957         (tree_int_cst_le): New.
39958         (tree_int_cst_compare): Define inline.
39959         (tree_int_cst_min_precision): Take a signop rather than a bool.
39960         (wi::int_traits <const_tree>): New.
39961         (wi::int_traits <tree>): New.
39962         (wi::extended_tree): New.
39963         (wi::int_traits <wi::extended_tree>): New.
39964         (wi::to_widest): New.
39965         (wi::to_offset): New.
39966         (wi::fits_to_tree_p): New.
39967         (wi::min_value): New.
39968         (wi::max_value): New.
39969         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39970         (copy_tree_body_r): Likewise.
39971         * tree-object-size.c (compute_object_offset): Likewise.
39972         (addr_object_size): Likewise.
39973         * tree-predcom.c: Include wide-int-print.h.
39974         (struct dref_d): Change type of offset to widest_int.
39975         (dump_dref): Call wide-int printer.
39976         (aff_combination_dr_offset): Use wide-int interfaces.
39977         (determine_offset): Take a widest_int pointer rather than a
39978         double_int pointer.
39979         (split_data_refs_to_components): Use wide-int interfaces.
39980         (suitable_component_p): Likewise.
39981         (order_drefs): Likewise.
39982         (add_ref_to_chain): Likewise.
39983         (valid_initializer_p): Likewise.
39984         (determine_roots_comp): Likewise.
39985         * tree-pretty-print.c: Include wide-int-print.h.
39986         (dump_generic_node): Use wide-int interfaces.
39987         * tree-sra.c (sra_ipa_modify_expr): Likewise.
39988         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39989         (move_fixed_address_to_symbol): Likewise.
39990         (move_hint_to_base): Likewise.
39991         (move_pointer_to_base): Likewise.
39992         (move_variant_to_index): Likewise.
39993         (most_expensive_mult_to_index): Likewise.
39994         (addr_to_parts): Likewise.
39995         (copy_ref_info): Likewise.
39996         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39997         (indirect_refs_may_alias_p): Likewise.
39998         (stmt_kills_ref_p_1): Likewise.
39999         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
40000         * tree-ssa-ccp.c: Update comment at top of file.  Include
40001         wide-int-print.h.
40002         (struct prop_value_d): Change type of mask to widest_int.
40003         (extend_mask): New function.
40004         (dump_lattice_value): Use wide-int interfaces.
40005         (get_default_value): Likewise.
40006         (set_constant_value): Likewise.
40007         (set_value_varying): Likewise.
40008         (valid_lattice_transition): Likewise.
40009         (set_lattice_value): Likewise.
40010         (value_to_double_int): Delete.
40011         (value_to_wide_int): New.
40012         (get_value_from_alignment): Use wide-int interfaces.
40013         (get_value_for_expr): Likewise.
40014         (do_dbg_cnt): Likewise.
40015         (ccp_finalize): Likewise.
40016         (ccp_lattice_meet): Likewise.
40017         (bit_value_unop_1): Use widest_ints rather than double_ints.
40018         (bit_value_binop_1): Likewise.
40019         (bit_value_unop): Use wide-int interfaces.
40020         (bit_value_binop): Likewise.
40021         (bit_value_assume_aligned): Likewise.
40022         (evaluate_stmt): Likewise.
40023         (ccp_fold_stmt): Likewise.
40024         (visit_cond_stmt): Likewise.
40025         (ccp_visit_stmt): Likewise.
40026         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
40027         (constant_pointer_difference): Likewise.
40028         (associate_pointerplus): Likewise.
40029         (combine_conversions): Likewise.
40030         * tree-ssa-loop.h: Include wide-int.h.
40031         (struct tree_niter_desc): Change type of max to widest_int.
40032         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
40033         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
40034         (remove_redundant_iv_tests): Likewise.
40035         (canonicalize_loop_induction_variables): Likewise.
40036         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
40037         (constant_multiple_of): Take a widest_int pointer instead of
40038         a double_int pointer.
40039         (get_computation_aff): Use wide-int interfaces.
40040         (ptr_difference_cost): Likewise.
40041         (difference_cost): Likewise.
40042         (get_loop_invariant_expr_id): Likewise.
40043         (get_computation_cost_at): Likewise.
40044         (iv_elimination_compare_lt): Likewise.
40045         (may_eliminate_iv): Likewise.
40046         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
40047         instead of double_int.
40048         (max_loop_iterations): Likewise.
40049         (max_stmt_executions): Likewise.
40050         (estimated_stmt_executions): Likewise.
40051         * tree-ssa-loop-niter.c: Include wide-int-print.h.
40052         (split_to_var_and_offset): Use wide-int interfaces.
40053         (determine_value_range): Likewise.
40054         (bound_difference_of_offsetted_base): Likewise.
40055         (bounds_add): Take a widest_int instead of a double_int.
40056         (number_of_iterations_ne_max): Use wide-int interfaces.
40057         (number_of_iterations_ne): Likewise.
40058         (number_of_iterations_lt_to_ne): Likewise.
40059         (assert_loop_rolls_lt): Likewise.
40060         (number_of_iterations_lt): Likewise.
40061         (number_of_iterations_le): Likewise.
40062         (number_of_iterations_cond): Likewise.
40063         (number_of_iterations_exit): Likewise.
40064         (finite_loop_p): Likewise.
40065         (derive_constant_upper_bound_assign): Likewise.
40066         (derive_constant_upper_bound): Return a widest_int.
40067         (derive_constant_upper_bound_ops): Likewise.
40068         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
40069         (record_estimate): Take a widest_int rather than a double_int.
40070         (record_nonwrapping_iv): Use wide-int interfaces.
40071         (double_int_cmp): Delete.
40072         (wide_int_cmp): New.
40073         (bound_index): Take a widest_int rather than a double_int.
40074         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
40075         (maybe_lower_iteration_bound): Likewise.
40076         (estimate_numbers_of_iterations_loop): Likewise.
40077         (estimated_loop_iterations): Take a widest_int pointer than than
40078         a double_int pointer.
40079         (estimated_loop_iterations_int): Use wide-int interfaces.
40080         (max_loop_iterations): Take a widest_int pointer than than
40081         a double_int pointer.
40082         (max_loop_iterations_int): Use wide-int interfaces.
40083         (max_stmt_executions): Take a widest_int pointer than than
40084         a double_int pointer.
40085         (estimated_stmt_executions): Likewise.
40086         (n_of_executions_at_most): Use wide-int interfaces.
40087         (scev_probably_wraps_p): Likewise.
40088         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
40089         to real_to_integer.
40090         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
40091         interfaces.
40092         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
40093         double_ints.  Adjust for trailing_wide_ints <3> representation.
40094         (set_nonzero_bits): Likewise.
40095         (get_range_info): Return wide_ints rather than double_ints.
40096         Adjust for trailing_wide_ints <3> representation.
40097         (get_nonzero_bits): Likewise.
40098         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
40099         representation.
40100         * tree-ssanames.h (struct range_info_def): Replace min, max and
40101         nonzero_bits with a trailing_wide_ints <3>.
40102         (set_range_info): Use wide_int_refs rather than double_ints.
40103         (set_nonzero_bits): Likewise.
40104         (get_range_info): Return wide_ints rather than double_ints.
40105         (get_nonzero_bits): Likewise.
40106         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
40107         * tree-ssa-pre.c (phi_translate_1): Likewise.
40108         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
40109         (acceptable_pow_call): Likewise.
40110         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
40111         interfaces.
40112         (vn_reference_fold_indirect): Likewise.
40113         (vn_reference_maybe_forwprop_address): Likewise.
40114         (valueize_refs_1): Likewise.
40115         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
40116         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
40117         tree_int_cst_lt and tree_int_cst_le.
40118         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
40119         interfaces.
40120         (streamer_alloc_tree): Likewise.
40121         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
40122         (streamer_write_tree_header): Likewise.
40123         (streamer_write_integer_cst): Likewise.
40124         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
40125         (build_constructors): Likewise.
40126         (array_value_type): Likewise.
40127         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
40128         (vect_check_gather): Likewise.
40129         * tree-vect-generic.c (build_replicated_const): Likewise.
40130         (expand_vector_divmod): Likewise.
40131         * tree-vect-loop.c (vect_transform_loop): Likewise.
40132         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
40133         (vect_do_peeling_for_alignment): Likewise.
40134         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
40135         * tree-vrp.c: Include wide-int.h.
40136         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
40137         (extract_range_from_assert): Use wide-int interfaces.
40138         (vrp_int_const_binop): Likewise.
40139         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
40140         double_int pointers.
40141         (ranges_from_anti_range): Use wide-int interfaces.
40142         (quad_int_cmp): Delete.
40143         (quad_int_pair_sort): Likewise.
40144         (extract_range_from_binary_expr_1): Use wide-int interfaces.
40145         (extract_range_from_unary_expr_1): Likewise.
40146         (adjust_range_with_scev): Likewise.
40147         (masked_increment): Take and return wide_ints rather than double_ints.
40148         (register_edge_assert_for_2): Use wide-int interfaces.
40149         (check_array_ref): Likewise.
40150         (search_for_addr_array): Likewise.
40151         (maybe_set_nonzero_bits): Likewise.
40152         (union_ranges): Pass an integer of the correct type instead of
40153         using integer_one_node.
40154         (intersect_ranges): Likewise.
40155         (simplify_truth_ops_using_ranges): Likewise.
40156         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
40157         (range_fits_type_p): Likewise.
40158         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
40159         a bool.
40160         (simplify_conversion_using_ranges): Use wide-int interfaces.
40161         (simplify_float_conversion_using_ranges): Likewise.
40162         (vrp_finalize): Likewise.
40163         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
40164         (gimple_stringops_transform): Likewise.
40165         * varasm.c (decode_addr_const): Likewise.
40166         (const_hash_1): Likewise.
40167         (const_rtx_hash_1): Likewise
40168         (output_constant): Likewise.
40169         (array_size_for_constructor): Likewise.
40170         (output_constructor_regular_field): Likewise.
40171         (output_constructor_bitfield): Likewise.
40172         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
40173         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
40174         GENERATOR_FILEs.
40175         * gencheck.c: Define BITS_PER_UNIT.
40176         * wide-int.cc: New.
40177         * wide-int.h: New.
40178         * wide-int-print.cc: New.
40179         * wide-int-print.h: New.
40180
40181 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40182
40183         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
40184
40185 2014-05-06  Richard Biener  <rguenther@suse.de>
40186
40187         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
40188         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
40189         (TODO_verify_all): Adjust.
40190         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
40191         TODO_verify_stmts and TODO_verify_rtl_sharing.
40192         * bb-reorder.c: Likewise.
40193         * cfgexpand.c: Likewise.
40194         * cprop.c: Likewise.
40195         * cse.c: Likewise.
40196         * function.c: Likewise.
40197         * fwprop.c: Likewise.
40198         * gcse.c: Likewise.
40199         * gimple-ssa-isolate-paths.c: Likewise.
40200         * gimple-ssa-strength-reduction.c: Likewise.
40201         * ipa-split.c: Likewise.
40202         * loop-init.c: Likewise.
40203         * loop-unroll.c: Likewise.
40204         * lower-subreg.c: Likewise.
40205         * modulo-sched.c: Likewise.
40206         * postreload-gcse.c: Likewise.
40207         * predict.c: Likewise.
40208         * recog.c: Likewise.
40209         * sched-rgn.c: Likewise.
40210         * store-motion.c: Likewise.
40211         * tracer.c: Likewise.
40212         * trans-mem.c: Likewise.
40213         * tree-call-cdce.c: Likewise.
40214         * tree-cfg.c: Likewise.
40215         * tree-cfgcleanup.c: Likewise.
40216         * tree-complex.c: Likewise.
40217         * tree-eh.c: Likewise.
40218         * tree-emutls.c: Likewise.
40219         * tree-if-conv.c: Likewise.
40220         * tree-into-ssa.c: Likewise.
40221         * tree-loop-distribution.c: Likewise.
40222         * tree-object-size.c: Likewise.
40223         * tree-parloops.c: Likewise.
40224         * tree-pass.h: Likewise.
40225         * tree-sra.c: Likewise.
40226         * tree-ssa-ccp.c: Likewise.
40227         * tree-ssa-copy.c: Likewise.
40228         * tree-ssa-copyrename.c: Likewise.
40229         * tree-ssa-dce.c: Likewise.
40230         * tree-ssa-dom.c: Likewise.
40231         * tree-ssa-dse.c: Likewise.
40232         * tree-ssa-forwprop.c: Likewise.
40233         * tree-ssa-ifcombine.c: Likewise.
40234         * tree-ssa-loop-ch.c: Likewise.
40235         * tree-ssa-loop-ivcanon.c: Likewise.
40236         * tree-ssa-loop.c: Likewise.
40237         * tree-ssa-math-opts.c: Likewise.
40238         * tree-ssa-phiopt.c: Likewise.
40239         * tree-ssa-phiprop.c: Likewise.
40240         * tree-ssa-pre.c: Likewise.
40241         * tree-ssa-reassoc.c: Likewise.
40242         * tree-ssa-sink.c: Likewise.
40243         * tree-ssa-strlen.c: Likewise.
40244         * tree-ssa-tail-merge.c: Likewise.
40245         * tree-ssa-uncprop.c: Likewise.
40246         * tree-switch-conversion.c: Likewise.
40247         * tree-tailcall.c: Likewise.
40248         * tree-vect-generic.c: Likewise.
40249         * tree-vectorizer.c: Likewise.
40250         * tree-vrp.c: Likewise.
40251         * tsan.c: Likewise.
40252         * var-tracking.c: Likewise.
40253         * bt-load.c: Likewise.
40254         * cfgcleanup.c: Likewise.
40255         * combine-stack-adj.c: Likewise.
40256         * combine.c: Likewise.
40257         * compare-elim.c: Likewise.
40258         * config/epiphany/resolve-sw-modes.c: Likewise.
40259         * config/i386/i386.c: Likewise.
40260         * config/mips/mips.c: Likewise.
40261         * config/s390/s390.c: Likewise.
40262         * config/sh/sh_treg_combine.cc: Likewise.
40263         * config/sparc/sparc.c: Likewise.
40264         * dce.c: Likewise.
40265         * dse.c: Likewise.
40266         * final.c: Likewise.
40267         * ifcvt.c: Likewise.
40268         * mode-switching.c: Likewise.
40269         * passes.c: Likewise.
40270         * postreload.c: Likewise.
40271         * ree.c: Likewise.
40272         * reg-stack.c: Likewise.
40273         * regcprop.c: Likewise.
40274         * regrename.c: Likewise.
40275         * web.c: Likewise.
40276
40277 2014-05-06  Richard Biener  <rguenther@suse.de>
40278
40279         PR middle-end/61070
40280         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
40281         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
40282
40283 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
40284
40285         PR ipa/60965
40286         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
40287
40288 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
40289             Tom de Vries  <tom@codesourcery.com>
40290
40291         * target.def (call_fusage_contains_non_callee_clobbers): New
40292         DEFHOOKPOD.
40293         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
40294         Hooks to @menu.
40295         (@node Miscellaneous Register Hooks): New node.
40296         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
40297         * doc/tm.texi: Regenerate.
40298
40299 2014-05-05  Marek Polacek  <polacek@redhat.com>
40300
40301         PR driver/61065
40302         * opts.c (common_handle_option): Call error_at instead of warning_at.
40303
40304 2014-05-05  Richard Biener  <rguenther@suse.de>
40305
40306         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
40307         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
40308         under the TODO_verify_il umbrella.
40309
40310 2014-05-05  Richard Biener  <rguenther@suse.de>
40311
40312         * passes.c (execute_function_todo): Move TODO_verify_flow under
40313         the TODO_verify_ul umbrella.
40314
40315 2014-05-05  Richard Biener  <rguenther@suse.de>
40316
40317         PR middle-end/61010
40318         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
40319         X & CST away from a CST that is the mask of a mode.
40320
40321 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40322
40323         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
40324         int argument to enum machine_mode.
40325         (picochip_class_max_nregs): Ditto.
40326         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
40327         (picochip_class_max_nregs): Ditto.
40328
40329 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
40330
40331         * target.def: Add new target hook.
40332         * doc/tm.texi: Regenerate.
40333         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
40334         * targhooks.c (default_keep_leaf_when_profiled): New function.
40335
40336         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
40337         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
40338
40339 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
40340
40341         PR tree-optimization/60363
40342         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
40343         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
40344         (update_destination_phis): New parameter.
40345         (create_edge_and_update_destination_phis): Ditto.
40346         (ssa_fix_duplicate_block_edges): Pass new arguments.
40347         (thread_single_edge): Ditto.
40348
40349 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
40350
40351         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
40352         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
40353         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
40354         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
40355         Use RS6000_BTM_HARD_FLOAT.
40356         (BU_MISC_2): Likewise.
40357         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
40358         RS6000_BTM_HARD_FLOAT.
40359         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
40360         is explicitly used.
40361         (rs6000_invalid_builtin): Add hard floating builtin support.
40362         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
40363         hard float builtins.
40364         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
40365
40366 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40367
40368         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
40369         Add missing function* argument.
40370
40371 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
40372
40373         * lra-constraints.c (valid_address_p): Move earlier in file.
40374         Add a constraint argument to the address_info version.
40375         (satisfies_memory_constraint_p): New function.
40376         (satisfies_address_constraint_p): Likewise.
40377         (process_alt_operands, curr_insn_transform): Use them.
40378         (process_address): Pass the constraint to valid_address_p when
40379         checking address operands.
40380
40381 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
40382
40383         * config/mips/mips.c (mips_isa_rev): New variable.
40384         (mips_set_architecture): Set it.
40385         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
40386         from mips_isa_rev.
40387         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
40388         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
40389         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
40390         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
40391         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
40392         conditions in terms of mips_isa_rev.
40393         (mips_isa_rev): Declare.
40394
40395 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40396
40397         * config/sh/sh-mem.cc: Use tabs instead of spaces.
40398         (prob_unlikely, prob_likely): Make variables const.
40399
40400 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
40401
40402         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
40403
40404 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40405
40406         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
40407
40408 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40409
40410         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
40411         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
40412         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
40413         functions.
40414         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
40415         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
40416         sh_pass_in_reg_p.
40417         Replace usage of ROUND_REG with sh_round_reg.
40418         Use CEIL instead of ROUND_ADVANCE.
40419
40420 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
40421
40422         PR target/61026
40423         * config/sh/sh.c: Include stdlib headers before everything else.
40424
40425 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
40426
40427         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
40428         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
40429         (gimplify_adjust_omp_clauses): Simd region is never
40430         directly nested in combined parallel.  Instead, for linear
40431         with copyin/copyout, if in combined for simd loop, make decl
40432         firstprivate/lastprivate on OMP_FOR.
40433         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
40434         expand_omp_for_static_chunk): When setting endvar, also set
40435         fd->loop.v to the same value.
40436
40437 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
40438
40439         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
40440
40441 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
40442
40443         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
40444         expression.
40445
40446 2014-05-02  Marek Polacek  <polacek@redhat.com>
40447
40448         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
40449
40450 2014-05-02  Kito Cheng  <kito@0xlab.org>
40451
40452         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
40453         to a C expression marco.
40454         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
40455         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
40456         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
40457         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
40458         HONOR_REG_ALLOC_ORDER.
40459         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
40460
40461 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40462
40463         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
40464
40465 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
40466
40467         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
40468
40469 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
40470
40471         * tree-if-conv.c (is_cond_scalar_reduction): New function.
40472         (convert_scalar_cond_reduction): Likewise.
40473         (predicate_scalar_phi): Add recognition and transformation
40474         of simple conditioanl reduction to be vectorizable.
40475
40476 2014-05-01  Marek Polacek  <polacek@redhat.com>
40477
40478         PR c/43245
40479         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
40480
40481 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
40482
40483         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
40484         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
40485         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
40486         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
40487         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
40488         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
40489         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
40490         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
40491
40492 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
40493
40494         * config/arc/arc.opt (mlra): Move comment above option name
40495         to avoid mis-parsing as language options.
40496
40497 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40498
40499         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
40500         * config/sol2.h: ... here.
40501         * config/sol2-10.h: Remove.
40502
40503         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
40504         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
40505         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
40506         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
40507         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
40508         * config/sol2.h: ... here.
40509         (SECTION_NAME_FORMAT): Don't redefine.
40510         (STARTFILE_ARCH32_SPEC): Rename to ...
40511         (STARTFILE_ARCH_SPEC): ... this.
40512         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
40513         * config/sparc/sol2.h: ... here.
40514         (SECTION_NAME_FORMAT): Don't undef.
40515         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
40516         (SUBTARGET_EXTRA_SPECS): Remove.
40517         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
40518
40519         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
40520         (MD_STARTFILE_PREFIX): Remove.
40521         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
40522         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
40523         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
40524         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
40525         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
40526         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
40527         * config/i386/sol2.h: ... here.
40528         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
40529         * config/i386/sol2-bi.h: Remove.
40530         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
40531         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
40532
40533         * config/i386/t-sol2-64: Rename to ...
40534         * config/i386/t-sol2: ... this.
40535         * config/sparc/t-sol2-64: Rename to ...
40536         * config/sparc/t-sol2: ... this.
40537
40538         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
40539         sol2_tm_file_head, sol2_tm_file_tail.
40540         Include ${cpu_type}/sol2.h before sol2.h.
40541         Remove sol2-10.h.
40542         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
40543         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
40544         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
40545         Reflect i386/t-sol2-64 renaming.
40546         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
40547         Reflect sparc/t-sol2-64 renaming.
40548
40549 2014-04-30  Richard Biener  <rguenther@suse.de>
40550
40551         * passes.c (execute_function_todo): Move TODO_verify_stmts
40552         and TODO_verify_ssa under the TODO_verify_il umbrella.
40553         * tree-ssa.h (verify_ssa): Adjust prototype.
40554         * tree-ssa.c (verify_ssa): Add parameter to tell whether
40555         we should verify SSA operands.
40556         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
40557         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
40558         whether we should verify whether not throwing stmts have EH info.
40559         * graphite-scop-detection.c (create_sese_edges): Adjust.
40560         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
40561         * tree-eh.c (lower_try_finally_switch): Do not add the
40562         default case label twice.
40563
40564 2014-04-30  Marek Polacek  <polacek@redhat.com>
40565
40566         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
40567         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
40568         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
40569         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
40570
40571 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
40572
40573         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
40574         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
40575         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
40576         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
40577         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
40578         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
40579         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
40580         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
40581
40582 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
40583
40584         * tree-cfg.c (dump_function_to_file): Dump the return type of
40585         functions, in a line to itself before the function body, mimicking
40586         the layout of a C function.
40587
40588 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
40589
40590         PR tree-optimization/60971
40591         * tree-tailcall.c (process_assignment): Reject conversions which
40592         reduce precision.
40593
40594 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
40595
40596         * calls.c (initialize_argument_information): Always treat
40597         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
40598         (expand_call): Likewise.
40599         (emit_library_call_calue_1): Likewise.
40600         * expr.c (PUSH_ARGS_REVERSED): Do not define.
40601         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
40602         code accordingly.
40603
40604 2014-04-29  Nick Clifton  <nickc@redhat.com>
40605
40606         * config/msp430/msp430.md (umulsidi): Fix typo.
40607         (mulhisi3): Enable even inside interrupt handlers.
40608         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
40609         bigger return address pushed in large mode.
40610
40611 2014-04-29  Nick Clifton  <nickc@redhat.com>
40612
40613         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
40614         (arc_init_reg_tables): Use a machine_mode enum to iterate over
40615         available modes.
40616         * config/m32r/m32r.c (init_reg_tables): Likewise.
40617         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
40618         enum to hold the modes.
40619
40620 2014-04-29  Richard Biener  <rguenther@suse.de>
40621
40622         * dominance.c (free_dominance_info): Add overload with
40623         function parameter.
40624         (dom_info_state): Likewise.
40625         (dom_info_available_p): Likewise.
40626         * basic-block.h (free_dominance_info, dom_info_state,
40627         dom_info_available_p): Declare overloads.
40628         * passes.c (execute_function_todo): Verify that verifiers
40629         don't change dominator info state.  Drop dominator info
40630         for IPA pass invocations.
40631         * cgraph.c (release_function_body): Restore asserts that
40632         dominator information is released.
40633
40634 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
40635
40636         * doc/invoke.texi: Fix typo.
40637         * tree-vrp.c: Fix typos.
40638         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
40639
40640 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
40641
40642         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
40643
40644 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40645
40646         * config/aarch64/aarch64-builtins.c
40647         (aarch64_types_storestruct_lane_qualifiers): New.
40648         (TYPES_STORESTRUCT_LANE): Likewise.
40649         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
40650         (st3_lane): Likewise.
40651         (st4_lane): Likewise.
40652         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
40653         (vec_store_lanesci_lane<mode>): Likewise.
40654         (vec_store_lanesxi_lane<mode>): Likewise.
40655         (aarch64_st2_lane<VQ:mode>): Likewise.
40656         (aarch64_st3_lane<VQ:mode>): Likewise.
40657         (aarch64_st4_lane<VQ:mode>): Likewise.
40658         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
40659         * config/aarch64/arm_neon.h
40660         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
40661         use new macro arguments.
40662         (__ST3_LANE_FUNC): Likewise.
40663         (__ST4_LANE_FUNC): Likewise.
40664         * config/aarch64/iterators.md (V_TWO_ELEM): New.
40665         (V_THREE_ELEM): Likewise.
40666         (V_FOUR_ELEM): Likewise.
40667
40668 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
40669
40670         * doc/gimple.texi: Replace the description of the now-defunct
40671         union gimple_statement_d with a diagram showing the
40672         gimple_statement_base class hierarchy and its relationships to
40673         the GSS_ and GIMPLE_ enums.
40674
40675 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40676
40677         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
40678         * config/aarch64/aarch64.c
40679         (aarch64_cannot_change_mode_class): Weaken conditions.
40680         (aarch64_modes_tieable_p): New.
40681         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
40682
40683 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
40684
40685         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
40686         (loadsync_<mode>): Change mode.
40687         (load_quadpti, store_quadpti): New.
40688         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40689         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40690
40691 2014-04-28  Martin Jambor  <mjambor@suse.cz>
40692
40693         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
40694         same alias type as the original statement.
40695         (subreplacement_assignment_data): New type.
40696         (handle_unscalarized_data_in_subtree): New type of parameter,
40697         generate new memory accesses with same alias type as the original
40698         statement.
40699         (load_assign_lhs_subreplacements): Likewise.
40700         (sra_modify_constructor_assign): Generate new memory accesses with
40701         same alias type as the original statement.
40702
40703 2014-04-28  Richard Biener  <rguenther@suse.de>
40704
40705         * tree-pass.h (TODO_verify_il): Define.
40706         (TODO_verify_all): Complete properly.
40707         * passes.c (execute_function_todo): Move existing loop-closed
40708         SSA verification under TODO_verify_il.
40709         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
40710         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
40711         Fix tree sharing issue.
40712
40713 2014-04-28  Richard Biener  <rguenther@suse.de>
40714
40715         PR middle-end/60092
40716         * builtins.def (DEF_C11_BUILTIN): Add.
40717         (BUILT_IN_ALIGNED_ALLOC): Likewise.
40718         * coretypes.h (enum function_class): Add function_c11_misc.
40719         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
40720         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
40721         (call_may_clobber_ref_p_1): Likewise.
40722         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
40723         (mark_all_reaching_defs_necessary_1): Likewise.
40724         (propagate_necessity): Likewise.
40725         (eliminate_unnecessary_stmts): Likewise.
40726         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
40727
40728 2014-04-28  Richard Biener  <rguenther@suse.de>
40729
40730         * tree-vrp.c (vrp_var_may_overflow): Remove.
40731         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
40732         with overflow immediately bump to one before that value and
40733         let iteration figure out overflow status.
40734
40735 2014-04-28  Richard Biener  <rguenther@suse.de>
40736
40737         * configure.ac: Do valgrind header checks unconditionally.
40738         Add --enable-valgrind-annotations.
40739         * system.h: Guard valgrind header inclusion with
40740         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
40741         * alloc-pool.c (pool_alloc, pool_free): Use
40742         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
40743         to guard possibly dead code.
40744         * config.in: Regenerated.
40745         * configure: Likewise.
40746
40747 2014-04-28  Jeff Law  <law@redhat.com>
40748
40749         PR tree-optimization/60902
40750         * tree-ssa-threadedge.c
40751         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
40752         over real defs when invalidating outputs from statements that do not
40753         produce useful outputs for threading.
40754
40755 2014-04-28  Richard Biener  <rguenther@suse.de>
40756
40757         PR tree-optimization/60979
40758         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
40759         SCOPs that end in a block with a successor with abnormal
40760         predecessors.
40761
40762 2014-04-28  Richard Biener  <rguenther@suse.de>
40763
40764         * tree-pass.h (execute_pass_list): Adjust prototype.
40765         * passes.c (pass_manager::execute_early_local_passes): Adjust.
40766         (do_per_function): Change callback signature, push all actual
40767         work to the callbals.
40768         (do_per_function_toporder): Likewise.
40769         (execute_function_dump): Adjust.
40770         (execute_function_todo): Likewise.
40771         (clear_last_verified): Likewise.
40772         (verify_curr_properties): Likewise.
40773         (update_properties_after_pass): Likewise.
40774         (execute_pass_list_1): Split out from ...
40775         (execute_pass_list): ... here.  Adjust.
40776         (execute_ipa_pass_list): Likewise.
40777         * cgraphunit.c (cgraph_add_new_function): Adjust.
40778         (analyze_function): Likewise.
40779         (expand_function): Likewise.
40780         * cgraph.c (release_function_body): Free dominance info
40781         here instead of asserting it was magically freed elsewhere.
40782
40783 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
40784
40785         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
40786         * configure: Regenerate.
40787         * config/sparc/sparc.opt (muser-mode): New option.
40788         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
40789         for LEON3.
40790         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
40791         * doc/invoke.texi (SPARC options): Document -muser-mode.
40792
40793 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
40794
40795         * cselib.c (find_slot_memmode): Delete.
40796         (cselib_hasher): Change compare_type to a struct.
40797         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
40798         constants.
40799         (preserve_constants_and_equivs): Adjust for new compare_type.
40800         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
40801         (wrap_constant): Delete.
40802         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
40803
40804 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
40805
40806         * doc/install.texi (Building with profile feedback): Remove
40807         outdated sentence.
40808
40809 2014-04-26  Tom de Vries  <tom@codesourcery.com>
40810
40811         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
40812         array accesses.
40813
40814 2014-04-25  Cary Coutant  <ccoutant@google.com>
40815
40816         PR debug/60929
40817         * dwarf2out.c (should_move_die_to_comdat): A type definition
40818         can contain a subprogram definition, but don't move it to a
40819         comdat unit.
40820         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
40821         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
40822         from original DIE.
40823         (clone_tree_hash): Rename to...
40824         (clone_tree_partial): ...this; change callers.  Copy
40825         DW_TAG_subprogram DIEs as declarations.
40826         (copy_decls_walk): Don't copy children of a declaration into a
40827         type unit.
40828
40829 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
40830
40831         PR target/60969
40832         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40833         alternative 12.
40834
40835 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
40836
40837         * config/arm/predicates.md (call_insn_operand): Add long_call check.
40838         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40839         reg for long_call.
40840         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40841         restriction.
40842
40843 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40844
40845         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40846
40847 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40848
40849         PR tree-optimization/60930
40850         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
40851         creating a multiply candidate by folding two constant
40852         multiplicands when the result overflows.
40853
40854 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
40855
40856         PR tree-optimization/60960
40857         * tree-vect-generic.c (expand_vector_operation): Only call
40858         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40859
40860 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40861
40862         * expr.c (clobber_reg_mode): New function.
40863         * expr.h (clobber_reg): New function.
40864
40865 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40866
40867         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40868         clobbers.
40869
40870 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
40871             Tom de Vries  <tom@codesourcery.com>
40872
40873         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40874         handle.
40875         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40876         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40877         new argument to find_all_hard_reg_sets call.
40878
40879 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40880
40881         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40882         Use HOST_WIDE_INT_C for mask literal.
40883         (aarch_rev16_shleft_mask_imm_p): Likewise.
40884
40885 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
40886
40887         PR target/60941
40888         * config/sparc/sparc.md (ashlsi3_extend): Delete.
40889
40890 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
40891
40892         PR preprocessor/56540
40893         * config/i386/i386-c.c (ix86_target_macros): Define
40894         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40895
40896 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40897
40898         * configure.ac (tga_func): Remove.
40899         (LIB_TLS_SPEC): Remove.
40900         * configure: Regenerate.
40901         * config.in: Regenerate.
40902         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40903
40904 2014-04-25  Richard Biener  <rguenther@suse.de>
40905
40906         PR ipa/60912
40907         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40908         call stmt use/clobber sets during stmt walk instead of
40909         walking the possibly incomplete set of caller edges.
40910
40911 2014-04-25  Richard Biener  <rguenther@suse.de>
40912
40913         PR ipa/60911
40914         * passes.c (apply_ipa_transforms): Inline into only caller ...
40915         (execute_one_pass): ... here.  Properly bring in function
40916         bodies for nodes we want to apply IPA transforms to.
40917
40918 2014-04-24  Cong Hou  <congh@google.com>
40919
40920         PR tree-optimization/60896
40921         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40922         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40923         (vect_mark_pattern_stmts): Set the def type of all statements in
40924         PATTERN_DEF_SEQ as vect_internal_def.
40925
40926 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
40927
40928         * doc/extend.texi (PowerPC Built-in Functions): Document new
40929         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40930         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40931
40932         * config/rs6000/predicates.md (const_0_to_3_operand): New
40933         predicate to match 0..3 integer constants.
40934
40935         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40936         to support adding miscellaneous builtin functions.
40937         (BU_DFP_MISC_2): Likewise.
40938         (BU_P7_MISC_1): Likewise.
40939         (BU_P7_MISC_2): Likewise.
40940         (BU_P8V_MISC_3): Likewise.
40941         (BU_MISC_1): Likewise.
40942         (BU_MISC_2): Likewise.
40943         (DIVWE): Add extended divide builtin functions.
40944         (DIVWEO): Likewise.
40945         (DIVWEU): Likewise.
40946         (DIVWEUO): Likewise.
40947         (DIVDE): Likewise.
40948         (DIVDEO): Likewise.
40949         (DIVDEU): Likewise.
40950         (DIVDEUO): Likewise.
40951         (DXEX): Add decimal floating-point builtin functions.
40952         (DXEXQ): Likewise.
40953         (DDEDPD): Likewise.
40954         (DDEDPDQ): Likewise.
40955         (DENBCD): Likewise.
40956         (DENBCDQ): Likewise.
40957         (DIEX): Likewise.
40958         (DIEXQ): Likewise.
40959         (DSCLI): Likewise.
40960         (DSCLIQ): Likewise.
40961         (DSCRI): Likewise.
40962         (DSCRIQ): Likewise.
40963         (CDTBCD): Add new BCD builtin functions.
40964         (CBCDTD): Likewise.
40965         (ADDG6S): Likewise.
40966         (BCDADD): Likewise.
40967         (BCDADD_LT): Likewise.
40968         (BCDADD_EQ): Likewise.
40969         (BCDADD_GT): Likewise.
40970         (BCDADD_OV): Likewise.
40971         (BCDSUB): Likewise.
40972         (BCDSUB_LT): Likewise.
40973         (BCDSUB_EQ): Likewise.
40974         (BCDSUB_GT): Likewise.
40975         (BCDSUB_OV): Likewise.
40976         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40977         (UNPACK_TD): Likewise.
40978         (PACK_TF): Likewise.
40979         (UNPACK_TF): Likewise.
40980         (UNPACK_TF_0): Likewise.
40981         (UNPACK_TF_1): Likewise.
40982         (PACK_V1TI): Likewise.
40983         (UNPACK_V1TI): Likewise.
40984
40985         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40986         support for decimal floating point builtin functions.
40987         (rs6000_expand_ternop_builtin): Add checks for the new builtin
40988         functions that take constant arguments.
40989         (rs6000_invalid_builtin): Add decimal floating point builtin support.
40990         (rs6000_init_builtins): Setup long double, _Decimal64, and
40991         _Decimal128 types for new builtin functions.
40992         (builtin_function_type): Set the unsigned flags appropriately for
40993         the new builtin functions.
40994         (rs6000_opt_masks): Add support for decimal floating point builtin
40995         functions.
40996
40997         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40998         floating point builtin functions.
40999         (RS6000_BTM_COMMON): Likewise.
41000         (RS6000_BTI_long_double): Likewise.
41001         (RS6000_BTI_dfloat64): Likewise.
41002         (RS6000_BTI_dfloat128): Likewise.
41003         (long_double_type_internal_node): Likewise.
41004         (dfloat64_type_internal_node): Likewise.
41005         (dfloat128_type_internal_node): Likewise.
41006
41007         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
41008         2.07 bcd arithmetic instructions.
41009         (UNSPEC_BCDSUB): Likewise.
41010         (UNSPEC_BCD_OVERFLOW): Likewise.
41011         (UNSPEC_BCD_ADD_SUB): Likewise.
41012         (bcd_add_sub): Likewise.
41013         (BCD_TEST): Likewise.
41014         (bcd<bcd_add_sub>): Likewise.
41015         (bcd<bcd_add_sub>_test): Likewise.
41016         (bcd<bcd_add_sub>_test2): Likewise.
41017         (bcd<bcd_add_sub>_<code>): Likewise.
41018         (peephole2 for combined bcd ops): Likewise.
41019
41020         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
41021         decimal floating point builtin functions.
41022         (UNSPEC_DENBCD): Likewise.
41023         (UNSPEC_DXEX): Likewise.
41024         (UNSPEC_DIEX): Likewise.
41025         (UNSPEC_DSCLI): Likewise.
41026         (UNSPEC_DSCRI): Likewise.
41027         (D64_D128): Likewise.
41028         (dfp_suffix): Likewise.
41029         (dfp_ddedpd_<mode>): Likewise.
41030         (dfp_denbcd_<mode>): Likewise.
41031         (dfp_dxex_<mode>): Likewise.
41032         (dfp_diex_<mode>): Likewise.
41033         (dfp_dscli_<mode>): Likewise.
41034         (dfp_dscri_<mode>): Likewise.
41035
41036         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
41037         builtin functions.
41038         (UNSPEC_CDTBCD): Likewise.
41039         (UNSPEC_CBCDTD): Likewise.
41040         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
41041         (UNSPEC_DIVEO): Likewise.
41042         (UNSPEC_DIVEU): Likewise.
41043         (UNSPEC_DIVEUO): Likewise.
41044         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
41045         pack/unpack 128-bit types.
41046         (UNSPEC_PACK_128BIT): Likewise.
41047         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
41048         (udiv<mode>3): Use idiv_ldiv mode attribute.
41049         (div<mode>3): Likewise.
41050         (addg6s): Add new BCD builtin functions.
41051         (cdtbcd): Likewise.
41052         (cbcdtd): Likewise.
41053         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
41054         (div_extend): Likewise.
41055         (div<div_extend>_<mode>"): Likewise.
41056         (FP128_64): Add support for new builtin functions to pack/unpack
41057         128-bit types.
41058         (unpack<mode>): Likewise.
41059         (unpacktf_0): Likewise.
41060         (unpacktf_1): Likewise.
41061         (unpack<mode>_dm): Likewise.
41062         (unpack<mode>_nodm): Likewise.
41063         (pack<mode>): Likewise.
41064         (unpackv1ti): Likewise.
41065         (packv1ti): Likewise.
41066
41067 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
41068
41069         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
41070         is disabled.
41071
41072 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
41073
41074         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
41075         * gimplify.c (omp_is_private): Change last argument's type to int.
41076         Only diagnose lastprivate if the simd argument is 1, only diagnose
41077         linear if the simd argument is 2.
41078         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
41079         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
41080         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
41081         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
41082         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
41083         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
41084         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
41085         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
41086         * tree-nested.c (convert_nonlocal_omp_clauses,
41087         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
41088
41089 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
41090
41091         PR target/60822
41092         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
41093         operand 1.
41094
41095 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
41096
41097         * flag-types.h (enum ivar_visibility): Add.
41098
41099 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
41100
41101         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
41102         function * argument.
41103
41104 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
41105
41106         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
41107
41108 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
41109             Tom de Vries  <tom@codesourcery.com>
41110
41111         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
41112         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
41113         reg-note.
41114         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
41115         * emit-rtl.c (try_split): Same.
41116
41117 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
41118             Tom de Vries  <tom@codesourcery.com>
41119
41120         * common.opt (fuse-caller-save): New option.
41121
41122 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
41123
41124         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
41125         elements for big-endian.
41126
41127 2014-04-24  Richard Biener  <rguenther@suse.de>
41128
41129         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
41130         during TER and instead use the sepops interface for expanding
41131         non-GIMPLE_SINGLE_RHS.
41132
41133 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41134
41135         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
41136         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
41137
41138 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41139
41140         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
41141         assembler 64-bit option.
41142         * configure: Regenerate.
41143
41144 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41145
41146         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
41147         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
41148         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
41149         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
41150         (TARGET_CRYPTO): Take TARGET_SIMD into account.
41151
41152 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41153
41154         * config/aarch64/aarch64-builtins.c
41155         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
41156         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
41157         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
41158         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
41159         builtins.
41160         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
41161         (Vrevsuff): New mode attribute.
41162
41163 2014-04-24  Terry Guo  <terry.guo@arm.com>
41164
41165         * config/arm/arm.h (machine_function): Define variable
41166         after_arm_reorg here.
41167         * config/arm/arm.c (after_arm_reorg): Remove the definition.
41168         (arm_split_constant): Update the way to access variable
41169         after_arm_reorg.
41170         (arm_reorg): Ditto.
41171         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
41172
41173 2014-04-23  Tom de Vries  <tom@codesourcery.com>
41174
41175         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
41176
41177 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
41178
41179         * is-a.h: Update comments to reflect the following changes to the
41180         "pointerness" of the API, making the template parameter match the
41181         return type, allowing use of is-a.h with typedefs of pointers.
41182         (is_a_helper::cast): Return a T rather then a pointer to a T, so
41183         that the return type matches the parameter to the is_a_helper.
41184         (as_a): Likewise.
41185         (dyn_cast): Likewise.
41186
41187         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
41188         pointer from the is-a.h API.
41189
41190         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
41191         (is_a_helper <cgraph_node *>::test): ...this, matching change to
41192         is-a.h API.
41193         (is_a_helper <varpool_node>::test): Likewise, convert to...
41194         (is_a_helper <varpool_node *>::test): ...this.
41195
41196         (varpool_first_variable): Update for removal of implicit pointer
41197         from the is-a.h API.
41198         (varpool_next_variable): Likewise.
41199         (varpool_first_static_initializer): Likewise.
41200         (varpool_next_static_initializer): Likewise.
41201         (varpool_first_defined_variable): Likewise.
41202         (varpool_next_defined_variable): Likewise.
41203         (cgraph_first_defined_function): Likewise.
41204         (cgraph_next_defined_function): Likewise.
41205         (cgraph_first_function): Likewise.
41206         (cgraph_next_function): Likewise.
41207         (cgraph_first_function_with_gimple_body): Likewise.
41208         (cgraph_next_function_with_gimple_body): Likewise.
41209         (cgraph_alias_target): Likewise.
41210         (varpool_alias_target): Likewise.
41211         (cgraph_function_or_thunk_node): Likewise.
41212         (varpool_variable_node): Likewise.
41213         (symtab_real_symbol_p): Likewise.
41214         * cgraphunit.c (referred_to_p): Likewise.
41215         (analyze_functions): Likewise.
41216         (handle_alias_pairs): Likewise.
41217         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
41218         * gimple-ssa.h (gimple_vuse_op): Likewise.
41219         (gimple_vdef_op): Likewise.
41220         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
41221         * gimple.c (gimple_build_asm_1): Likewise.
41222         (gimple_build_try): Likewise.
41223         (gimple_build_resx): Likewise.
41224         (gimple_build_eh_dispatch): Likewise.
41225         (gimple_build_omp_for): Likewise.
41226         (gimple_omp_for_set_clauses): Likewise.
41227
41228         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
41229         (is_a_helper <gimple_statement_asm *>::test): ...this.
41230         (is_a_helper <gimple_statement_bind>::test): Convert to...
41231         (is_a_helper <gimple_statement_bind *>::test): ...this.
41232         (is_a_helper <gimple_statement_call>::test): Convert to...
41233         (is_a_helper <gimple_statement_call *>::test): ...this.
41234         (is_a_helper <gimple_statement_catch>::test): Convert to...
41235         (is_a_helper <gimple_statement_catch *>::test): ...this.
41236         (is_a_helper <gimple_statement_resx>::test): Convert to...
41237         (is_a_helper <gimple_statement_resx *>::test): ...this.
41238         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
41239         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
41240         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
41241         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
41242         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
41243         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
41244         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
41245         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
41246         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
41247         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
41248         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
41249         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
41250         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
41251         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
41252         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
41253         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
41254         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
41255         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
41256         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
41257         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
41258         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
41259         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
41260         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
41261         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
41262         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
41263         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
41264         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
41265         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
41266         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
41267         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
41268         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
41269         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
41270         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
41271         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
41272         (is_a_helper <gimple_statement_phi>::test): Convert to...
41273         (is_a_helper <gimple_statement_phi *>::test): ...this.
41274         (is_a_helper <gimple_statement_transaction>::test): Convert to...
41275         (is_a_helper <gimple_statement_transaction *>::test): ...this.
41276         (is_a_helper <gimple_statement_try>::test): Convert to...
41277         (is_a_helper <gimple_statement_try *>::test): ...this.
41278         (is_a_helper <gimple_statement_wce>::test): Convert to...
41279         (is_a_helper <gimple_statement_wce *>::test): ...this.
41280         (is_a_helper <const gimple_statement_asm>::test): Convert to...
41281         (is_a_helper <const gimple_statement_asm *>::test): ...this.
41282         (is_a_helper <const gimple_statement_bind>::test): Convert to...
41283         (is_a_helper <const gimple_statement_bind *>::test): ...this.
41284         (is_a_helper <const gimple_statement_call>::test): Convert to...
41285         (is_a_helper <const gimple_statement_call *>::test): ...this.
41286         (is_a_helper <const gimple_statement_catch>::test): Convert to...
41287         (is_a_helper <const gimple_statement_catch *>::test): ...this.
41288         (is_a_helper <const gimple_statement_resx>::test): Convert to...
41289         (is_a_helper <const gimple_statement_resx *>::test): ...this.
41290         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
41291         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
41292         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
41293         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
41294         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
41295         Convert to...
41296         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
41297         ...this.
41298         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
41299         Convert to...
41300         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
41301         ...this.
41302         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
41303         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
41304         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
41305         to...
41306         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
41307         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
41308         to...
41309         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
41310         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
41311         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
41312         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
41313         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
41314         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
41315         to...
41316         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
41317         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
41318         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
41319         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
41320         to...
41321         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
41322         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
41323         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
41324         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
41325         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
41326         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
41327         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
41328         (is_a_helper <const gimple_statement_phi>::test): Convert to...
41329         (is_a_helper <const gimple_statement_phi *>::test): ...this.
41330         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
41331         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
41332         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
41333         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
41334         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
41335         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
41336         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
41337         to...
41338         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
41339         ...this.
41340         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
41341         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
41342
41343         (gimple_use_ops): Update for removal of implicit pointer from the
41344         is-a.h API.
41345         (gimple_set_use_ops): Likewise.
41346         (gimple_vuse): Likewise.
41347         (gimple_vdef): Likewise.
41348         (gimple_vuse_ptr): Likewise.
41349         (gimple_vdef_ptr): Likewise.
41350         (gimple_set_vuse): Likewise.
41351         (gimple_set_vdef): Likewise.
41352         (gimple_omp_return_set_lhs): Likewise.
41353         (gimple_omp_return_lhs): Likewise.
41354         (gimple_omp_return_lhs_ptr): Likewise.
41355         (gimple_call_fntype): Likewise.
41356         (gimple_call_set_fntype): Likewise.
41357         (gimple_call_set_internal_fn): Likewise.
41358         (gimple_call_use_set): Likewise.
41359         (gimple_call_clobber_set): Likewise.
41360         (gimple_bind_vars): Likewise.
41361         (gimple_bind_set_vars): Likewise.
41362         (gimple_bind_body_ptr): Likewise.
41363         (gimple_bind_set_body): Likewise.
41364         (gimple_bind_add_stmt): Likewise.
41365         (gimple_bind_block): Likewise.
41366         (gimple_bind_set_block): Likewise.
41367         (gimple_asm_ninputs): Likewise.
41368         (gimple_asm_noutputs): Likewise.
41369         (gimple_asm_nclobbers): Likewise.
41370         (gimple_asm_nlabels): Likewise.
41371         (gimple_asm_input_op): Likewise.
41372         (gimple_asm_input_op_ptr): Likewise.
41373         (gimple_asm_output_op): Likewise.
41374         (gimple_asm_output_op_ptr): Likewise.
41375         (gimple_asm_set_output_op): Likewise.
41376         (gimple_asm_clobber_op): Likewise.
41377         (gimple_asm_set_clobber_op): Likewise.
41378         (gimple_asm_label_op): Likewise.
41379         (gimple_asm_set_label_op): Likewise.
41380         (gimple_asm_string): Likewise.
41381         (gimple_catch_types): Likewise.
41382         (gimple_catch_types_ptr): Likewise.
41383         (gimple_catch_handler_ptr): Likewise.
41384         (gimple_catch_set_types): Likewise.
41385         (gimple_catch_set_handler): Likewise.
41386         (gimple_eh_filter_types): Likewise.
41387         (gimple_eh_filter_types_ptr): Likewise.
41388         (gimple_eh_filter_failure_ptr): Likewise.
41389         (gimple_eh_filter_set_types): Likewise.
41390         (gimple_eh_filter_set_failure): Likewise.
41391         (gimple_eh_must_not_throw_fndecl): Likewise.
41392         (gimple_eh_must_not_throw_set_fndecl): Likewise.
41393         (gimple_eh_else_n_body_ptr): Likewise.
41394         (gimple_eh_else_e_body_ptr): Likewise.
41395         (gimple_eh_else_set_n_body): Likewise.
41396         (gimple_eh_else_set_e_body): Likewise.
41397         (gimple_try_eval_ptr): Likewise.
41398         (gimple_try_cleanup_ptr): Likewise.
41399         (gimple_try_set_eval): Likewise.
41400         (gimple_try_set_cleanup): Likewise.
41401         (gimple_wce_cleanup_ptr): Likewise.
41402         (gimple_wce_set_cleanup): Likewise.
41403         (gimple_phi_capacity): Likewise.
41404         (gimple_phi_num_args): Likewise.
41405         (gimple_phi_result): Likewise.
41406         (gimple_phi_result_ptr): Likewise.
41407         (gimple_phi_set_result): Likewise.
41408         (gimple_phi_arg): Likewise.
41409         (gimple_phi_set_arg): Likewise.
41410         (gimple_resx_region): Likewise.
41411         (gimple_resx_set_region): Likewise.
41412         (gimple_eh_dispatch_region): Likewise.
41413         (gimple_eh_dispatch_set_region): Likewise.
41414         (gimple_omp_critical_name): Likewise.
41415         (gimple_omp_critical_name_ptr): Likewise.
41416         (gimple_omp_critical_set_name): Likewise.
41417         (gimple_omp_for_clauses): Likewise.
41418         (gimple_omp_for_clauses_ptr): Likewise.
41419         (gimple_omp_for_set_clauses): Likewise.
41420         (gimple_omp_for_collapse): Likewise.
41421         (gimple_omp_for_index): Likewise.
41422         (gimple_omp_for_index_ptr): Likewise.
41423         (gimple_omp_for_set_index): Likewise.
41424         (gimple_omp_for_initial): Likewise.
41425         (gimple_omp_for_initial_ptr): Likewise.
41426         (gimple_omp_for_set_initial): Likewise.
41427         (gimple_omp_for_final): Likewise.
41428         (gimple_omp_for_final_ptr): Likewise.
41429         (gimple_omp_for_set_final): Likewise.
41430         (gimple_omp_for_incr): Likewise.
41431         (gimple_omp_for_incr_ptr): Likewise.
41432         (gimple_omp_for_set_incr): Likewise.
41433         (gimple_omp_for_pre_body_ptr): Likewise.
41434         (gimple_omp_for_set_pre_body): Likewise.
41435         (gimple_omp_parallel_clauses): Likewise.
41436         (gimple_omp_parallel_clauses_ptr): Likewise.
41437         (gimple_omp_parallel_set_clauses): Likewise.
41438         (gimple_omp_parallel_child_fn): Likewise.
41439         (gimple_omp_parallel_child_fn_ptr): Likewise.
41440         (gimple_omp_parallel_set_child_fn): Likewise.
41441         (gimple_omp_parallel_data_arg): Likewise.
41442         (gimple_omp_parallel_data_arg_ptr): Likewise.
41443         (gimple_omp_parallel_set_data_arg): Likewise.
41444         (gimple_omp_task_clauses): Likewise.
41445         (gimple_omp_task_clauses_ptr): Likewise.
41446         (gimple_omp_task_set_clauses): Likewise.
41447         (gimple_omp_task_child_fn): Likewise.
41448         (gimple_omp_task_child_fn_ptr): Likewise.
41449         (gimple_omp_task_set_child_fn): Likewise.
41450         (gimple_omp_task_data_arg): Likewise.
41451         (gimple_omp_task_data_arg_ptr): Likewise.
41452         (gimple_omp_task_set_data_arg): Likewise.
41453         (gimple_omp_taskreg_clauses): Likewise.
41454         (gimple_omp_taskreg_clauses_ptr): Likewise.
41455         (gimple_omp_taskreg_set_clauses): Likewise.
41456         (gimple_omp_taskreg_child_fn): Likewise.
41457         (gimple_omp_taskreg_child_fn_ptr): Likewise.
41458         (gimple_omp_taskreg_set_child_fn): Likewise.
41459         (gimple_omp_taskreg_data_arg): Likewise.
41460         (gimple_omp_taskreg_data_arg_ptr): Likewise.
41461         (gimple_omp_taskreg_set_data_arg): Likewise.
41462         (gimple_omp_task_copy_fn): Likewise.
41463         (gimple_omp_task_copy_fn_ptr): Likewise.
41464         (gimple_omp_task_set_copy_fn): Likewise.
41465         (gimple_omp_task_arg_size): Likewise.
41466         (gimple_omp_task_arg_size_ptr): Likewise.
41467         (gimple_omp_task_set_arg_size): Likewise.
41468         (gimple_omp_task_arg_align): Likewise.
41469         (gimple_omp_task_arg_align_ptr): Likewise.
41470         (gimple_omp_task_set_arg_align): Likewise.
41471         (gimple_omp_single_clauses): Likewise.
41472         (gimple_omp_single_clauses_ptr): Likewise.
41473         (gimple_omp_single_set_clauses): Likewise.
41474         (gimple_omp_target_clauses): Likewise.
41475         (gimple_omp_target_clauses_ptr): Likewise.
41476         (gimple_omp_target_set_clauses): Likewise.
41477         (gimple_omp_target_child_fn): Likewise.
41478         (gimple_omp_target_child_fn_ptr): Likewise.
41479         (gimple_omp_target_set_child_fn): Likewise.
41480         (gimple_omp_target_data_arg): Likewise.
41481         (gimple_omp_target_data_arg_ptr): Likewise.
41482         (gimple_omp_target_set_data_arg): Likewise.
41483         (gimple_omp_teams_clauses): Likewise.
41484         (gimple_omp_teams_clauses_ptr): Likewise.
41485         (gimple_omp_teams_set_clauses): Likewise.
41486         (gimple_omp_sections_clauses): Likewise.
41487         (gimple_omp_sections_clauses_ptr): Likewise.
41488         (gimple_omp_sections_set_clauses): Likewise.
41489         (gimple_omp_sections_control): Likewise.
41490         (gimple_omp_sections_control_ptr): Likewise.
41491         (gimple_omp_sections_set_control): Likewise.
41492         (gimple_omp_for_set_cond): Likewise.
41493         (gimple_omp_for_cond): Likewise.
41494         (gimple_omp_atomic_store_set_val): Likewise.
41495         (gimple_omp_atomic_store_val): Likewise.
41496         (gimple_omp_atomic_store_val_ptr): Likewise.
41497         (gimple_omp_atomic_load_set_lhs): Likewise.
41498         (gimple_omp_atomic_load_lhs): Likewise.
41499         (gimple_omp_atomic_load_lhs_ptr): Likewise.
41500         (gimple_omp_atomic_load_set_rhs): Likewise.
41501         (gimple_omp_atomic_load_rhs): Likewise.
41502         (gimple_omp_atomic_load_rhs_ptr): Likewise.
41503         (gimple_omp_continue_control_def): Likewise.
41504         (gimple_omp_continue_control_def_ptr): Likewise.
41505         (gimple_omp_continue_set_control_def): Likewise.
41506         (gimple_omp_continue_control_use): Likewise.
41507         (gimple_omp_continue_control_use_ptr): Likewise.
41508         (gimple_omp_continue_set_control_use): Likewise.
41509         (gimple_transaction_body_ptr): Likewise.
41510         (gimple_transaction_label): Likewise.
41511         (gimple_transaction_label_ptr): Likewise.
41512         (gimple_transaction_set_body): Likewise.
41513         (gimple_transaction_set_label): Likewise.
41514
41515         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
41516         * ipa-inline-analysis.c (inline_write_summary): Likewise.
41517         * ipa-ref.c (ipa_record_reference): Likewise.
41518         * ipa-reference.c (analyze_function): Likewise.
41519         (ipa_reference_write_optimization_summary): Likewise.
41520         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
41521         (address_taken_from_non_vtable_p): Likewise.
41522         (comdat_can_be_unshared_p_1): Likewise.
41523         * lto-cgraph.c (lto_output_ref): Likewise.
41524         (add_references): Likewise.
41525         (compute_ltrans_boundary): Likewise.
41526         (output_symtab): Likewise.
41527         (input_ref): Likewise.
41528         (input_cgraph_1): Likewise.
41529         (output_cgraph_opt_summary): Likewise.
41530         * lto-streamer-out.c (lto_output): Likewise.
41531         (output_symbol_p): Likewise.
41532         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
41533         (lsei_start_function_in_partition): Likewise.
41534         (lsei_next_variable_in_partition): Likewise.
41535         (lsei_start_variable_in_partition): Likewise.
41536         * symtab.c (insert_to_assembler_name_hash): Likewise.
41537         (unlink_from_assembler_name_hash): Likewise.
41538         (symtab_unregister_node): Likewise.
41539         (symtab_remove_node): Likewise.
41540         (dump_symtab_node): Likewise.
41541         (verify_symtab_base): Likewise.
41542         (verify_symtab_node): Likewise.
41543         (symtab_make_decl_local): Likewise.
41544         (symtab_alias_ultimate_target): Likewise.
41545         (symtab_resolve_alias): Likewise.
41546         (symtab_get_symbol_partitioning_class): Likewise.
41547         * tree-phinodes.c (allocate_phi_node): Likewise.
41548         (reserve_phi_args_for_new_edge): Likewise.
41549         (remove_phi_args): Likewise.
41550         * varpool.c (varpool_node_for_asm): Likewise.
41551         (varpool_remove_unreferenced_decls): Likewise.
41552
41553 2014-04-23  Jeff Law  <law@redhat.com>
41554
41555         PR tree-optimization/60902
41556         * tree-ssa-threadedge.c
41557         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
41558         invalidate outputs from statements that do not produce useful
41559         outputs for threading.
41560
41561 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
41562
41563         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
41564         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
41565         machine descriptions for Stack Smashing Protector.
41566
41567 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
41568
41569         * aarch64.md (<optab>_rol<mode>3): New pattern.
41570         (<optab>_rolsi3_uxtw): Likewise.
41571         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
41572
41573 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
41574
41575         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
41576         (arm_cortex_a12_tune): Likewise.
41577
41578 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41579
41580         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
41581
41582 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41583
41584         * config/arm/arm.md (arm_rev16si2): New pattern.
41585         (arm_rev16si2_alt): Likewise.
41586         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
41587
41588 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41589
41590         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
41591         (rev16<mode>2_alt): Likewise.
41592         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
41593         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
41594         (aarch_rev16_shleft_mask_imm_p): Likewise.
41595         (aarch_rev16_p_1): Likewise.
41596         (aarch_rev16_p): Likewise.
41597         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
41598         (aarch_rev16_shright_mask_imm_p): Likewise.
41599         (aarch_rev16_shleft_mask_imm_p): Likewise.
41600
41601 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41602
41603         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
41604         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
41605         rev cost.
41606         (cortex_a53_extra_costs): Likewise.
41607         (cortex_a57_extra_costs): Likewise.
41608         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
41609         (cortexa7_extra_costs): Likewise.
41610         (cortexa8_extra_costs): Likewise.
41611         (cortexa12_extra_costs): Likewise.
41612         (cortexa15_extra_costs): Likewise.
41613         (v7m_extra_costs): Likewise.
41614         (arm_new_rtx_costs): Handle BSWAP.
41615
41616 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41617
41618         * config/arm/arm.c (cortexa8_extra_costs): New table.
41619         (arm_cortex_a8_tune): New tuning struct.
41620         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
41621
41622 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41623
41624         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
41625
41626 2014-04-23  Richard Biener  <rguenther@suse.de>
41627
41628         * Makefile.in (OBJS): Remove loop-unswitch.o.
41629         * tree-pass.h (make_pass_rtl_unswitch): Remove.
41630         * passes.def (pass_rtl_unswitch): Likewise.
41631         * loop-init.c (gate_rtl_unswitch): Likewise.
41632         (rtl_unswitch): Likewise.
41633         (pass_data_rtl_unswitch): Likewise.
41634         (pass_rtl_unswitch): Likewise.
41635         (make_pass_rtl_unswitch): Likewise.
41636         * rtl.h (reversed_condition): Likewise.
41637         (compare_and_jump_seq): Likewise.
41638         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
41639         and make static.
41640         * loop-unroll.c (compare_and_jump_seq): Likewise.
41641
41642 2014-04-23  Richard Biener  <rguenther@suse.de>
41643
41644         PR tree-optimization/60903
41645         * tree-ssa-loop-im.c (analyze_memory_references): Remove
41646         commented code block.
41647         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
41648         loop flags to newly created BBs and edges.
41649
41650 2014-04-23  Nick Clifton  <nickc@redhat.com>
41651
41652         * config/msp430/msp430.c (msp430_handle_option): Move function
41653         to msp430-common.c
41654         (msp430_option_override): Simplify mcu and mcpu option handling.
41655         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
41656         support for -mhwmult command line option.
41657         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
41658         -mhwmult command line option.
41659         (msp430_hwmult_enabled): Delete.
41660         (msp43o_output_labelref): Add support for -mhwmult command line option.
41661         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
41662         (umulsidi3): Likewise.
41663         * config/msp430/msp430.opt (mmcu): Add Report attribute.
41664         (mcpu, mlarge, msmall): Likewise.
41665         (mhwmult): New option.
41666         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
41667         prototype.
41668         (msp430_is_f5_mcu): Remove prototype.
41669         (msp430_use_f5_series_hwmult): Add prototype.
41670         * config/msp430/msp430-opts.h: New file.
41671         * common/config/msp430: New directory.
41672         * common/config/msp430/msp430-common.c: New file.
41673         * config.gcc (msp430): Remove target_has_targetm_common.
41674         * doc/invoke.texi: Document -mhwmult command line option.
41675
41676 2014-04-23  Nick Clifton  <nickc@redhat.com>
41677
41678         * config/i386/cygwin.h (ENDFILE_SPEC): Include
41679         default-manifest.o if it can be found in the search path.
41680         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
41681
41682 2014-04-23  Terry Guo  <terry.guo@arm.com>
41683
41684         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
41685
41686 2014-04-23  Richard Biener  <rguenther@suse.de>
41687
41688         PR middle-end/60895
41689         * tree-inline.c (declare_return_variable): Use mark_addressable.
41690
41691 2014-04-23  Richard Biener  <rguenther@suse.de>
41692
41693         PR middle-end/60891
41694         * loop-init.c (loop_optimizer_init): Make sure to apply
41695         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
41696
41697 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41698
41699         PR sanitizer/60275
41700         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
41701         New options.
41702         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
41703         if flag_sanitize_undefined_trap_on_error.
41704         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
41705         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
41706         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
41707         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
41708         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
41709         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
41710         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
41711         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
41712         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
41713         * ubsan.c (ubsan_instrument_unreachable): Return
41714         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
41715         (ubsan_expand_null_ifn): Emit __builtin_trap ()
41716         if flag_sanitize_undefined_trap_on_error and
41717         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
41718         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
41719         instrument_bool_enum_load): Emit __builtin_trap () if
41720         flag_sanitize_undefined_trap_on_error and
41721         __builtin_handle_*_abort () if !flag_sanitize_recover.
41722         * doc/invoke.texi (-fsanitize-recover,
41723         -fsanitize-undefined-trap-on-error): Document.
41724
41725 2014-04-22  Christian Bruel  <christian.bruel@st.com>
41726
41727         * config/sh/sh.md (mov<mode>): Replace movQIHI.
41728         Force immediates to SImode.
41729
41730 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
41731
41732         * config/nios2/nios2.md (UNSPEC_ROUND): New.
41733         (lroundsfsi2): New.
41734         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
41735         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
41736         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
41737         (nios2_fpu_insn): Add entry for round.
41738         (N2FPU_NO_ERRNO_P): Define.
41739         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
41740         flag_errno_math.
41741         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
41742
41743 2014-04-22  Richard Henderson  <rth@redhat.com>
41744
41745         * config/aarch64/aarch64 (addti3, subti3): New expanders.
41746         (add<GPI>3_compare0): Remove leading * from name.
41747         (add<GPI>3_carryin): Likewise.
41748         (sub<GPI>3_compare0): Likewise.
41749         (sub<GPI>3_carryin): Likewise.
41750         (<su_optab>mulditi3): New expander.
41751         (multi3): New expander.
41752         (madd<GPI>): Remove leading * from name.
41753
41754 2014-04-22  Martin Jambor  <mjambor@suse.cz>
41755
41756         * cgraphclones.c (cgraph_function_versioning): Copy
41757         ipa_transforms_to_apply instead of asserting it is empty.
41758
41759 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
41760
41761         PR target/60868
41762         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
41763         on count_exp to get mode.
41764
41765 2014-04-22  Andrew Pinski  <apinski@cavium.com>
41766
41767         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
41768         Handle TLS for ILP32.
41769         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
41770         (tlsie_small_<mode>): this and handle PTR.
41771         (tlsie_small_sidi): New pattern.
41772         (tlsle_small): Change to an expand to handle ILP32.
41773         (tlsle_small_<mode>): New pattern.
41774         (tlsdesc_small): Rename to ...
41775         (tlsdesc_small_<mode>): this and handle PTR.
41776
41777 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41778
41779         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
41780
41781 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41782
41783         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41784         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
41785         (aarch64_types_signed_poly_qualifiers): Likewise.
41786         (aarch64_types_unsigned_signed_qualifiers): Likewise.
41787         (aarch64_types_poly_signed_qualifiers): Likewise.
41788         (TYPES_REINTERP_SS): Type macro added.
41789         (TYPES_REINTERP_SU): Likewise.
41790         (TYPES_REINTERP_SP): Likewise.
41791         (TYPES_REINTERP_US): Likewise.
41792         (TYPES_REINTERP_PS): Likewise.
41793         (aarch64_fold_builtin): New expression folding added.
41794         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
41795         Declarations removed.
41796         (REINTERP_SS): Declarations added.
41797         (REINTERP_US): Likewise.
41798         (REINTERP_PS): Likewise.
41799         (REINTERP_SU): Likewise.
41800         (REINTERP_SP): Likewise.
41801         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
41802         (vreinterpretq_p8_f64): Likewise.
41803         (vreinterpret_p16_f64): Likewise.
41804         (vreinterpretq_p16_f64): Likewise.
41805         (vreinterpret_f32_f64): Likewise.
41806         (vreinterpretq_f32_f64): Likewise.
41807         (vreinterpret_f64_f32): Likewise.
41808         (vreinterpret_f64_p8): Likewise.
41809         (vreinterpret_f64_p16): Likewise.
41810         (vreinterpret_f64_s8): Likewise.
41811         (vreinterpret_f64_s16): Likewise.
41812         (vreinterpret_f64_s32): Likewise.
41813         (vreinterpret_f64_s64): Likewise.
41814         (vreinterpret_f64_u8): Likewise.
41815         (vreinterpret_f64_u16): Likewise.
41816         (vreinterpret_f64_u32): Likewise.
41817         (vreinterpret_f64_u64): Likewise.
41818         (vreinterpretq_f64_f32): Likewise.
41819         (vreinterpretq_f64_p8): Likewise.
41820         (vreinterpretq_f64_p16): Likewise.
41821         (vreinterpretq_f64_s8): Likewise.
41822         (vreinterpretq_f64_s16): Likewise.
41823         (vreinterpretq_f64_s32): Likewise.
41824         (vreinterpretq_f64_s64): Likewise.
41825         (vreinterpretq_f64_u8): Likewise.
41826         (vreinterpretq_f64_u16): Likewise.
41827         (vreinterpretq_f64_u32): Likewise.
41828         (vreinterpretq_f64_u64): Likewise.
41829         (vreinterpret_s64_f64): Likewise.
41830         (vreinterpretq_s64_f64): Likewise.
41831         (vreinterpret_u64_f64): Likewise.
41832         (vreinterpretq_u64_f64): Likewise.
41833         (vreinterpret_s8_f64): Likewise.
41834         (vreinterpretq_s8_f64): Likewise.
41835         (vreinterpret_s16_f64): Likewise.
41836         (vreinterpretq_s16_f64): Likewise.
41837         (vreinterpret_s32_f64): Likewise.
41838         (vreinterpretq_s32_f64): Likewise.
41839         (vreinterpret_u8_f64): Likewise.
41840         (vreinterpretq_u8_f64): Likewise.
41841         (vreinterpret_u16_f64): Likewise.
41842         (vreinterpretq_u16_f64): Likewise.
41843         (vreinterpret_u32_f64): Likewise.
41844         (vreinterpretq_u32_f64): Likewise.
41845
41846 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41847
41848         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41849         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41850         (vreinterpret_p8_s8): Likewise.
41851         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41852         (vreinterpret_p8_s16): Likewise.
41853         (vreinterpret_p8_s32): Likewise.
41854         (vreinterpret_p8_s64): Likewise.
41855         (vreinterpret_p8_f32): Likewise.
41856         (vreinterpret_p8_u8): Likewise.
41857         (vreinterpret_p8_u16): Likewise.
41858         (vreinterpret_p8_u32): Likewise.
41859         (vreinterpret_p8_u64): Likewise.
41860         (vreinterpret_p8_p16): Likewise.
41861         (vreinterpretq_p8_s8): Likewise.
41862         (vreinterpretq_p8_s16): Likewise.
41863         (vreinterpretq_p8_s32): Likewise.
41864         (vreinterpretq_p8_s64): Likewise.
41865         (vreinterpretq_p8_f32): Likewise.
41866         (vreinterpretq_p8_u8): Likewise.
41867         (vreinterpretq_p8_u16): Likewise.
41868         (vreinterpretq_p8_u32): Likewise.
41869         (vreinterpretq_p8_u64): Likewise.
41870         (vreinterpretq_p8_p16): Likewise.
41871         (vreinterpret_p16_s8): Likewise.
41872         (vreinterpret_p16_s16): Likewise.
41873         (vreinterpret_p16_s32): Likewise.
41874         (vreinterpret_p16_s64): Likewise.
41875         (vreinterpret_p16_f32): Likewise.
41876         (vreinterpret_p16_u8): Likewise.
41877         (vreinterpret_p16_u16): Likewise.
41878         (vreinterpret_p16_u32): Likewise.
41879         (vreinterpret_p16_u64): Likewise.
41880         (vreinterpret_p16_p8): Likewise.
41881         (vreinterpretq_p16_s8): Likewise.
41882         (vreinterpretq_p16_s16): Likewise.
41883         (vreinterpretq_p16_s32): Likewise.
41884         (vreinterpretq_p16_s64): Likewise.
41885         (vreinterpretq_p16_f32): Likewise.
41886         (vreinterpretq_p16_u8): Likewise.
41887         (vreinterpretq_p16_u16): Likewise.
41888         (vreinterpretq_p16_u32): Likewise.
41889         (vreinterpretq_p16_u64): Likewise.
41890         (vreinterpretq_p16_p8): Likewise.
41891         (vreinterpret_f32_s8): Likewise.
41892         (vreinterpret_f32_s16): Likewise.
41893         (vreinterpret_f32_s32): Likewise.
41894         (vreinterpret_f32_s64): Likewise.
41895         (vreinterpret_f32_u8): Likewise.
41896         (vreinterpret_f32_u16): Likewise.
41897         (vreinterpret_f32_u32): Likewise.
41898         (vreinterpret_f32_u64): Likewise.
41899         (vreinterpret_f32_p8): Likewise.
41900         (vreinterpret_f32_p16): Likewise.
41901         (vreinterpretq_f32_s8): Likewise.
41902         (vreinterpretq_f32_s16): Likewise.
41903         (vreinterpretq_f32_s32): Likewise.
41904         (vreinterpretq_f32_s64): Likewise.
41905         (vreinterpretq_f32_u8): Likewise.
41906         (vreinterpretq_f32_u16): Likewise.
41907         (vreinterpretq_f32_u32): Likewise.
41908         (vreinterpretq_f32_u64): Likewise.
41909         (vreinterpretq_f32_p8): Likewise.
41910         (vreinterpretq_f32_p16): Likewise.
41911         (vreinterpret_s64_s8): Likewise.
41912         (vreinterpret_s64_s16): Likewise.
41913         (vreinterpret_s64_s32): Likewise.
41914         (vreinterpret_s64_f32): Likewise.
41915         (vreinterpret_s64_u8): Likewise.
41916         (vreinterpret_s64_u16): Likewise.
41917         (vreinterpret_s64_u32): Likewise.
41918         (vreinterpret_s64_u64): Likewise.
41919         (vreinterpret_s64_p8): Likewise.
41920         (vreinterpret_s64_p16): Likewise.
41921         (vreinterpretq_s64_s8): Likewise.
41922         (vreinterpretq_s64_s16): Likewise.
41923         (vreinterpretq_s64_s32): Likewise.
41924         (vreinterpretq_s64_f32): Likewise.
41925         (vreinterpretq_s64_u8): Likewise.
41926         (vreinterpretq_s64_u16): Likewise.
41927         (vreinterpretq_s64_u32): Likewise.
41928         (vreinterpretq_s64_u64): Likewise.
41929         (vreinterpretq_s64_p8): Likewise.
41930         (vreinterpretq_s64_p16): Likewise.
41931         (vreinterpret_u64_s8): Likewise.
41932         (vreinterpret_u64_s16): Likewise.
41933         (vreinterpret_u64_s32): Likewise.
41934         (vreinterpret_u64_s64): Likewise.
41935         (vreinterpret_u64_f32): Likewise.
41936         (vreinterpret_u64_u8): Likewise.
41937         (vreinterpret_u64_u16): Likewise.
41938         (vreinterpret_u64_u32): Likewise.
41939         (vreinterpret_u64_p8): Likewise.
41940         (vreinterpret_u64_p16): Likewise.
41941         (vreinterpretq_u64_s8): Likewise.
41942         (vreinterpretq_u64_s16): Likewise.
41943         (vreinterpretq_u64_s32): Likewise.
41944         (vreinterpretq_u64_s64): Likewise.
41945         (vreinterpretq_u64_f32): Likewise.
41946         (vreinterpretq_u64_u8): Likewise.
41947         (vreinterpretq_u64_u16): Likewise.
41948         (vreinterpretq_u64_u32): Likewise.
41949         (vreinterpretq_u64_p8): Likewise.
41950         (vreinterpretq_u64_p16): Likewise.
41951         (vreinterpret_s8_s16): Likewise.
41952         (vreinterpret_s8_s32): Likewise.
41953         (vreinterpret_s8_s64): Likewise.
41954         (vreinterpret_s8_f32): Likewise.
41955         (vreinterpret_s8_u8): Likewise.
41956         (vreinterpret_s8_u16): Likewise.
41957         (vreinterpret_s8_u32): Likewise.
41958         (vreinterpret_s8_u64): Likewise.
41959         (vreinterpret_s8_p8): Likewise.
41960         (vreinterpret_s8_p16): Likewise.
41961         (vreinterpretq_s8_s16): Likewise.
41962         (vreinterpretq_s8_s32): Likewise.
41963         (vreinterpretq_s8_s64): Likewise.
41964         (vreinterpretq_s8_f32): Likewise.
41965         (vreinterpretq_s8_u8): Likewise.
41966         (vreinterpretq_s8_u16): Likewise.
41967         (vreinterpretq_s8_u32): Likewise.
41968         (vreinterpretq_s8_u64): Likewise.
41969         (vreinterpretq_s8_p8): Likewise.
41970         (vreinterpretq_s8_p16): Likewise.
41971         (vreinterpret_s16_s8): Likewise.
41972         (vreinterpret_s16_s32): Likewise.
41973         (vreinterpret_s16_s64): Likewise.
41974         (vreinterpret_s16_f32): Likewise.
41975         (vreinterpret_s16_u8): Likewise.
41976         (vreinterpret_s16_u16): Likewise.
41977         (vreinterpret_s16_u32): Likewise.
41978         (vreinterpret_s16_u64): Likewise.
41979         (vreinterpret_s16_p8): Likewise.
41980         (vreinterpret_s16_p16): Likewise.
41981         (vreinterpretq_s16_s8): Likewise.
41982         (vreinterpretq_s16_s32): Likewise.
41983         (vreinterpretq_s16_s64): Likewise.
41984         (vreinterpretq_s16_f32): Likewise.
41985         (vreinterpretq_s16_u8): Likewise.
41986         (vreinterpretq_s16_u16): Likewise.
41987         (vreinterpretq_s16_u32): Likewise.
41988         (vreinterpretq_s16_u64): Likewise.
41989         (vreinterpretq_s16_p8): Likewise.
41990         (vreinterpretq_s16_p16): Likewise.
41991         (vreinterpret_s32_s8): Likewise.
41992         (vreinterpret_s32_s16): Likewise.
41993         (vreinterpret_s32_s64): Likewise.
41994         (vreinterpret_s32_f32): Likewise.
41995         (vreinterpret_s32_u8): Likewise.
41996         (vreinterpret_s32_u16): Likewise.
41997         (vreinterpret_s32_u32): Likewise.
41998         (vreinterpret_s32_u64): Likewise.
41999         (vreinterpret_s32_p8): Likewise.
42000         (vreinterpret_s32_p16): Likewise.
42001         (vreinterpretq_s32_s8): Likewise.
42002         (vreinterpretq_s32_s16): Likewise.
42003         (vreinterpretq_s32_s64): Likewise.
42004         (vreinterpretq_s32_f32): Likewise.
42005         (vreinterpretq_s32_u8): Likewise.
42006         (vreinterpretq_s32_u16): Likewise.
42007         (vreinterpretq_s32_u32): Likewise.
42008         (vreinterpretq_s32_u64): Likewise.
42009         (vreinterpretq_s32_p8): Likewise.
42010         (vreinterpretq_s32_p16): Likewise.
42011         (vreinterpret_u8_s8): Likewise.
42012         (vreinterpret_u8_s16): Likewise.
42013         (vreinterpret_u8_s32): Likewise.
42014         (vreinterpret_u8_s64): Likewise.
42015         (vreinterpret_u8_f32): Likewise.
42016         (vreinterpret_u8_u16): Likewise.
42017         (vreinterpret_u8_u32): Likewise.
42018         (vreinterpret_u8_u64): Likewise.
42019         (vreinterpret_u8_p8): Likewise.
42020         (vreinterpret_u8_p16): Likewise.
42021         (vreinterpretq_u8_s8): Likewise.
42022         (vreinterpretq_u8_s16): Likewise.
42023         (vreinterpretq_u8_s32): Likewise.
42024         (vreinterpretq_u8_s64): Likewise.
42025         (vreinterpretq_u8_f32): Likewise.
42026         (vreinterpretq_u8_u16): Likewise.
42027         (vreinterpretq_u8_u32): Likewise.
42028         (vreinterpretq_u8_u64): Likewise.
42029         (vreinterpretq_u8_p8): Likewise.
42030         (vreinterpretq_u8_p16): Likewise.
42031         (vreinterpret_u16_s8): Likewise.
42032         (vreinterpret_u16_s16): Likewise.
42033         (vreinterpret_u16_s32): Likewise.
42034         (vreinterpret_u16_s64): Likewise.
42035         (vreinterpret_u16_f32): Likewise.
42036         (vreinterpret_u16_u8): Likewise.
42037         (vreinterpret_u16_u32): Likewise.
42038         (vreinterpret_u16_u64): Likewise.
42039         (vreinterpret_u16_p8): Likewise.
42040         (vreinterpret_u16_p16): Likewise.
42041         (vreinterpretq_u16_s8): Likewise.
42042         (vreinterpretq_u16_s16): Likewise.
42043         (vreinterpretq_u16_s32): Likewise.
42044         (vreinterpretq_u16_s64): Likewise.
42045         (vreinterpretq_u16_f32): Likewise.
42046         (vreinterpretq_u16_u8): Likewise.
42047         (vreinterpretq_u16_u32): Likewise.
42048         (vreinterpretq_u16_u64): Likewise.
42049         (vreinterpretq_u16_p8): Likewise.
42050         (vreinterpretq_u16_p16): Likewise.
42051         (vreinterpret_u32_s8): Likewise.
42052         (vreinterpret_u32_s16): Likewise.
42053         (vreinterpret_u32_s32): Likewise.
42054         (vreinterpret_u32_s64): Likewise.
42055         (vreinterpret_u32_f32): Likewise.
42056         (vreinterpret_u32_u8): Likewise.
42057         (vreinterpret_u32_u16): Likewise.
42058         (vreinterpret_u32_u64): Likewise.
42059         (vreinterpret_u32_p8): Likewise.
42060         (vreinterpret_u32_p16): Likewise.
42061         (vreinterpretq_u32_s8): Likewise.
42062         (vreinterpretq_u32_s16): Likewise.
42063         (vreinterpretq_u32_s32): Likewise.
42064         (vreinterpretq_u32_s64): Likewise.
42065         (vreinterpretq_u32_f32): Likewise.
42066         (vreinterpretq_u32_u8): Likewise.
42067         (vreinterpretq_u32_u16): Likewise.
42068         (vreinterpretq_u32_u64): Likewise.
42069         (vreinterpretq_u32_p8): Likewise.
42070         (vreinterpretq_u32_p16): Likewise.
42071
42072 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
42073
42074         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
42075         Pattern extended.
42076         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
42077         (sqabs): Likewise.
42078         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
42079         (vqnegd_s64): Likewise.
42080         (vqabs_s64): Likewise.
42081         (vqabsd_s64): Likewise.
42082
42083 2014-04-22  Richard Henderson  <rth@redhat.com>
42084
42085         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
42086         computation to the top of the loop.
42087
42088 2014-04-22  Renlin  <renlin.li@arm.com>
42089             Jiong Wang  <jiong.wang@arm.com>
42090
42091         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
42092         * config/aarch64/aarch64.c (aarch64_layout_frame)
42093         (aarch64_initial_elimination_offset): Likewise.
42094
42095 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
42096
42097         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
42098         Fix indentation.
42099
42100 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
42101
42102         * machmode.h (bitwise_mode_for_mode): Declare.
42103         * stor-layout.h (bitwise_type_for_mode): Likewise.
42104         * stor-layout.c (bitwise_mode_for_mode): New function.
42105         (bitwise_type_for_mode): Likewise.
42106         * builtins.c (fold_builtin_memory_op): Use it instead of
42107         int_mode_for_mode and build_nonstandard_integer_type.
42108
42109 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42110
42111         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
42112         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
42113         (*-*-solaris2*): Simplify.
42114         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
42115         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
42116         *-*-solaris2.9* handling.
42117
42118         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
42119         as bug.
42120         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
42121         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
42122         handling, simplify.
42123         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
42124         * configure: Regenerate.
42125
42126         * config/i386/sol2-9.h: Remove.
42127
42128         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
42129         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
42130         Remove Solaris 9 references.
42131
42132 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
42133
42134         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
42135         (floatuns<GPI:mode><GPF:mode>2): Remove.
42136         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
42137         and floatuns conversions.
42138         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
42139         and floatuns conversions.
42140         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
42141         (w1,w2): New mode attributes for inequal width conversions.
42142
42143 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
42144
42145         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
42146         the output asm format.
42147
42148 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
42149
42150         * config/aarch64/aarch64-simd.md
42151         (aarch64_cm<optab>di): Always split.
42152         (*aarch64_cm<optab>di): New.
42153         (aarch64_cmtstdi): Always split.
42154         (*aarch64_cmtstdi): New.
42155
42156 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
42157
42158         PR tree-optimization/60823
42159         * omp-low.c (ipa_simd_modify_function_body): Go through
42160         all SSA_NAMEs and for those refering to vector arguments
42161         which are going to be replaced adjust SSA_NAME_VAR and,
42162         if it is a default definition, change it into a non-default
42163         definition assigned at the beginning of function from new_decl.
42164         (ipa_simd_modify_stmt_ops): Rewritten.
42165         * tree-dfa.c (set_ssa_default_def): When removing default def,
42166         check for NULL loc instead of NULL *loc.
42167
42168 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42169
42170         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
42171         restrictions on core registers for DImode values in Thumb2.
42172
42173 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
42174
42175         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
42176         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
42177
42178 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
42179
42180         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
42181         (*iordi_notzesidi_di): Likewise.
42182         (*iordi_notsesidi_di): Likewise.
42183
42184 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
42185
42186         * config/arm/arm-protos.h (tune_params): New struct members.
42187         * config/arm/arm.c: Initialise tune_params per processor.
42188         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
42189         for speed, based on new tune_params.
42190
42191 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
42192
42193         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
42194         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
42195         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
42196         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
42197         * config/aarch64/arm_neon.h (vrnd_f64): Added.
42198         (vrnda_f64): Likewise.
42199         (vrndi_f64): Likewise.
42200         (vrndm_f64): Likewise.
42201         (vrndn_f64): Likewise.
42202         (vrndp_f64): Likewise.
42203         (vrndx_f64): Likewise.
42204
42205 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
42206
42207         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
42208         GET_MODE_SIZE argument is enum machine_mode.
42209
42210 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
42211
42212         PR target/60910
42213         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
42214         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
42215
42216 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
42217
42218         PR middle-end/60281
42219         * asan.c (asan_emit_stack_protection): Force the base to align to
42220         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
42221         appropriate bits if STRICT_ALIGNMENT.
42222         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
42223         when asan is on.
42224         (expand_used_vars): Leave a space in the stack frame for alignment
42225         if STRICT_ALIGNMENT.
42226
42227 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
42228
42229         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
42230         than a gimple.
42231         (gimple_store_p): Likewise.
42232         (gimple_assign_load_p): Likewise.
42233         (gimple_assign_cast_p): Likewise.
42234         (gimple_clobber_p): Likewise.
42235
42236         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
42237         rather than a gimple.
42238         (gimple_assign_cast_p): Likewise.
42239
42240 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
42241
42242         PR target/60735
42243         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
42244         If mode is DDmode and TARGET_E500_DOUBLE allow move.
42245
42246         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
42247         more debug information for E500 if -mdebug=reg.
42248
42249 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
42250
42251         PR target/60909
42252         * config/i386/i386.c (ix86_expand_builtin)
42253         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
42254         register for target RTX.
42255         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
42256
42257 2014-04-18  Cong Hou  <congh@google.com>
42258
42259         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
42260         the widen-mult pattern by handling two operands with different sizes,
42261         and operands whose size is smaller than half of the result type.
42262
42263 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
42264
42265         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
42266         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
42267         (do_estimate_edge_time): Compute it.
42268         * ipa-inline.c (want_inline_small_function_p): Bypass
42269         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
42270
42271 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
42272
42273         * ipa-inline.c (spec_rem): New static variable.
42274         (dump_overall_stats): New function.
42275         (dump_inline_stats): New function.
42276
42277 2014-04-18  Richard Henderson  <rth@redhat.com>
42278
42279         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
42280         to GET_MODE_SIZE, not a reg_class_t.
42281
42282 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42283
42284         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
42285         (vsx_xxmrglw_<mode>): Likewise.
42286
42287 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
42288
42289         PR target/60876
42290         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
42291         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
42292         (rs6000_init_hard_regno_mode_ok): Likewise.
42293
42294 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
42295
42296         * ipa-inline.c (inline_small_functions): Account only non-cold
42297         functions.
42298         * doc/invoke.texi (inline-unit-growth): Update documentation.
42299
42300 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
42301
42302         * config/rs6000/rs6000.md (addti3, subti3): New.
42303
42304 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
42305
42306         PR target/60863
42307         * config/i386/i386.c (ix86_expand_clear): Remove outdated
42308         comment.  Check optimize_insn_for_size_p instead of
42309         optimize_insn_for_speed_p.
42310
42311 2014-04-17  Martin Jambor  <mjambor@suse.cz>
42312
42313         * gimple-iterator.c (gsi_start_edge): New function.
42314         * gimple-iterator.h (gsi_start_edge): Declare.
42315         * tree-sra.c (single_non_eh_succ): New function.
42316         (disqualify_ops_if_throwing_stmt): Renamed to
42317         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
42318         having one non-EH successor BB.
42319         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
42320         generate loads into replacements.
42321         (sra_modify_assign): Likewise and and also use the simple path for
42322         such statements.
42323         (sra_modify_function_body): Commit statements on edges.
42324
42325 2014-04-17  Richard Biener  <rguenther@suse.de>
42326
42327         PR middle-end/60849
42328         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
42329         comparison results and add clarifying comment.
42330
42331 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
42332
42333         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
42334         (blank_mode): Initialize it.
42335         (emit_mode_size_inline, emit_mode_nunits_inline,
42336         emit_mode_inner_inline): New functions.
42337         (emit_insn_modes_h): Call them and surround their output with
42338         #if GCC_VERSION >= 4001 ... #endif.
42339         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
42340         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
42341         mode_* arrays if the argument is __builtin_constant_p.
42342         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
42343         is enum machine_mode.
42344
42345 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42346
42347         * passes.c (opt_pass::execute): Adjust.
42348         (pass_manager::execute_pass_mode_switching): Likewise.
42349         (early_local_passes::execute): Likewise.
42350         (execute_one_pass): Pass cfun to the pass's execute method.
42351         * tree-pass.h (opt_pass::execute): Add function * argument.
42352         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
42353         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
42354         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
42355         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
42356         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
42357         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
42358         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
42359         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
42360         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
42361         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
42362         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
42363         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
42364         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
42365         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
42366         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
42367         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
42368         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
42369         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
42370         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
42371         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
42372         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
42373         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
42374         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
42375         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
42376         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
42377         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
42378         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
42379         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
42380         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
42381         Adjust.
42382
42383 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42384
42385         * passes.c (opt_pass::gate): Take function * argument.
42386         (gate_all_early_local_passes): Merge into
42387         (early_local_passes::gate): this.
42388         (gate_all_early_optimizations): Merge into
42389         (all_early_optimizations::gate): this.
42390         (gate_all_optimizations): Mege into
42391         (all_optimizations::gate): this.
42392         (gate_all_optimizations_g): Merge into
42393         (all_optimizations_g::gate): this.
42394         (gate_rest_of_compilation): Mege into
42395         (rest_of_compilation::gate): this.
42396         (gate_postreload): Merge into
42397         (postreload::gate): this.
42398         (dump_one_pass): Pass cfun to the pass's gate method.
42399         (execute_ipa_summary_passes): Likewise.
42400         (execute_one_pass): Likewise.
42401         (ipa_write_summaries_2): Likewise.
42402         (ipa_write_optimization_summaries_1): Likewise.
42403         (ipa_read_summaries_1): Likewise.
42404         (ipa_read_optimization_summaries_1): Likewise.
42405         (execute_ipa_stmt_fixups): Likewise.
42406         * tree-pass.h (opt_pass::gate): Add function * argument.
42407         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
42408         combine-stack-adj.c, combine.c, compare-elim.c,
42409         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
42410         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
42411         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
42412         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
42413         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
42414         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
42415         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
42416         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
42417         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
42418         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
42419         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
42420         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
42421         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
42422         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
42423         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
42424         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
42425         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
42426         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
42427         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
42428         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
42429         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
42430         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
42431         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
42432         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
42433         var-tracking.c, vtable-verify.c, web.c: Adjust.
42434
42435 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42436
42437         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
42438         * configure: Regenerate.
42439
42440 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42441
42442         * passes.c (dump_one_pass): don't check pass->has_gate.
42443         (execute_ipa_summary_passes): Likewise.
42444         (execute_one_pass): Likewise.
42445         (ipa_write_summaries_2): Likewise.
42446         (ipa_write_optimization_summaries_1): Likewise.
42447         (ipa_read_optimization_summaries_1): Likewise.
42448         (execute_ipa_stmt_fixups): Likewise.
42449         * tree-pass.h (pass_data::has_gate): Remove.
42450         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
42451         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
42452         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
42453         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
42454         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
42455         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
42456         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
42457         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
42458         gimple-low.c, gimple-ssa-isolate-paths.c,
42459         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
42460         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
42461         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
42462         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
42463         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
42464         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
42465         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
42466         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
42467         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
42468         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
42469         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
42470         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
42471         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
42472         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
42473         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
42474         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
42475         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
42476         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
42477         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
42478         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
42479         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
42480         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
42481         Adjust.
42482
42483 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42484
42485         * pass_manager.h (pass_manager::register_dump_files_1): Remove
42486         declaration.
42487         * passes.c (pass_manager::register_dump_files_1): Merge into
42488         (pass_manager::register_dump_files): this, and remove its handling of
42489         properties since the pass always has the properties anyway.
42490         (pass_manager::pass_manager): Adjust.
42491
42492 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
42493
42494         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
42495         * passes.c (pass_manager::register_dump_files_1): Remove dead code
42496         dealing with properties.
42497         (pass_manager::register_dump_files): Adjust.
42498
42499 2014-03-20  Mark Wielaard  <mjw@redhat.com>
42500
42501         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
42502         then represent the bound as normal constant value.
42503
42504 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
42505
42506         PR target/60847
42507         Forward port from 4.8 branch
42508         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
42509
42510         * config/i386/bmiintrin.h (_blsi_u32): New.
42511         (_blsi_u64): Ditto.
42512         (_blsr_u32): Ditto.
42513         (_blsr_u64): Ditto.
42514         (_blsmsk_u32): Ditto.
42515         (_blsmsk_u64): Ditto.
42516         (_tzcnt_u32): Ditto.
42517         (_tzcnt_u64): Ditto.
42518
42519 2014-04-17  Kito Cheng  <kito@0xlab.org>
42520
42521         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
42522
42523 2014-04-17  Richard Biener  <rguenther@suse.de>
42524
42525         PR middle-end/60849
42526         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
42527         boolean results for comparisons.
42528
42529 2014-04-17  Richard Biener  <rguenther@suse.de>
42530
42531         PR tree-optimization/60836
42532         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
42533         initial PHI args to be gimple values.
42534
42535 2014-04-17  Richard Biener  <rguenther@suse.de>
42536
42537         PR tree-optimization/60841
42538         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
42539         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
42540         of stmts to SLP build.
42541         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
42542         (vect_analyze_slp): Likewise.
42543         (vect_analyze_slp_instance): Likewise.
42544         (vect_build_slp_tree): Limit overall SLP tree growth.
42545         * tree-vectorizer.h (vect_analyze_data_refs,
42546         vect_analyze_slp): Adjust prototypes.
42547
42548 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
42549
42550         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
42551         Silvermont.
42552
42553 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
42554
42555         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
42556         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
42557         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
42558         for TARGET_SLOW_PSHUFB
42559
42560 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
42561
42562         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
42563         * config/i386/i386.c (intel_cost): Ditto.
42564
42565 2014-04-17  Joey Ye  <joey.ye@arm.com>
42566
42567         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
42568
42569 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
42570
42571         * opts.c (common_handle_option): Disable -fipa-reference coorectly
42572         with -fuse-profile.
42573
42574 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
42575
42576         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
42577         (type_all_derivations_known_p): New predicate.
42578         (type_all_ctors_visible_p): New predicate.
42579         (type_possibly_instantiated_p): New predicate.
42580         (get_odr_type): Compute all_derivations_known.
42581         (dump_odr_type): Dump the flag.
42582         (maybe_record_type): Cleanup.
42583         (record_target_from_binfo): Add bases_to_consider array;
42584         record bases for types w/o instances and skip CXX destructor.
42585         (possible_polymorphic_call_targets_1): Add bases_to_consider
42586         and consider_construction parameters; check if type may have instance.
42587         (get_polymorphic_call_info): Set maybe_in_construction to true
42588         when we know nothing.
42589         (record_targets_from_bases): Skip CXX destructors; they are
42590         never called for types in construction.
42591         (possible_polymorphic_call_targets): Do not record target when
42592         type may not have instance.
42593
42594 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
42595
42596         PR ipa/60854
42597         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
42598         external aliases alive, too.
42599
42600 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
42601
42602         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
42603         definition.
42604
42605 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
42606
42607         * final.c (compute_alignments): Do not apply loop alignment to a block
42608         falling through to the exit.
42609
42610 2014-04-16  Catherine Moore  <clm@codesourcery.com>
42611
42612         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
42613         Adjust constraints for microMIPS store patterns.
42614
42615 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42616
42617         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
42618
42619 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
42620
42621         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
42622         (append_use): Run at -O0.
42623         (append_vdef): Likewise.
42624         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
42625         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
42626
42627 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
42628
42629         PR tree-optimization/60844
42630         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
42631         (propagate_op_to_single_use, remove_visited_stmt_chain,
42632         linearize_expr, repropagate_negates, reassociate_bb): Use it
42633         instead of gsi_remove.
42634
42635 2014-04-16  Martin Jambor  <mjambor@suse.cz>
42636
42637         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
42638         ipa_transforms_to_apply.
42639         (cgraph_function_versioning): Assert that old_node has empty
42640         ipa_transforms_to_apply.
42641         * trans-mem.c (ipa_tm_create_version): Likewise.
42642         * tree-inline.c (tree_function_versioning): Do not duplicate
42643         ipa_transforms_to_apply.
42644
42645 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42646
42647         PR target/60817
42648         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
42649         x86_64-*-* cases.
42650         Pass necessary as flags on 64-bit Solaris/x86.
42651         Use lowercase relocs for x86_64-*-*.
42652         * configure: Regenerate.
42653
42654 2014-04-15  Jan Hubicka  <jh@suse.cz>
42655
42656         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
42657         (maybe_record_node, likely_target_p): Use it.
42658
42659 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42660
42661         PR target/60839
42662         Revert following patch
42663
42664         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42665
42666         PR target/60735
42667         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42668         software floating point or no floating point registers, do not
42669         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42670         in GPRs that occurs after we tested for GPRs that would never be
42671         true.
42672
42673         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42674         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42675         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42676         specifically allow DDmode, since that does not use the SPE SIMD
42677         instructions.
42678
42679 2014-03-21  Mark Wielaard  <mjw@redhat.com>
42680
42681         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
42682         as unsigned or int depending on type and value used.
42683
42684 2014-04-15  Richard Biener  <rguenther@suse.de>
42685
42686         PR rtl-optimization/56965
42687         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
42688         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
42689         ... here.
42690         * alias.c (true_dependence_1): Do not call
42691         nonoverlapping_component_refs_p.
42692         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
42693         nonoverlapping_component_refs_p.
42694         (indirect_refs_may_alias_p): Likewise.
42695
42696 2014-04-15  Teresa Johnson  <tejohnson@google.com>
42697
42698         * cfg.c (dump_bb_info): Fix flags check.
42699         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
42700
42701 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42702
42703         PR rtl-optimization/60663
42704         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
42705         avoid 0 cost.
42706
42707 2014-04-15  Richard Biener  <rguenther@suse.de>
42708
42709         * lto-streamer.h (LTO_major_version): Bump to 4.
42710
42711 2014-04-15  Richard Biener  <rguenther@suse.de>
42712
42713         * common.opt (lto_partition_model): New enum.
42714         (flto-partition=): Merge separate options with a single with argument,
42715         add -flto-partition=one support.
42716         * flag-types.h (enum lto_partition_model): Declare.
42717         * opts.c (finish_options): Remove duplicate -flto-partition=
42718         option check.
42719         * lto-wrapper.c (run_gcc): Adjust.
42720
42721 2014-04-15  Richard Biener  <rguenther@suse.de>
42722
42723         * alias.c (ncr_compar): New function.
42724         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
42725
42726 2014-04-15  Richard Biener  <rguenther@suse.de>
42727
42728         * alias.c (record_component_aliases): Do not walk BINFOs.
42729
42730 2014-04-15  Richard Biener  <rguenther@suse.de>
42731
42732         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
42733         Add struct function argument and adjust.
42734         (find_func_aliases_for_call): Likewise.
42735         (find_func_aliases): Likewise.
42736         (find_func_clobbers): Likewise.
42737         (intra_create_variable_infos): Likewise.
42738         (compute_points_to_sets): Likewise.
42739         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
42740
42741 2014-04-15  Richard Biener  <rguenther@suse.de>
42742
42743         * tree.c (iterative_hash_expr): Use enum tree_code_class
42744         to store TREE_CODE_CLASS.
42745         (tree_block): Likewise.
42746         (tree_set_block): Likewise.
42747         * tree.h (fold_build_pointer_plus_loc): Use
42748         convert_to_ptrofftype_loc.
42749
42750 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
42751
42752         PR plugins/59335
42753         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
42754         added in 4.9.
42755
42756 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
42757
42758         * cfgloop.h (struct loop): Move force_vectorize down.
42759         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
42760         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
42761         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
42762         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
42763         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
42764         * tree-core.h (enum annot_expr_kind): Add new kind values.
42765         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
42766         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
42767         kinds.
42768         * tree.def (ANNOTATE_EXPR): Tweak comment.
42769
42770 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42771
42772         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
42773         cxa_pure_virtual).
42774
42775 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
42776
42777         * tree.h (TYPE_IDENTIFIER): Declare.
42778         * tree.c (subrange_type_for_debug_p): Use it.
42779         * godump.c (go_format_type): Likewise.
42780         * dwarf2out.c (is_cxx_auto, modified_type_die,
42781         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
42782         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
42783
42784 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42785
42786         PR lto/60820
42787         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
42788
42789 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
42790
42791         * config/i386/i386.c (examine_argument): Return bool.  Return true if
42792         parameter should be passed in memory.
42793         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
42794         (construct_container): Update calls to examine_argument.
42795         (function_arg_advance_64): Ditto.
42796         (return_in_memory_32): Merge with ix86_return_in_memory.
42797         (return_in_memory_64): Ditto.
42798         (return_in_memory_ms_64): Ditto.
42799
42800 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42801
42802         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
42803         * coverage.c (coverage_compute_profile_id): Handle externally visible
42804         symbols.
42805
42806 2014-04-14  Martin Jambor  <mjambor@suse.cz>
42807
42808         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
42809         DECL_DISREGARD_INLINE_LIMITS functions.
42810
42811 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42812
42813         PR target/60827
42814         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
42815
42816 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42817
42818         PR target/60827
42819         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
42820         optimize_insn_for_speed_p instead of
42821         optimize_function_for_speed_p.
42822
42823 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
42824
42825         * doc/invoke.texi (free): Document AArch64.
42826
42827 2014-04-14  Richard Biener  <rguenther@suse.de>
42828
42829         PR tree-optimization/60042
42830         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42831         (insert_into_preds_of_block): Do not prevent PHI insertion
42832         for REFERENCE exprs here ...
42833         (eliminate_dom_walker::before_dom_children): ... but prevent
42834         their use here under similar conditions when applied to the
42835         IL after PRE optimizations.
42836
42837 2014-04-14  Richard Biener  <rguenther@suse.de>
42838
42839         * passes.def: Move early points-to after early SRA.
42840
42841 2014-04-14  Richard Biener  <rguenther@suse.de>
42842
42843         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42844         check for which sign-changes we allow when forwarding
42845         a converted value into a switch.
42846
42847 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42848
42849         * stor-layout.c (place_field): Finalize non-constant offset for the
42850         field, if any.
42851
42852 2014-04-14  Richard Biener  <rguenther@suse.de>
42853
42854         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42855         as argument.
42856         (expand_switch_using_bit_tests_p): Likewise.
42857         (process_switch): Compute and pass on speed_p based on the
42858         switch stmt.
42859         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42860         optimize_bb_for_speed_p.
42861
42862 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42863
42864         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42865         * function.h (struct function): Rename has_force_vect_loops into
42866         has_force_vectorize_loops.
42867         * lto-streamer-in.c (input_cfg): Adjust for renaming.
42868         (input_struct_function_base): Likewise.
42869         * lto-streamer-out.c (output_cfg): Likewise.
42870         (output_struct_function_base): Likewise.
42871         * omp-low.c (expand_omp_simd): Likewise.
42872         * tree-cfg.c (move_sese_region_to_fn): Likewise.
42873         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42874         (version_loop_for_if_conversion): Likewise.
42875         (tree_if_conversion): Likewise.
42876         (main_tree_if_conversion): Likewise.
42877         (gate_tree_if_conversion): Likewise.
42878         * tree-inline.c (copy_loops): Likewise.
42879         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42880         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42881         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42882         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42883         * tree-vectorizer.c (vectorize_loops): Likewise.
42884         * tree-vectorizer.h (unlimited_cost_model): Likewise.
42885
42886 2014-04-14  Richard Biener  <rguenther@suse.de>
42887
42888         PR lto/60720
42889         * lto-streamer-out.c (wrap_refs): New function.
42890         (lto_output): Wrap symbol references in global initializes in
42891         type-preserving MEM_REFs.
42892
42893 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42894
42895         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42896
42897 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42898
42899         * config/sh/sh.md (setmemqi): New expand pattern.
42900         * config/sh/sh.h (CLEAR_RATIO): Define.
42901         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42902         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42903
42904 2014-04-14  Richard Biener  <rguenther@suse.de>
42905
42906         PR middle-end/55022
42907         * fold-const.c (negate_expr_p): Don't negate directional rounding
42908         division.
42909         (fold_negate_expr): Likewise.
42910
42911 2014-04-14  Richard Biener  <rguenther@suse.de>
42912
42913         PR tree-optimization/59817
42914         PR tree-optimization/60453
42915         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42916         recursion to catch all CHRECs in the scalar evolution and restrict
42917         the predicate for the remains appropriately.
42918
42919 2014-04-12  Catherine Moore  <clm@codesourcery.com>
42920
42921         * config/mips/constraints.md: Add new register constraint "kb".
42922         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42923         (*movhi_internal): Likewise.
42924         (*movqi_internal): Likewise.
42925         * config/mips/mips.h (M16_STORE_REGS): New register class.
42926         (REG_CLASS_NAMES): Add M16_STORE_REGS.
42927         (REG_CLASS_CONTENTS): Likewise.
42928         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42929
42930 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42931
42932         PR c/60194
42933         * doc/invoke.texi (-Wformat-signedness): Document it.
42934         (Wformat=2): Mention that this enables -Wformat-signedness.
42935
42936 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42937
42938         * common/config/epiphany/epiphany-common.c
42939         (epiphany_option_optimization_table): Enable section anchors by
42940         default at -O1 or higher.
42941         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42942         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42943         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42944         carries no extra cost.
42945         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42946         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42947         * config/epiphany/predicates.md (memclob_operand): New predicate.
42948         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42949         Use memclob_operand predicate and X constraint for operand 3.
42950
42951 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42952
42953         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42954         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42955         its operands.
42956
42957 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42958
42959         PR rtl-optimization/60651
42960         * mode-switching.c (optimize_mode_switching): Make sure to emit
42961         sets of a lower numbered entity before sets of a higher numbered
42962         entity to a mode of the same or lower priority.
42963         When creating a seginfo for a basic block that starts with a code
42964         label, move the insertion point past the code label.
42965         (new_seginfo): Document and enforce requirement that
42966         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42967         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42968         * doc/tm.texi: Regenerate.
42969
42970 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42971
42972         PR target/60811
42973         * config/arc/arc.c (arc_save_restore): Fix assert typo.
42974
42975 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
42976
42977         * BASE-VER: Set to 4.10.0.
42978
42979 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42980
42981         PR other/59055
42982         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42983         * doc/gcc.texi (Service): Update description in the @menu
42984         * doc/invoke.texi (Option Summary): Remove misplaced and
42985         duplicated @menu.
42986
42987 2014-04-11  Steve Ellcey  <sellcey@mips.com>
42988             Jakub Jelinek  <jakub@redhat.com>
42989
42990         PR middle-end/60556
42991         * expr.c (convert_move): Use emit_store_flag_force instead of
42992         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
42993         argument to it.
42994
42995 2014-04-11  Richard Biener  <rguenther@suse.de>
42996
42997         PR middle-end/60797
42998         * varasm.c (assemble_alias): Avoid endless error reporting
42999         recursion by setting TREE_ASM_WRITTEN.
43000
43001 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43002
43003         * config/s390/s390.md: Add a splitter for NOT rtx.
43004
43005 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
43006
43007         PR rtl-optimization/60663
43008         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
43009
43010 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
43011             Jakub Jelinek  <jakub@redhat.com>
43012
43013         PR lto/60567
43014         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
43015         flag from decl_node to node.
43016
43017 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43018
43019         PR debug/60655
43020         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
43021         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
43022         ameliorating the cases where it can be.
43023
43024 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
43025
43026         Revert
43027         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
43028
43029         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
43030         (loadsync_<mode>): Change mode.
43031         (load_quadpti, store_quadpti): New.
43032         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
43033         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
43034         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
43035
43036 2014-04-09  Cong Hou  <congh@google.com>
43037
43038         PR testsuite/60773
43039         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
43040         documentation.
43041
43042 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43043
43044         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
43045         instead of vnor to exploit possible fusion opportunity in the
43046         future.
43047         (altivec_expand_vec_perm_const_le): Likewise.
43048
43049 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
43050
43051         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
43052         (loadsync_<mode>): Change mode.
43053         (load_quadpti, store_quadpti): New.
43054         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
43055         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
43056
43057 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
43058
43059         PR target/60763
43060         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
43061         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
43062         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
43063
43064 2014-04-08  Richard Biener  <rguenther@suse.de>
43065
43066         PR middle-end/60706
43067         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
43068         a 64bit widest int print double-int similar to on HWI64 hosts.
43069
43070 2014-04-08  Richard Biener  <rguenther@suse.de>
43071
43072         PR tree-optimization/60785
43073         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
43074         default defs properly.
43075
43076 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
43077
43078         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
43079         (Weffc++): Likewise.
43080
43081 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
43082
43083         * ipa-devirt.c (maybe_record_node): When node is not recorded,
43084         set completep to false rather than true.
43085
43086 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
43087
43088         PR target/60504
43089         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
43090         ARM_TARGET2_DWARF_FORMAT.
43091
43092 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
43093
43094         PR target/60609
43095         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
43096         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
43097         ADDR_DIFF_VEC.
43098
43099 2014-04-07  Richard Biener  <rguenther@suse.de>
43100
43101         PR tree-optimization/60766
43102         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
43103         (may_eliminate_iv): Convert cand_value_at result to desired type.
43104
43105 2014-04-07  Jason Merrill  <jason@redhat.com>
43106
43107         PR c++/60731
43108         * common.opt (-fno-gnu-unique): Add.
43109         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
43110
43111 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43112
43113         * haifa-sched.c: Fix outdated function reference and minor
43114         grammar errors in introductory comment.
43115
43116 2014-04-07  Richard Biener  <rguenther@suse.de>
43117
43118         PR middle-end/60750
43119         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
43120         for noreturn calls.
43121         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
43122
43123 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
43124
43125         PR debug/55794
43126         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
43127         size accounting for thunks.
43128         (pa_asm_output_mi_thunk): Use final_start_function() and
43129         final_end_function() to output function start and end directives.
43130
43131 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
43132
43133         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
43134         device specific ISA/ feature information. Remove short_sp and
43135         errata_skip ds.  Add avr_device_specific_features enum to have device
43136         specific info.
43137         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
43138         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
43139         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
43140         updated device specific info.
43141         * config/avr/avr-mcus.def: Merge device specific details to
43142         dev_attribute field.
43143         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
43144         errata_skip.
43145         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
43146         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
43147         assembler if RMW isa supported by current device.
43148         * config/avr/genmultilib.awk: Update as device info structure changed.
43149         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
43150
43151 2014-04-04  Cong Hou  <congh@google.com>
43152
43153         PR tree-optimization/60656
43154         * tree-vect-stmts.c (supportable_widening_operation):
43155         Fix a bug that elements in a vector with vect_used_by_reduction
43156         property are incorrectly reordered when the operation on it is not
43157         consistant with the one in reduction operation.
43158
43159 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
43160
43161         PR rtl-optimization/60155
43162         * gcse.c (record_set_data): New function.
43163         (single_set_gcse): New function.
43164         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
43165         (hoist_code): Likewise.
43166         (get_pressure_class_and_nregs): Likewise.
43167
43168 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
43169
43170         * explow.c (probe_stack_range): Emit a final optimization blockage.
43171
43172 2014-04-04  Anthony Green  <green@moxielogic.com>
43173
43174         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
43175         typos.
43176
43177 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
43178
43179         PR ipa/59626
43180         * lto-cgraph.c (input_overwrite_node): Check that partitioning
43181         flags are set only during streaming.
43182         * ipa.c (process_references, walk_polymorphic_call_targets,
43183         symtab_remove_unreachable_nodes): Drop bodies of always inline
43184         after early inlining.
43185         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
43186
43187 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
43188         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43189
43190         PR debug/60655
43191         * dwarf2out.c (const_ok_for_output_1): Reject expressions
43192         containing a NOT.
43193
43194 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43195
43196         PR bootstrap/60743
43197         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
43198         duration.
43199         (cortex_a53_fdivd): Likewise.
43200
43201 2014-04-04  Martin Jambor  <mjambor@suse.cz>
43202
43203         PR ipa/60640
43204         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
43205         Adjust all callers.
43206         * cgraph.c (clone_of_p): Also return true if thunks match.
43207         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
43208         cgraph_function_or_thunk_node and an obsolete comment.
43209         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
43210         file.
43211         (build_function_decl_skip_args): Likewise.
43212         (set_new_clone_decl_and_node_flags): New function.
43213         (duplicate_thunk_for_node): Likewise.
43214         (redirect_edge_duplicating_thunks): Likewise.
43215         (cgraph_clone_node): New parameter args_to_skip, pass it to
43216         redirect_edge_duplicating_thunks which is called instead of
43217         cgraph_redirect_edge_callee.
43218         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
43219         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
43220
43221 2014-04-04  Jeff Law  <law@redhat.com>
43222
43223         PR target/60657
43224         * config/arm/predicates.md (const_int_I_operand): New predicate.
43225         (const_int_M_operand): Similarly.
43226         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
43227         const_int_operand.
43228         (insv_t2, extv_reg, extzv_t2): Likewise.
43229         (load_multiple_with_writeback): Similarly for const_int_I_operand.
43230         (pop_multiple_with_writeback_and_return): Likewise.
43231         (vfp_pop_multiple_with_writeback): Likewise
43232
43233 2014-04-04  Richard Biener  <rguenther@suse.de>
43234
43235         PR ipa/60746
43236         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
43237         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
43238         non-GIMPLE_LABELs.
43239         * gimplify.h (gimple_add_tmp_var_fn): Declare.
43240         * gimplify.c (gimple_add_tmp_var_fn): New function.
43241         * gimple-expr.h (create_tmp_reg_fn): Declare.
43242         * gimple-expr.c (create_tmp_reg_fn): New function.
43243         * gimple-low.c (record_vars_into): Don't change cfun.
43244         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
43245         code generation without cfun.
43246
43247 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
43248
43249         PR bootstrap/60719
43250         * Makefile.in (install-driver): Fix shell scripting.
43251
43252 2014-04-03  Cong Hou  <congh@google.com>
43253
43254         PR tree-optimization/60505
43255         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
43256         threshold of number of iterations below which no vectorization
43257         will be done.
43258         * tree-vect-loop.c (new_loop_vec_info):
43259         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
43260         * tree-vect-loop.c (vect_analyze_loop_operations):
43261         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
43262         * tree-vect-loop.c (vect_transform_loop):
43263         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
43264         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
43265         of iterations of the loop and see if we should build the epilogue.
43266
43267 2014-04-03  Richard Biener  <rguenther@suse.de>
43268
43269         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
43270         (streamer_tree_cache_create): Adjust.
43271         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
43272         to allow optional nodes array.
43273         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
43274         (streamer_tree_cache_append): Likewise.
43275         (streamer_tree_cache_create): Create nodes array optionally
43276         as specified by parameter.
43277         * lto-streamer-out.c (create_output_block): Avoid maintaining
43278         the node array in the writer cache.
43279         (DFS_write_tree): Remove assertion.
43280         (produce_asm_for_decls): Free the out decl state hash table early.
43281         * lto-streamer-in.c (lto_data_in_create): Adjust for
43282         streamer_tree_cache_create prototype change.
43283
43284 2014-04-03  Richard Biener  <rguenther@suse.de>
43285
43286         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
43287         set TREE_CHAIN to NULL_TREE.
43288
43289 2014-04-03  Richard Biener  <rguenther@suse.de>
43290
43291         PR tree-optimization/60740
43292         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
43293         over all GIMPLE_COND operands.
43294
43295 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
43296
43297         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
43298         (Weffc++): Remove Scott's numbering, merge lists and reference
43299         Wnon-virtual-dtor.
43300
43301 2014-04-03  Nick Clifton  <nickc@redhat.com>
43302
43303         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
43304         properly.
43305
43306 2014-04-03  Martin Jambor  <mjambor@suse.cz>
43307
43308         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
43309         mention gcc_unreachable before failing.
43310         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
43311         removed symbols.
43312
43313 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
43314
43315         PR ipa/60659
43316         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
43317         inconsistent code and instead mark the context inconsistent.
43318         (possible_polymorphic_call_targets): For inconsistent contexts
43319         return empty complete list.
43320
43321 2014-04-02  Anthony Green  <green@moxielogic.com>
43322
43323         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
43324         (extendqisi2, extendhisi2): Define.
43325         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
43326         (WCHAR_TYPE): Change to unsigned int.
43327
43328 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43329
43330         PR tree-optimization/60733
43331         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
43332         insertion point for PHI candidates to be the end of the feeding
43333         block for the PHI argument.
43334
43335 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
43336
43337         PR rtl-optimization/60650
43338         * lra-constraints.c (process_alt_operands): Decrease reject for
43339         earlyclobber matching.
43340
43341 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43342
43343         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
43344
43345 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43346
43347         * config/spu/spu.c (pad_bb): Do not crash when the last
43348         insn is CODE_FOR_blockage.
43349
43350 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43351
43352         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
43353         lies outside the target mode.
43354
43355 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
43356
43357         PR target/60735
43358         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
43359         software floating point or no floating point registers, do not
43360         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
43361         in GPRs that occurs after we tested for GPRs that would never be
43362         true.
43363
43364         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
43365         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
43366         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
43367         specifically allow DDmode, since that does not use the SPE SIMD
43368         instructions.
43369
43370 2014-04-02  Richard Biener  <rguenther@suse.de>
43371
43372         PR middle-end/60729
43373         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
43374         MODE_INTs.  Properly use negv_optab.
43375         (expand_abs): Likewise.
43376
43377 2014-04-02  Richard Biener  <rguenther@suse.de>
43378
43379         PR bootstrap/60719
43380         * Makefile.in (install-driver): Guard extra installs with special
43381         names properly.
43382
43383 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
43384
43385         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43386         Document vec_vgbbd.
43387
43388 2014-04-01  Richard Henderson  <rth@redhat.com>
43389
43390         PR target/60704
43391         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
43392         alternative enabled before register allocation.
43393
43394 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
43395
43396         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
43397         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
43398         typo.
43399         (nios2_large_got_address): Remove unneeded 'sym' parameter.
43400         (nios2_got_address): Update nios2_large_got_address call site.
43401         (nios2_delegitimize_address): New function.
43402         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
43403         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
43404         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
43405
43406 2014-04-01  Martin Husemann  <martin@duskware.de>
43407
43408         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
43409         for -mabi=32.
43410
43411 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
43412
43413         PR rtl-optimization/60604
43414         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
43415         check from register_operand.
43416         (register_operand): Redefine in terms of general_operand.
43417         (nonmemory_operand): Use register_operand for the non-constant cases.
43418
43419 2014-04-01  Richard Biener  <rguenther@suse.de>
43420
43421         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
43422
43423 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
43424
43425         * doc/invoke.texi (mapp-regs): Clarify.
43426
43427 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
43428
43429         * config/i386/avx512fintrin.h (__v32hi): Define type.
43430         (__v64qi): Likewise.
43431         (_mm512_set1_epi8): Define.
43432         (_mm512_set1_epi16): Define.
43433         (_mm512_set4_epi32): Define.
43434         (_mm512_set4_epi64): Define.
43435         (_mm512_set4_pd): Define.
43436         (_mm512_set4_ps): Define.
43437         (_mm512_setr4_epi64): Define.
43438         (_mm512_setr4_epi32): Define.
43439         (_mm512_setr4_pd): Define.
43440         (_mm512_setr4_ps): Define.
43441         (_mm512_setzero_epi32): Define.
43442
43443 2014-03-31  Martin Jambor  <mjambor@suse.cz>
43444
43445         PR middle-end/60647
43446         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
43447         callsite_arguments_match_p.  Updated all callers.  Also check types of
43448         corresponding formal parameters and actual arguments.
43449         (not_all_callers_have_enough_arguments_p) Renamed to
43450         some_callers_have_mismatched_arguments_p.
43451
43452 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
43453
43454         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
43455
43456 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
43457
43458         PR target/60034
43459         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
43460         section anchor.
43461
43462 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
43463
43464         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
43465         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
43466         Split out
43467         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
43468         Use FMAMODE_NOVF512 mode iterator.
43469         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
43470         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
43471         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
43472         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
43473         Split out
43474         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
43475         Use VF_128_256 mode iterator.
43476         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
43477         Ditto.
43478
43479 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
43480
43481         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
43482         static chain if needed.
43483
43484 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
43485
43486         PR target/60697
43487         * lra-constraints.c (index_part_to_reg): New.
43488         (process_address): Use it.
43489
43490 2014-03-27  Jeff Law  <law@redhat.com>
43491             Jakub Jelinek  <jakub@redhat.com>
43492
43493         PR target/60648
43494         * expr.c (do_tablejump): Use simplify_gen_binary rather than
43495         gen_rtx_{PLUS,MULT} to build up the address expression.
43496
43497         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
43498         creating non-canonical RTL.
43499
43500 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
43501
43502         PR ipa/60243
43503         * ipa-inline.c (want_inline_small_function_p): Short circuit large
43504         functions; reorganize to make cheap checks first.
43505         (inline_small_functions): Do not estimate growth when dumping;
43506         it is expensive.
43507         * ipa-inline.h (inline_summary): Add min_size.
43508         (growth_likely_positive): New function.
43509         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
43510         (set_cond_stmt_execution_predicate): Cleanup.
43511         (estimate_edge_size_and_time): Compute min_size.
43512         (estimate_calls_size_and_time): Likewise.
43513         (estimate_node_size_and_time): Likewise.
43514         (inline_update_overall_summary): Update min_size.
43515         (do_estimate_edge_time): Likewise.
43516         (do_estimate_edge_size): Update.
43517         (do_estimate_edge_hints): Update.
43518         (growth_likely_positive): New function.
43519
43520 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
43521
43522         PR target/60693
43523         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
43524         also if addr has VOIDmode.
43525
43526 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43527
43528         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
43529         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
43530         Declare extern.
43531         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
43532         instructions as well as AdvancedSIMD loads.
43533
43534 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43535
43536         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
43537         Use crypto_aese type.
43538         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
43539         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
43540         crypto_aese, crypto_aesmc.  Move to types.md.
43541         * config/arm/types.md (crypto_aes): Split into crypto_aese,
43542         crypto_aesmc.
43543         * config/arm/iterators.md (crypto_type): Likewise.
43544
43545 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
43546
43547         * cgraph.c: Include expr.h and tree-dfa.h.
43548         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
43549         remove LHS.
43550
43551 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
43552
43553         PR target/60675
43554         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
43555         regs from checking multi-reg pseudos.
43556
43557 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43558
43559         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
43560
43561 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43562
43563         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
43564         if it would clobber the stack pointer, even temporarily.
43565
43566 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
43567
43568         * mode-switching.c: Make small adjustments to the top comment.
43569
43570 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
43571
43572         * config/rs6000/constraints.md (wD constraint): New constraint to
43573         match the constant integer to get the top DImode/DFmode out of a
43574         vector in a VSX register.
43575
43576         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
43577         match the constant integer to get the top DImode/DFmode out of a
43578         vector in a VSX register.
43579
43580         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
43581         for ISA 2.07.
43582
43583         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
43584         vbpermq builtins.
43585
43586         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
43587         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
43588
43589         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
43590         Optimize vec_extract of 64-bit values, where the value being
43591         extracted is in the top word, where we can use scalar
43592         instructions.  Add direct move and store support.  Combine the big
43593         endian/little endian vector select load support into a single insn.
43594         (vsx_extract_<mode>_internal1): Likewise.
43595         (vsx_extract_<mode>_internal2): Likewise.
43596         (vsx_extract_<mode>_load): Likewise.
43597         (vsx_extract_<mode>_store): Likewise.
43598         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
43599         combined into vsx_extract_<mode>_load.
43600         (vsx_extract_<mode>_one_le): Likewise.
43601
43602         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
43603         define the top 64-bit vector element.
43604
43605         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
43606         constraint.
43607
43608         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43609         Document vec_vbpermq builtin.
43610
43611         PR target/60672
43612         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
43613         enable use of xxsldwi and xxpermdi builtin functions.
43614         (vec_xxpermdi): Likewise.
43615
43616         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43617         Document use of vec_xxsldwi and vec_xxpermdi builtins.
43618
43619 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
43620
43621         PR rtl-optimization/60650
43622         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
43623         first_p.  Use it.
43624         (find_spills_for): New.
43625         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
43626         Spill all pseudos on the second iteration.
43627
43628 2014-03-27  Marek Polacek  <polacek@redhat.com>
43629
43630         PR c/50347
43631         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
43632         types.
43633
43634 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43635
43636         * config/s390/s390.c (s390_can_use_return_insn): Check for
43637         call-saved FPRs on 31 bit.
43638
43639 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
43640
43641         PR middle-end/60682
43642         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
43643         if they need regimplification, just drop them instead of
43644         calling gimple_regimplify_operands on them.
43645
43646 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
43647
43648         PR target/60580
43649         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
43650         (aarch64_frame_pointer_required): Adjust logic.
43651         (aarch64_can_eliminate): Adjust logic.
43652         (aarch64_override_options_after_change): Adjust logic.
43653
43654 2014-03-27  Dehao Chen  <dehao@google.com>
43655
43656         * ipa-inline.c (early_inliner): Update node's inline info.
43657
43658 2014-03-26  Dehao Chen  <dehao@google.com>
43659
43660         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
43661         compiler inserted conditional jumps for NAN float check.
43662
43663 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43664
43665         * ubsan.h (ubsan_create_data): Change second argument's type
43666         to const location_t *.
43667         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
43668         _("<unknown>").
43669         (ubsan_create_data): Change second argument to const location_t *PLOC.
43670         Create Loc field whenever PLOC is non-NULL.
43671         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
43672         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
43673         callers.
43674
43675         PR other/59545
43676         * real.c (real_to_integer2): Change type of low to UHWI.
43677
43678 2014-03-26  Tobias Burnus  <burnus@net-b.de>
43679
43680         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
43681         (CILK_SELF_SPECS): New define.
43682         (driver_self_specs): Use it.
43683
43684 2014-03-26  Richard Biener  <rguenther@suse.de>
43685
43686         * tree-pretty-print.c (percent_K_format): Implement special
43687         case for LTO and its stripped down BLOCK tree.
43688
43689 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43690
43691         PR sanitizer/60636
43692         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
43693
43694         * tree-vrp.c (simplify_internal_call_using_ranges): If only
43695         one range is range_int_cst_p, but not both, at least optimize
43696         addition/subtraction of 0 and multiplication by 0 or 1.
43697         * gimple-fold.c (gimple_fold_call): Fold
43698         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
43699         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
43700         INTEGER_CSTs, try to fold at least x * 0 and y - y.
43701
43702 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
43703
43704         PR rtl-optimization/60452
43705         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
43706         <case REG>: Return 1 for invalid offsets from the frame pointer.
43707
43708 2014-03-26  Marek Polacek  <polacek@redhat.com>
43709
43710         PR c/37428
43711         * doc/extend.texi (C Extensions): Mention variable-length arrays in
43712         a structure/union.
43713
43714 2014-03-26  Marek Polacek  <polacek@redhat.com>
43715
43716         PR c/39525
43717         * doc/extend.texi (Designated Inits): Describe what happens to omitted
43718         field members.
43719
43720 2014-03-26  Marek Polacek  <polacek@redhat.com>
43721
43722         PR other/59545
43723         * ira-color.c (update_conflict_hard_regno_costs): Perform the
43724         multiplication in unsigned type.
43725
43726 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43727
43728         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
43729
43730 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43731
43732         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
43733
43734 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43735
43736         PR ipa/60315
43737         * cif-code.def (UNREACHABLE) New code.
43738         * ipa-inline.c (inline_small_functions): Skip edges to
43739         __builtlin_unreachable.
43740         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
43741         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
43742         predicate to __bulitin_unreachable.
43743         (set_cond_stmt_execution_predicate): Fix issue when
43744         invert_tree_comparison returns ERROR_MARK.
43745         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
43746         propagate to inline clones.
43747         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
43748         to unreachable.
43749         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
43750         * cgraphclones.c (cgraph_clone_node): If call destination is already
43751         ureachable, do not redirect it back.
43752         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
43753         unreachable.
43754
43755 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43756
43757         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
43758         Do not modify inline clones.
43759
43760 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43761
43762         * config/i386/i386.md (general_sext_operand): New mode attr.
43763         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
43764         don't generate (sign_extend (const_int)).
43765         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
43766         operands[2].  Use We constraint instead of <i> and
43767         <general_sext_operand> predicate instead of <general_operand>.
43768         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
43769         * config/i386/constraints.md (We): New constraint.
43770         * config/i386/predicates.md (x86_64_sext_operand,
43771         sext_operand): New predicates.
43772
43773 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43774
43775         PR ipa/60600
43776         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
43777         inconsistent devirtualizations to __builtin_unreachable.
43778
43779 2014-03-25  Marek Polacek  <polacek@redhat.com>
43780
43781         PR c/35449
43782         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
43783
43784 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
43785
43786         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
43787         order of elements for big-endian.
43788
43789 2014-03-25  Richard Biener  <rguenther@suse.de>
43790
43791         PR middle-end/60635
43792         * gimplify-me.c (gimple_regimplify_operands): Update the
43793         re-gimplifed stmt.
43794
43795 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43796
43797         PR ipa/59176
43798         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
43799         (lto_output_varpool_node): Likewise.
43800         (input_overwrite_node): Likewise.
43801         (input_varpool_node): Likewise.
43802
43803 2014-03-25  Richard Biener  <rguenther@suse.de>
43804
43805         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
43806         (run_gcc): Likewise.
43807
43808 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43809
43810         * combine.c (simplify_compare_const): Add MODE argument.
43811         Handle mode_width 0 as very large mode_width.
43812         (try_combine, simplify_comparison): Adjust callers.
43813
43814         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
43815         type to avoid signed integer overflow.
43816         * explow.c (plus_constant): Likewise.
43817
43818 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
43819
43820         * doc/generic.texi: Correct typos.
43821
43822 2014-03-24  Tobias Burnus  <burnus@net-b.de>
43823
43824         * doc/invoke.texi (-flto): Expand section about
43825         using static libraries with LTO.
43826
43827 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43828
43829         PR rtl-optimization/60501
43830         * optabs.def (addptr3_optab): New optab.
43831         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43832         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43833         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43834
43835         * lra.c (emit_add3_insn): Use the addptr pattern if available.
43836
43837         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43838
43839 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
43840
43841         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43842         _mm512_set1_pd.
43843
43844         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43845         (_mm256_undefined_ps): Define.
43846         (_mm256_undefined_pd): Define.
43847         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43848         (_mm_undefined_pd): Define.
43849         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43850         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43851         (_mm512_undefined_ps): Define.
43852         (_mm512_undefined_pd): Define.
43853         Use _mm*_undefined_*.
43854         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43855
43856 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
43857
43858         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43859         (lshr_simd): DI mode added.
43860         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43861         (aarch64_ushr_simddi): Likewise.
43862         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43863         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43864         (vshrd_n_u64): Likewise.
43865
43866 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43867
43868         * Makefile.in (s-macro_list): Depend on cc1.
43869
43870 2014-03-23  Teresa Johnson  <tejohnson@google.com>
43871
43872         * ipa-utils.c (ipa_print_order): Use specified dump file.
43873
43874 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
43875
43876         PR rtl-optimization/60601
43877         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43878
43879         * gcc.c (eval_spec_function): Initialize save_growing_value.
43880
43881 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
43882
43883         PR sanitizer/60613
43884         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43885         code == MINUS_EXPR, never swap op0 with op1.
43886
43887         * toplev.c (init_local_tick): Avoid signed integer multiplication
43888         overflow.
43889         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43890         shift by first operand's bitsize.
43891
43892 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
43893
43894         PR target/60610
43895         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43896         redefine to 1 or 0.
43897         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43898         TARGET_ISA_64BIT_P(x).
43899
43900 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43901
43902         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43903         pattern for vector nor instead of subtract from splat(-1).
43904         (altivec_expand_vec_perm_const_le): Likewise.
43905
43906 2014-03-21  Richard Henderson  <rth@twiddle.net>
43907
43908         PR target/60598
43909         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43910         related insns after epilogue_completed.
43911
43912 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43913
43914         PR ipa/59176
43915         * cgraph.h (symtab_node): New flag body_removed.
43916         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43917         when removing bodies.
43918         * symtab.c (dump_symtab_base): Dump body_removed flag.
43919         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43920         had their bodies removed.
43921
43922 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43923
43924         PR ipa/60419
43925         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43926         in the border.
43927
43928 2014-03-21  Richard Biener  <rguenther@suse.de>
43929
43930         PR tree-optimization/60577
43931         * tree-core.h (struct tree_base): Document nothrow_flag use
43932         in DECL_NONALIASED.
43933         * tree.h (DECL_NONALIASED): New.
43934         (may_be_aliased): Adjust.
43935         * coverage.c (build_var): Set DECL_NONALIASED.
43936
43937 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43938
43939         * expr.c (expand_expr_real_1): Remove outdated comment.
43940
43941 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
43942
43943         PR middle-end/60597
43944         * ira.c (adjust_cleared_regs): Call copy_rtx on
43945         *reg_equiv[REGNO (loc)].src_p before passing it to
43946         simplify_replace_fn_rtx.
43947
43948         PR target/60568
43949         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43950         into CONST, put pic register as first operand of PLUS.  Use
43951         gen_const_mem for both 32-bit and 64-bit PIC got loads.
43952
43953 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43954
43955         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43956
43957 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43958
43959         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43960         around for store forwarding issue in the FPU on the UT699.
43961         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43962         loads and operations if -mfix-ut699 is specified.
43963         (divtf3_hq): Tweak attribute.
43964         (sqrttf2_hq): Likewise.
43965
43966 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43967
43968         * calls.c (store_one_arg): Remove incorrect const qualification on the
43969         type of the temporary.
43970         * cfgexpand.c (expand_return): Likewise.
43971         * expr.c (expand_constructor): Likewise.
43972         (expand_expr_real_1): Likewise.
43973
43974 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
43975
43976         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43977         of parts.
43978
43979 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
43980
43981         PR target/60039
43982         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43983
43984 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
43985
43986         * config/arm/aarch-common-protos.h
43987         (alu_cost_table): Fix spelling of "extend".
43988         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43989
43990 2014-03-19  Richard Biener  <rguenther@suse.de>
43991
43992         PR middle-end/60553
43993         * tree-core.h (tree_type_common): Re-order pointer members
43994         to reduce recursion depth during GC walks.
43995
43996 2014-03-19  Marek Polacek  <polacek@redhat.com>
43997
43998         PR sanitizer/60569
43999         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
44000         before accessing it.
44001
44002 2014-03-19  Richard Biener  <rguenther@suse.de>
44003
44004         PR lto/59543
44005         * lto-streamer-in.c (input_function): In WPA stage do not drop
44006         debug stmts.
44007
44008 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
44009
44010         PR tree-optimization/60559
44011         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
44012         with build_zero_cst assignment.
44013
44014 2014-03-18  Kai Tietz  <ktietz@redhat.com>
44015
44016         PR rtl-optimization/56356
44017         * sdbout.c (sdbout_parms): Verify that parms'
44018         incoming argument is valid.
44019         (sdbout_reg_parms): Likewise.
44020
44021 2014-03-18  Richard Henderson  <rth@redhat.com>
44022
44023         PR target/60562
44024         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
44025         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
44026         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
44027
44028 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
44029
44030         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
44031         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
44032         Italicize plugin event names in description.  Explain that
44033         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
44034         Remind that no GCC functions should be called after PLUGIN_FINISH.
44035         Explain what pragmas with expansion are.
44036
44037 2014-03-18  Martin Liska  <mliska@suse.cz>
44038
44039         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
44040         gimple call statement is update.
44041         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
44042         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
44043
44044 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
44045
44046         PR sanitizer/60557
44047         * ubsan.c (ubsan_instrument_unreachable): Call
44048         initialize_sanitizer_builtins.
44049         (ubsan_pass): Likewise.
44050
44051         PR sanitizer/60535
44052         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
44053         varpool_finalize_decl instead of rest_of_decl_compilation.
44054
44055 2014-03-18  Richard Biener  <rguenther@suse.de>
44056
44057         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
44058         by using bitmap_and_compl instead of bitmap_and_compl_into.
44059         (df_rd_transfer_function): Likewise.
44060
44061 2014-03-18  Richard Biener  <rguenther@suse.de>
44062
44063         * doc/lto.texi (fresolution): Fix typo.
44064
44065 2014-03-18  Richard Biener  <rguenther@suse.de>
44066
44067         * doc/invoke.texi (flto): Update for changes in 4.9.
44068
44069 2014-03-18  Richard Biener  <rguenther@suse.de>
44070
44071         * doc/loop.texi: Remove section on the removed lambda framework.
44072         Update loop docs with recent changes in preserving loop structure.
44073
44074 2014-03-18  Richard Biener  <rguenther@suse.de>
44075
44076         * doc/lto.texi (-fresolution): Document.
44077
44078 2014-03-18  Richard Biener  <rguenther@suse.de>
44079
44080         * doc/contrib.texi: Adjust my name.
44081
44082 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
44083
44084         PR ipa/58721
44085         * internal-fn.c: Include diagnostic-core.h.
44086         (expand_BUILTIN_EXPECT): New function.
44087         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
44088         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
44089         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
44090         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
44091         IFN_BUILTIN_EXPECT.
44092         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
44093         Revert 3 argument __builtin_expect code.
44094         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
44095         * gimple-fold.c (gimple_fold_call): Likewise.
44096         * tree.h (fold_builtin_expect): New prototype.
44097         * builtins.c (build_builtin_expect_predicate): Add predictor
44098         argument, if non-NULL, create 3 argument __builtin_expect.
44099         (fold_builtin_expect): No longer static.  Add ARG2 argument,
44100         pass it through to build_builtin_expect_predicate.
44101         (fold_builtin_2): Adjust caller.
44102         (fold_builtin_3): Handle BUILT_IN_EXPECT.
44103         * internal-fn.def (BUILTIN_EXPECT): New.
44104
44105 2014-03-18  Tobias Burnus  <burnus@net-b.de>
44106
44107         PR ipa/58721
44108         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
44109         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
44110         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
44111
44112 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
44113
44114         PR ipa/58721
44115         * predict.c (combine_predictions_for_bb): Fix up formatting.
44116         (expr_expected_value_1, expr_expected_value): Add predictor argument,
44117         fill what it points to if non-NULL.
44118         (tree_predict_by_opcode): Adjust caller, use the predictor.
44119         * predict.def (PRED_COMPARE_AND_SWAP): Add.
44120
44121 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
44122
44123         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
44124         proper constant for the store mode.
44125
44126 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
44127
44128         * symtab.c (change_decl_assembler_name): Fix transparent alias
44129         chain construction.
44130
44131 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
44132
44133         * config/aarch64/aarch64.c: Correct the comments about the
44134         aarch64 stack layout.
44135
44136 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
44137
44138         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
44139         check for GF_OMP_FOR_KIND_FOR.
44140
44141 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
44142
44143         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
44144         ymm and zmm register names.
44145
44146 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
44147
44148         PR target/60516
44149         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
44150         note creation for the 2010-08-31 changes.
44151
44152 2014-03-17  Marek Polacek  <polacek@redhat.com>
44153
44154         PR middle-end/60534
44155         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
44156         as -fno-tree-loop-vectorize.
44157         (expand_omp_simd): Likewise.
44158
44159 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
44160
44161         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
44162         (eligible_for_call_delay): New prototype.
44163         * config/sparc/sparc.c (tls_call_delay): Rename into...
44164         (eligible_for_call_delay): ...this.  Return false if the instruction
44165         cannot be put in the delay slot of a branch.
44166         (eligible_for_restore_insn): Simplify.
44167         (eligible_for_return_delay): Return false if the instruction cannot be
44168         put in the delay slot of a branch and simplify.
44169         (eligible_for_sibcall_delay): Return false if the instruction cannot be
44170         put in the delay slot of a branch.
44171         * config/sparc/sparc.md (fix_ut699): New attribute.
44172         (tls_call_delay): Delete.
44173         (in_call_delay): Reimplement.
44174         (eligible_for_sibcall_delay): Rename into...
44175         (in_sibcall_delay): ...this.
44176         (eligible_for_return_delay): Rename into...
44177         (in_return_delay): ...this.
44178         (in_branch_delay): Reimplement.
44179         (in_uncond_branch_delay): Delete.
44180         (in_annul_branch_delay): Delete.
44181
44182 2014-03-14  Richard Henderson  <rth@redhat.com>
44183
44184         PR target/60525
44185         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
44186         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
44187         (*floathi<X87MODEF>2_i387_with_temp): Remove.
44188         (floathi splitters): Remove.
44189         (float<SWI48x>xf2): New pattern.
44190         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
44191         code that tried to handle DImode for 32-bit, but which was excluded
44192         by the pattern's condition.  Drop allocation of stack temporary.
44193         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
44194         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
44195         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
44196         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
44197         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
44198         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
44199         (*float<SWI48><MODEF>2_sse_interunit): Remove.
44200         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
44201         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
44202         (*float<SWI48x><X87MODEF>2_i387): Remove.
44203         (all float _with_temp splitters): Remove.
44204         (*float<SWI48x><MODEF>2_i387): New pattern.
44205         (*float<SWI48><MODEF>2_sse): New pattern.
44206         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
44207         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
44208
44209 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
44210             Marek Polacek  <polacek@redhat.com>
44211
44212         PR middle-end/60484
44213         * common.opt (dump_base_name_prefixed): New Variable.
44214         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
44215         if x_dump_base_name_prefixed is already set, set it at the end.
44216
44217 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
44218
44219         PR rtl-optimization/60508
44220         * lra-constraints.c (get_reload_reg): Add new parameter
44221         in_subreg_p.
44222         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
44223         Pass the new parameter values.
44224
44225 2014-03-14  Richard Biener  <rguenther@suse.de>
44226
44227         * common.opt: Revert unintented changes from r205065.
44228         * opts.c: Likewise.
44229
44230 2014-03-14  Richard Biener  <rguenther@suse.de>
44231
44232         PR middle-end/60518
44233         * cfghooks.c (split_block): Properly adjust all loops the
44234         block was a latch of.
44235
44236 2014-03-14  Martin Jambor  <mjambor@suse.cz>
44237
44238         PR lto/60461
44239         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
44240         and simplify it.
44241
44242 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
44243
44244         PR target/59396
44245         * config/avr/avr.c (avr_set_current_function): Pass function name
44246         through default_strip_name_encoding before sanity checking instead
44247         of skipping the first char of the assembler name.
44248
44249 2014-03-13  Richard Henderson  <rth@redhat.com>
44250
44251         PR debug/60438
44252         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
44253         (ix86_force_to_memory, ix86_free_from_memory): Remove.
44254         * config/i386/i386-protos.h: Likewise.
44255         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
44256         in the expander instead of a splitter.
44257         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
44258         any possibility of requiring a memory.
44259         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
44260         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
44261         (fp branch splitters): Update for ix86_split_fp_branch.
44262         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
44263         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
44264         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
44265         (*fop_<MODEF>_2_i387): Remove f/r alternative.
44266         (*fop_<MODEF>_3_i387): Likewise.
44267         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
44268         (splitters for the fop_* register patterns): Remove.
44269         (fscalexf4_i387): Rename from *fscalexf4_i387.
44270         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
44271
44272 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
44273
44274         PR tree-optimization/59779
44275         * tree-dfa.c (get_ref_base_and_extent): Use double_int
44276         type for bitsize and maxsize instead of HOST_WIDE_INT.
44277
44278 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
44279
44280         PR rtl-optimization/57320
44281         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
44282         the CFG after thread_prologue_and_epilogue_insns.
44283
44284 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
44285
44286         PR rtl-optimization/57189
44287         * lra-constraints.c (process_alt_operands): Disfavor spilling
44288         vector pseudos.
44289
44290 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
44291
44292         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
44293
44294 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
44295
44296         PR tree-optimization/59025
44297         PR middle-end/60418
44298         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
44299         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
44300
44301 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
44302
44303         PR target/60486
44304         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
44305         calls of avr_out_plus_1.
44306
44307 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
44308
44309         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
44310         BB's single pred and update the father loop's latch info later.
44311
44312 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
44313
44314         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
44315         (VEC_M): Likewise.
44316         (VEC_N): Likewise.
44317         (VEC_R): Likewise.
44318         (VEC_base): Likewise.
44319         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
44320         registers, we need to swap double words in little endian mode.
44321
44322         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
44323         to be a container mode for 128-bit integer operations added in ISA
44324         2.07.  Unlike TImode and PTImode, the preferred register set is
44325         the Altivec/VMX registers for the 128-bit operations.
44326
44327         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
44328         declarations.
44329         (rs6000_split_128bit_ok_p): Likewise.
44330
44331         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
44332         macros for creating ISA 2.07 normal and overloaded builtin
44333         functions with 3 arguments.
44334         (BU_P8V_OVERLOAD_3): Likewise.
44335         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
44336         for use as overloaded functions.
44337         (VPERM_1TI_UNS): Likewise.
44338         (VSEL_1TI): Likewise.
44339         (VSEL_1TI_UNS): Likewise.
44340         (ST_INTERNAL_1ti): Likewise.
44341         (LD_INTERNAL_1ti): Likewise.
44342         (XXSEL_1TI): Likewise.
44343         (XXSEL_1TI_UNS): Likewise.
44344         (VPERM_1TI): Likewise.
44345         (VPERM_1TI_UNS): Likewise.
44346         (XXPERMDI_1TI): Likewise.
44347         (SET_1TI): Likewise.
44348         (LXVD2X_V1TI): Likewise.
44349         (STXVD2X_V1TI): Likewise.
44350         (VEC_INIT_V1TI): Likewise.
44351         (VEC_SET_V1TI): Likewise.
44352         (VEC_EXT_V1TI): Likewise.
44353         (EQV_V1TI): Likewise.
44354         (NAND_V1TI): Likewise.
44355         (ORC_V1TI): Likewise.
44356         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
44357         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
44358         overloaded builtin.
44359         (VADDUQM): Likewise.
44360         (VSUBCUQ): Likewise.
44361         (VADDEUQM): Likewise.
44362         (VADDECUQ): Likewise.
44363         (VSUBEUQM): Likewise.
44364         (VSUBECUQ): Likewise.
44365
44366         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
44367         __int128_t and __uint128_t types.
44368         (__uint128_type): Likewise.
44369         (altivec_categorize_keyword): Add support for vector __int128_t,
44370         vector __uint128_t, vector __int128, and vector unsigned __int128
44371         as a container type for TImode operations that need to be done in
44372         VSX/Altivec registers.
44373         (rs6000_macro_to_expand): Likewise.
44374         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
44375         to support 128-bit integer instructions vaddcuq, vadduqm,
44376         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
44377         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
44378
44379         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
44380         for V1TImode, and set up preferences to use VSX/Altivec registers.
44381         Setup VSX reload handlers.
44382         (rs6000_debug_reg_global): Likewise.
44383         (rs6000_init_hard_regno_mode_ok): Likewise.
44384         (rs6000_preferred_simd_mode): Likewise.
44385         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
44386         (easy_altivec_constant): Likewise.
44387         (output_vec_const_move): Likewise.
44388         (rs6000_expand_vector_set): Convert V1TImode set and extract to
44389         simple move.
44390         (rs6000_expand_vector_extract): Likewise.
44391         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
44392         addressing.
44393         (rs6000_const_vec): Add support for V1TImode.
44394         (rs6000_emit_le_vsx_load): Swap double words when loading or
44395         storing TImode/V1TImode.
44396         (rs6000_emit_le_vsx_store): Likewise.
44397         (rs6000_emit_le_vsx_move): Likewise.
44398         (rs6000_emit_move): Add support for V1TImode.
44399         (altivec_expand_ld_builtin): Likewise.
44400         (altivec_expand_st_builtin): Likewise.
44401         (altivec_expand_vec_init_builtin): Likewise.
44402         (altivec_expand_builtin): Likewise.
44403         (rs6000_init_builtins): Add support for V1TImode type.  Add
44404         support for ISA 2.07 128-bit integer builtins.  Define type names
44405         for the VSX/Altivec vector types.
44406         (altivec_init_builtins): Add support for overloaded vector
44407         functions with V1TImode type.
44408         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
44409         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
44410         external function.
44411         (rs6000_split_128bit_ok_p): Likewise.
44412         (rs6000_handle_altivec_attribute): Create V1TImode from vector
44413         __int128_t and vector __uint128_t.
44414
44415         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
44416         and mode attributes.
44417         (VSX_M): Likewise.
44418         (VSX_M2): Likewise.
44419         (VSm): Likewise.
44420         (VSs): Likewise.
44421         (VSr): Likewise.
44422         (VSv): Likewise.
44423         (VS_scalar): Likewise.
44424         (VS_double): Likewise.
44425         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
44426
44427         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
44428         we support the ISA 2.07 128-bit integer arithmetic instructions.
44429         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
44430         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
44431         and TImode types for use with the builtin functions.
44432         (V1TI_type_node): Likewise.
44433         (unsigned_V1TI_type_node): Likewise.
44434         (intTI_type_internal_node): Likewise.
44435         (uintTI_type_internal_node): Likewise.
44436
44437         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
44438         128-bit builtin functions.
44439         (UNSPEC_VADDEUQM): Likewise.
44440         (UNSPEC_VADDECUQ): Likewise.
44441         (UNSPEC_VSUBCUQ): Likewise.
44442         (UNSPEC_VSUBEUQM): Likewise.
44443         (UNSPEC_VSUBECUQ): Likewise.
44444         (VM): Add V1TImode to vector mode iterators.
44445         (VM2): Likewise.
44446         (VI_unit): Likewise.
44447         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
44448         (altivec_vaddcuq): Likewise.
44449         (altivec_vsubuqm): Likewise.
44450         (altivec_vsubcuq): Likewise.
44451         (altivec_vaddeuqm): Likewise.
44452         (altivec_vaddecuq): Likewise.
44453         (altivec_vsubeuqm): Likewise.
44454         (altivec_vsubecuq): Likewise.
44455
44456         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
44457         mode iterators.
44458         (BOOL_128): Likewise.
44459         (BOOL_REGS_OUTPUT): Likewise.
44460         (BOOL_REGS_OP1): Likewise.
44461         (BOOL_REGS_OP2): Likewise.
44462         (BOOL_REGS_UNARY): Likewise.
44463         (BOOL_REGS_AND_CR0): Likewise.
44464
44465         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
44466         128-bit integer builtin support.
44467         (vec_vadduqm): Likewise.
44468         (vec_vaddecuq): Likewise.
44469         (vec_vaddeuqm): Likewise.
44470         (vec_vsubecuq): Likewise.
44471         (vec_vsubeuqm): Likewise.
44472         (vec_vsubcuq): Likewise.
44473         (vec_vsubuqm): Likewise.
44474
44475         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
44476         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
44477         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
44478         128-bit integer add/subtract to ISA 2.07.
44479
44480 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
44481
44482         * config/arc/arc.c (arc_predicate_delay_insns):
44483         Fix third argument passed to conditionalize_nonjump.
44484
44485 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
44486
44487         * config/aarch64/aarch64-builtins.c
44488         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
44489         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
44490         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
44491         instead of __builtin_lfloor.
44492         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
44493
44494 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
44495
44496         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
44497         (tree_ssa_ifcombine_bb_1): New function.
44498         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
44499         is an empty forwarder block to then_bb or vice versa and then_bb
44500         and else_bb are effectively swapped.
44501
44502 2014-03-12  Christian Bruel  <christian.bruel@st.com>
44503
44504         PR target/60264
44505         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
44506         REG_CFA_DEF_CFA note.
44507         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
44508         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
44509
44510 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
44511
44512         PR tree-optimization/60454
44513         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
44514
44515 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44516
44517         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
44518         Do not define target_cpu_default2 to generic.
44519         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
44520         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
44521         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
44522
44523 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
44524             Marc Glisse  <marc.glisse@inria.fr>
44525
44526         PR tree-optimization/60502
44527         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
44528         instead of build_low_bits_mask.
44529
44530 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
44531
44532         PR middle-end/60482
44533         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
44534         if there are multiple uses, but op doesn't live on E edge.
44535         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
44536         clobber stmts before __builtin_unreachable.
44537
44538 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
44539
44540         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
44541         hard_frame_pointer_rtx.
44542         * cse.c (cse_insn): Remove volatile check.
44543         * cselib.c (cselib_process_insn): Likewise.
44544         * dse.c (scan_insn): Likewise.
44545
44546 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
44547
44548         * config/arc/arc.c (conditionalize_nonjump): New function,
44549         broken out of ...
44550         (arc_ifcvt): ... this.
44551         (arc_predicate_delay_insns): Use it.
44552
44553 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
44554
44555         * config/arc/predicates.md (extend_operand): During/after reload,
44556         allow const_int_operand.
44557         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
44558         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
44559         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
44560         to "i".
44561         (umulsi3_highpart_i): Likewise.
44562
44563 2014-03-11  Richard Biener  <rguenther@suse.de>
44564
44565         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
44566         Add asserts to guard possible wrong-code bugs.
44567
44568 2014-03-11  Richard Biener  <rguenther@suse.de>
44569
44570         PR tree-optimization/60429
44571         PR tree-optimization/60485
44572         * tree-ssa-structalias.c (set_union_with_increment): Properly
44573         take into account all fields that overlap the shifted vars.
44574         (do_sd_constraint): Likewise.
44575         (do_ds_constraint): Likewise.
44576         (get_constraint_for_ptr_offset): Likewise.
44577
44578 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
44579
44580         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
44581         (nios2_compute_frame_layout):
44582         Add calculation of cfun->machine->fp_save_offset.
44583         (nios2_expand_prologue): Correct setting of frame pointer register
44584         in prologue.
44585         (nios2_expand_epilogue): Update recovery of stack pointer from
44586         frame pointer accordingly.
44587         (nios2_initial_elimination_offset): Update calculation of offset
44588         for eliminating to HARD_FRAME_POINTER_REGNUM.
44589
44590 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
44591
44592         PR ipa/60457
44593         * ipa.c (symtab_remove_unreachable_nodes): Don't call
44594         cgraph_get_create_node on VAR_DECLs.
44595
44596 2014-03-10  Richard Biener  <rguenther@suse.de>
44597
44598         PR middle-end/60474
44599         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
44600
44601 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
44602
44603         * config/vms/vms.opt (vms_float_format): New variable.
44604
44605 2014-03-08  Tobias Burnus  <burnus@net-b.de>
44606
44607         * doc/invoke.texi (-fcilkplus): Update implementation status.
44608
44609 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
44610             Richard Biener  <rguenther@suse.de>
44611
44612         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
44613         consistently accross all TUs.
44614         (run_gcc): Enable -fshort-double automatically at link at link-time
44615         and disallow override.
44616
44617 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
44618
44619         PR target/58271
44620         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
44621         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
44622         if they can't be used.
44623
44624 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44625
44626         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
44627         for Solaris 11/x86 ld.
44628         * configure: Regenerate.
44629
44630 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44631
44632         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
44633         (LIB_TLS_SPEC): Save as ld_tls_libs.
44634         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
44635         (HAVE_AS_IX86_TLSLDM): New test.
44636         * configure, config.in: Regenerate.
44637         * config/i386/i386.c (legitimize_tls_address): Fall back to
44638         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
44639         cannot support TLS_MODEL_LOCAL_DYNAMIC.
44640         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
44641         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
44642
44643 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
44644
44645         * common.opt (fira-loop-pressure): Mark as optimization.
44646
44647 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
44648
44649         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
44650         an OpenMP mappable type.
44651
44652 2014-03-06  Matthias Klose  <doko@ubuntu.com>
44653
44654         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
44655         MULTILIB_OSDIRNAMES is not defined.
44656
44657 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
44658             Meador Inge  <meadori@codesourcery.com>
44659
44660         PR target/58595
44661         * config/arm/arm.c (arm_tls_symbol_p): Remove.
44662         (arm_legitimize_address): Call legitimize_tls_address for any
44663         arm_tls_referenced_p expression, handle constant addend.  Call it
44664         before testing for !TARGET_ARM.
44665         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
44666
44667 2014-03-06  Richard Biener  <rguenther@suse.de>
44668
44669         PR middle-end/60445
44670         PR lto/60424
44671         PR lto/60427
44672         Revert
44673         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44674
44675         * tree-streamer.c (record_common_node): Assert we don't record
44676         nodes with type double.
44677         (preload_common_node): Skip type double, complex double and double
44678         pointer since it is now frontend dependent due to fshort-double option.
44679
44680 2014-03-06  Richard Biener  <rguenther@suse.de>
44681
44682         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
44683         or -fno-lto is specified and the linker has full plugin support.
44684         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
44685         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
44686         * lto-wrapper.c (merge_and_complain): Merge compile-time
44687         optimization levels.
44688         (run_gcc): And pass it through to the link options.
44689
44690 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
44691
44692         PR debug/60381
44693         Revert:
44694         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44695         PR debug/59992
44696         * cselib.c (remove_useless_values): Skip to avoid quadratic
44697         behavior if the condition moved from...
44698         (cselib_process_insn): ... here holds.
44699
44700 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44701
44702         PR plugins/59335
44703         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
44704         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
44705
44706         PR plugins/59335
44707         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
44708         (TM_H): Add x86-tune.def.
44709
44710 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44711
44712         * config/aarch64/aarch64.c (generic_tunings):
44713         Use cortexa57_extra_costs.
44714
44715 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44716
44717         PR lto/60404
44718         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
44719         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
44720         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
44721         cost for in_lto_p.
44722
44723 2014-03-04  Heiher  <r@hev.cc>
44724
44725         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
44726         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
44727
44728 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
44729
44730         * config/i386/predicates.md (const2356_operand): Change to ...
44731         (const2367_operand): ... this.
44732         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
44733         const2367_operand.
44734         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44735         (*avx512pf_scatterpf<mode>sf): Ditto.
44736         (avx512pf_scatterpf<mode>df): Ditto.
44737         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44738         (*avx512pf_scatterpf<mode>df): Ditto.
44739         * config/i386/i386.c (ix86_expand_builtin): Update
44740         incorrect hint operand error message.
44741
44742 2014-03-04  Richard Biener  <rguenther@suse.de>
44743
44744         * lto-section-in.c (lto_get_section_data): Fix const cast.
44745
44746 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44747
44748         * tree-streamer.c (record_common_node): Assert we don't record
44749         nodes with type double.
44750         (preload_common_node): Skip type double, complex double and double
44751         pointer since it is now frontend dependent due to fshort-double option.
44752
44753 2014-03-04  Richard Biener  <rguenther@suse.de>
44754
44755         PR lto/60405
44756         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
44757         (lto_input_toplevel_asms): Likewise.
44758         * lto-section-in.c (lto_get_section_data): Instead do it here
44759         for every section.
44760
44761 2014-03-04  Richard Biener  <rguenther@suse.de>
44762
44763         PR tree-optimization/60382
44764         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
44765         dead PHIs a reduction.
44766
44767 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
44768
44769         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
44770         hint value.
44771         (_mm_prefetch): Move out of GCC target("sse") pragma.
44772         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
44773         GCC target("prfchw") pragma.
44774         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
44775         for locality <= 2.
44776         * config/i386/i386.c (ix86_option_override_internal): Enable
44777         -mprfchw with -mprefetchwt1.
44778
44779 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44780
44781         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
44782         Mark as varying.
44783
44784 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44785
44786         * opts.h (CL_PCH_IGNORE): Define.
44787         * targhooks.c (option_affects_pch_p):
44788         Return false for options that have CL_PCH_IGNORE set.
44789         * opt-functions.awk: Process PchIgnore.
44790         * doc/options.texi: Document PchIgnore.
44791
44792         * config/arc/arc.opt (misize): Add PchIgnore property.
44793
44794 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44795
44796         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
44797         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
44798         constraint on constants to permit them being loaded into
44799         GENERAL_REGS or BASE_REGS.
44800
44801 2014-03-03  Nick Clifton  <nickc@redhat.com>
44802
44803         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
44804         anti-cacnonical alternatives.
44805         (negandhi3_real): New pattern.
44806         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
44807
44808 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
44809
44810         * config/avr/avr-mcus.def: Remove atxmega16x1.
44811         * config/avr/avr-tables.opt: Regenerate.
44812         * config/avr/t-multilib: Regenerate.
44813         * doc/avr-mmcu.texi: Regenerate.
44814
44815 2014-03-03  Tobias Grosser  <tobias@grosser.es>
44816             Mircea Namolaru  <mircea.namolaru@inria.fr>
44817
44818         PR tree-optimization/58028
44819         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
44820         scalar dimensions.
44821
44822 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
44823
44824         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
44825         not handled by recognizers.
44826
44827 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
44828
44829         PR middle-end/60175
44830         * function.c (expand_function_end): Don't emit
44831         clobber_return_register sequence if clobber_after is a BARRIER.
44832         * cfgexpand.c (construct_exit_block): Append instructions before
44833         return_label to prev_bb.
44834
44835 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44836
44837         * config/rs6000/constraints.md: Document reserved use of "wc".
44838
44839 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44840
44841         PR ipa/60150
44842         * ipa.c (function_and_variable_visibility): When dissolving comdat
44843         group, also set all symbols to local.
44844
44845 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44846
44847         PR ipa/60306
44848
44849         Revert:
44850         2013-12-14  Jan Hubicka  <jh@suse.cz>
44851         PR middle-end/58477
44852         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44853
44854 2014-03-02  Jon Beniston  <jon@beniston.com>
44855
44856         PR bootstrap/48230
44857         PR bootstrap/50927
44858         PR bootstrap/52466
44859         PR target/46898
44860         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44861         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44862         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44863         (simple_return, *simple_return): New patterns
44864         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44865         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44866
44867 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
44868
44869         * dwarf2out.c (gen_subprogram_die): Tidy.
44870
44871 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
44872
44873         PR target/60071
44874         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44875         (*mov_t_msb_neg_negc): ... this new insn.
44876
44877 2014-02-28  Jason Merrill  <jason@redhat.com>
44878
44879         PR c++/58678
44880         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44881         function.
44882
44883 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
44884
44885         PR c++/60314
44886         * dwarf2out.c (decltype_auto_die): New static.
44887         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44888         (gen_type_die_with_usage): Handle 'decltype(auto)'.
44889         (is_cxx_auto): Likewise.
44890
44891 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
44892
44893         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44894         we are not using general regs only.
44895
44896 2014-02-28  Richard Biener  <rguenther@suse.de>
44897
44898         PR target/60280
44899         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44900         previous fix and only allow to remove trivial pre-headers
44901         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44902         (remove_forwarder_block): Properly update the latch of a loop.
44903
44904 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44905
44906         PR debug/59992
44907         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44908         (cselib_preserved_hash_table): New.
44909         (preserve_constants_and_equivs): Move preserved vals to it.
44910         (cselib_find_slot): Look it up first.
44911         (cselib_init): Initialize it.
44912         (cselib_finish): Release it.
44913         (dump_cselib_table): Dump it.
44914
44915 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44916
44917         PR debug/59992
44918         * cselib.c (remove_useless_values): Skip to avoid quadratic
44919         behavior if the condition moved from...
44920         (cselib_process_insn): ... here holds.
44921
44922 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44923
44924         PR debug/57232
44925         * var-tracking.c (vt_initialize): Apply the same condition to
44926         preserve the CFA base value.
44927
44928 2014-02-28  Joey Ye  <joey.ye@arm.com>
44929
44930         PR target/PR60169
44931         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44932         if reload in progress or completed.
44933
44934 2014-02-28  Tobias Burnus  <burnus@net-b.de>
44935
44936         PR middle-end/60147
44937         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44938         NAMELIST_DECL.
44939
44940 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
44941
44942         * doc/tm.texi.in (Condition Code Status): Update documention for
44943         relative locations of cc0-setter and cc0-user.
44944
44945 2014-02-27  Jeff Law  <law@redhat.com>
44946
44947         PR rtl-optimization/52714
44948         * combine.c (try_combine): When splitting an unrecognized PARALLEL
44949         into two independent simple sets, if I3 is a jump, ensure the
44950         pattern we place into I3 is a (set (pc) ...).
44951
44952 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
44953             Jeff Law  <law@redhat.com>
44954
44955         PR rtl-optimization/49847
44956         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44957         are in different blocks.
44958         * doc/tm.texi (Condition Code Status): Update documention for
44959         relative locations of cc0-setter and cc0-user.
44960
44961 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
44962
44963         PR target/59222
44964         * lra.c (lra_emit_add): Check SUBREG too.
44965
44966 2014-02-27  Andreas Schwab  <schwab@suse.de>
44967
44968         * config/m68k/m68k.c (m68k_option_override): Disable
44969         -flive-range-shrinkage for classic m68k.
44970         (m68k_override_options_after_change): Likewise.
44971
44972 2014-02-27  Marek Polacek  <polacek@redhat.com>
44973
44974         PR middle-end/59223
44975         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44976         -Wmaybe-uninitialized.
44977
44978 2014-02-27  Alan Modra  <amodra@gmail.com>
44979
44980         PR target/57936
44981         * reload1.c (emit_input_reload_insns): When reload_override_in,
44982         set old to rl->in_reg when rl->in_reg is a subreg.
44983
44984 2014-02-26  Richard Biener  <rguenther@suse.de>
44985
44986         PR bootstrap/60343
44987         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44988
44989 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44990
44991         * common/config/i386/predicates.md (const1256_operand): Remove.
44992         (const2356_operand): New.
44993         (const_1_to_2_operand): Remove.
44994         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44995         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44996         (*avx512pf_gatherpf<mode>sf): Ditto.
44997         (avx512pf_gatherpf<mode>df): Ditto.
44998         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44999         (*avx512pf_gatherpf<mode>df): Ditto.
45000         (avx512pf_scatterpf<mode>sf): Ditto.
45001         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45002         (*avx512pf_scatterpf<mode>sf): Ditto.
45003         (avx512pf_scatterpf<mode>df): Ditto.
45004         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45005         (*avx512pf_scatterpf<mode>df): Ditto.
45006         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
45007
45008 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
45009
45010         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
45011         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
45012         (_mm512_mask_testn_epi64_mask): Move to ...
45013         * config/i386/avx512cdintrin.h: Here.
45014         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
45015         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
45016         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
45017         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
45018         TARGET_AVX512F from TARGET_AVX512CD.
45019
45020 2014-02-26  Richard Biener  <rguenther@suse.de>
45021
45022         PR ipa/60327
45023         * ipa.c (walk_polymorphic_call_targets): Properly guard
45024         call to inline_update_overall_summary.
45025
45026 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
45027
45028         PR target/60280
45029         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
45030         and latches only if requested.  Fix latch if it is removed.
45031         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
45032         LOOPS_HAVE_PREHEADERS.
45033
45034 2014-02-25  Andrew Pinski  <apinski@cavium.com>
45035
45036         * builtins.c (expand_builtin_thread_pointer): Create a new target
45037         when the target is NULL.
45038
45039 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
45040
45041         PR rtl-optimization/60317
45042         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
45043         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
45044         * lra-assigns.c: Include params.h.
45045         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
45046         other reload pseudos considerations.
45047
45048 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45049
45050         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
45051         to use canonical form for nor<mode>3.
45052
45053 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45054
45055         PR target/55426
45056         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
45057         conversions.
45058
45059 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
45060
45061         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
45062         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
45063         (ix86_handle_option): Handle OPT_mprefetchwt1.
45064         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
45065         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
45066         PREFETCHWT1 CPUID.
45067         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
45068         OPTION_MASK_ISA_PREFETCHWT1.
45069         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
45070         (PTA_PREFETCHWT1): New.
45071         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
45072         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
45073         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
45074         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
45075         (*prefetch_avx512pf_<mode>_: Change into ...
45076         (*prefetch_prefetchwt1_<mode>: This.
45077         * config/i386/i386.opt (mprefetchwt1): New.
45078         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
45079         (_mm_prefetch): Handle intent to write.
45080         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
45081
45082 2014-02-25  Richard Biener  <rguenther@suse.de>
45083
45084         PR middle-end/60291
45085         * emit-rtl.c (mem_attrs_htab): Remove.
45086         (mem_attrs_htab_hash): Likewise.
45087         (mem_attrs_htab_eq): Likewise.
45088         (set_mem_attrs): Always allocate new mem-attrs when something changed.
45089         (init_emit_once): Do not allocate mem_attrs_htab.
45090
45091 2014-02-25  Richard Biener  <rguenther@suse.de>
45092
45093         PR lto/60319
45094         * lto-opts.c (lto_write_options): Output non-explicit conservative
45095         -fwrapv, -fno-trapv and -fno-strict-overflow.
45096         * lto-wrapper.c (merge_and_complain): Handle merging those options.
45097         (run_gcc): And pass them through.
45098
45099 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
45100
45101         * sel-sched.c (calculate_new_fences): New parameter ptime.
45102         Calculate it as a maximum over all fence cycles.
45103         (sel_sched_region_2): Adjust the call to calculate_new_fences.
45104         Print the final schedule timing when sched_verbose.
45105
45106 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
45107
45108         PR rtl-optimization/60292
45109         * sel-sched.c (fill_vec_av_set): Do not reset target availability
45110         bit fot the fence instruction.
45111
45112 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
45113
45114         * calls.h: Fix typo in comment.
45115
45116 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
45117
45118         * config/pa/pa.c (pa_output_move_double): Don't valididate when
45119         adjusting offsetable addresses.
45120
45121 2014-02-24  Guozhi Wei  <carrot@google.com>
45122
45123         * sparseset.h (sparseset_pop): Fix the wrong index.
45124
45125 2014-02-24  Walter Lee  <walt@tilera.com>
45126
45127         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
45128         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
45129         triplet.
45130         * common/config/tilegx/tilegx-common.c
45131         (TARGET_DEFAULT_TARGET_FLAGS): Define.
45132         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
45133         (LINK_SPEC): Ditto.
45134         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
45135         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
45136         (tilegx_gimplify_va_arg_expr): Handle big endian.
45137         (tilegx_expand_unaligned_load): Ditto.
45138         (tilegx_expand_unaligned_store): Ditto.
45139         (TARGET_RETURN_IN_MSB): New.
45140         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
45141         (TARGET_ENDIAN_DEFAULT): New.
45142         (TARGET_BIG_ENDIAN): Handle big endian.
45143         (BYTES_BIG_ENDIAN): Ditto.
45144         (WORDS_BIG_ENDIAN): Ditto.
45145         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
45146         (ENDIAN_SPEC): New.
45147         (EXTRA_SPECS): New.
45148         * config/tilegx/tilegx.md (extv): Handle big endian.
45149         (extzv): Ditto.
45150         (insn_st<n>): Ditto.
45151         (insn_st<n>_add<bitsuffix>): Ditto.
45152         (insn_stnt<n>): Ditto.
45153         (insn_stnt<n>_add<bitsuffix>):Ditto.
45154         (vec_interleave_highv8qi): Handle big endian.
45155         (vec_interleave_highv8qi_be): New.
45156         (vec_interleave_highv8qi_le): New.
45157         (insn_v1int_h): Handle big endian.
45158         (vec_interleave_lowv8qi): Handle big endian.
45159         (vec_interleave_lowv8qi_be): New.
45160         (vec_interleave_lowv8qi_le): New.
45161         (insn_v1int_l): Handle big endian.
45162         (vec_interleave_highv4hi): Handle big endian.
45163         (vec_interleave_highv4hi_be): New.
45164         (vec_interleave_highv4hi_le): New.
45165         (insn_v2int_h): Handle big endian.
45166         (vec_interleave_lowv4hi): Handle big endian.
45167         (vec_interleave_lowv4hi_be): New.
45168         (vec_interleave_lowv4hi_le): New.
45169         (insn_v2int_l): Handle big endian.
45170         (vec_interleave_highv2si): Handle big endian.
45171         (vec_interleave_highv2si_be): New.
45172         (vec_interleave_highv2si_le): New.
45173         (insn_v4int_h): Handle big endian.
45174         (vec_interleave_lowv2si): Handle big endian.
45175         (vec_interleave_lowv2si_be): New.
45176         (vec_interleave_lowv2si_le): New.
45177         (insn_v4int_l): Handle big endian.
45178         * config/tilegx/tilegx.opt (mbig-endian): New option.
45179         (mlittle-endian): New option.
45180         * doc/install.texi: Document tilegxbe-linux.
45181         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
45182
45183 2014-02-24  Martin Jambor  <mjambor@suse.cz>
45184
45185         PR ipa/60266
45186         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
45187         there are no parameter descriptors.
45188
45189 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
45190
45191         PR rtl-optimization/60268
45192         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
45193         initialization to ...
45194         (sched_rgn_init): ... here.
45195         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
45196
45197 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
45198
45199         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
45200         names.
45201
45202 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
45203
45204         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
45205         definition.
45206
45207 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
45208
45209         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
45210         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
45211
45212 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
45213
45214         * config/microblaze/predicates.md: Add cmp_op predicate.
45215         * config/microblaze/microblaze.md: Add branch_compare instruction
45216         which uses cmp_op predicate and emits cmp insn before branch.
45217         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
45218         to microblaze_expand_conditional_branch and consolidate logic.
45219         (microblaze_expand_conditional_branch): emit branch_compare
45220         insn instead of handling cmp op separate from branch insn.
45221
45222 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45223
45224         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
45225         to permit subregs.
45226
45227 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45228
45229         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
45230         define_insn with define_expand and new define_insn
45231         *altivec_lve<VI_char>x_internal.
45232         (altivec_stve<VI_char>x): Replace define_insn with define_expand
45233         and new define_insn *altivec_stve<VI_char>x_internal.
45234         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
45235         prototype.
45236         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
45237         lve*x built-ins.
45238         (altivec_expand_stvex_be): New function.
45239
45240 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
45241
45242         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
45243         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
45244         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
45245         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
45246
45247 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
45248
45249         PR target/60298
45250         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
45251         instead of emit_move_insn.
45252
45253 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45254
45255         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
45256         vspltw with vsldoi.
45257         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
45258         gen_altivec_vsumsws.
45259
45260 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45261
45262         * config/rs6000/altivec.md (altivec_lvxl): Rename as
45263         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
45264         (altivec_lvxl_<mode>): New define_expand incorporating
45265         -maltivec=be semantics where needed.
45266         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
45267         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
45268         semantics where needed.
45269         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
45270         (altivec_stvx_<mode>): New define_expand incorporating
45271         -maltivec=be semantics where needed.
45272         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
45273         VM2 iterator instead of V4SI.
45274         (altivec_stvxl_<mode>): New define_expand incorporating
45275         -maltivec=be semantics where needed.
45276         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
45277         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
45278         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
45279         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
45280         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
45281         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
45282         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
45283         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
45284         ALTIVEC_BUILTIN_STVXL.
45285         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
45286         (altivec_expand_stvx_be): Likewise.
45287         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
45288         (altivec_expand_lvx_be): Likewise.
45289         (altivec_expand_stvx_be): Likewise.
45290         (altivec_expand_builtin): Add cases for
45291         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
45292         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
45293         (altivec_init_builtins): Add definitions for
45294         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
45295         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
45296
45297 2014-02-21  Catherine Moore  <clm@codesourcery.com>
45298
45299         * doc/invoke.texi (mvirt, mno-virt): Document.
45300         * config/mips/mips.opt (mvirt): New option.
45301         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
45302
45303 2014-02-21  Richard Biener  <rguenther@suse.de>
45304
45305         PR tree-optimization/60276
45306         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
45307         (STMT_VINFO_MIN_NEG_DIST): New macro.
45308         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
45309         STMT_VINFO_MIN_NEG_DIST.
45310         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
45311         made for negative dependence distances still hold.
45312
45313 2014-02-21  Richard Biener  <rguenther@suse.de>
45314
45315         PR middle-end/60291
45316         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
45317         DECL_INITIAL for globals not in the current function context.
45318
45319 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
45320
45321         PR tree-optimization/56490
45322         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
45323         * tree-ssa-uninit.c: Include params.h.
45324         (compute_control_dep_chain): Add num_calls argument, return false
45325         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
45326         num_calls to recursive call.
45327         (find_predicates): Change dep_chain into normal array,
45328         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
45329         variable and adjust compute_control_dep_chain caller.
45330         (find_def_preds): Likewise.
45331
45332 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
45333
45334         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
45335         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
45336
45337 2014-02-21  Nick Clifton  <nickc@redhat.com>
45338
45339         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
45340         (pushhi1): Likewise.
45341         (popqi1): Add mode to pre_dec.
45342         (pophi1): Likewise.
45343
45344 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
45345
45346         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
45347         mode for mask of V8SFmode permutation.
45348
45349 2014-02-20  Richard Henderson  <rth@redhat.com>
45350
45351         PR c++/60272
45352         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
45353         a new pseudo for OLDVAL.
45354
45355 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
45356
45357         PR target/57896
45358         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
45359         gen_reg_rtx if d->testing_p.
45360         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
45361         if d->testing_p and we will certainly return true.
45362         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
45363         if d->testing_p.
45364
45365 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
45366
45367         * emit-rtl.c (gen_reg_rtx): Assert that
45368         crtl->emit.regno_pointer_align_length is non-zero.
45369
45370 2014-02-20  Richard Henderson  <rth@redhat.com>
45371
45372         PR c++/60272
45373         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
45374         on failure the store back into EXPECT.
45375
45376 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
45377             Sandra Loosemore  <sandra@codesourcery.com>
45378
45379         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
45380         * config/nios2/nios2.c (nios2_function_profiler): Add
45381         -fPIC (flag_pic == 2) support.
45382         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
45383         (nios2_large_offset_p): New function.
45384         (nios2_unspec_reloc_p): Move up position, update to use
45385         nios2_large_offset_p.
45386         (nios2_unspec_address): Remove function.
45387         (nios2_unspec_offset): New function.
45388         (nios2_large_got_address): New function.
45389         (nios2_got_address): Add large offset support.
45390         (nios2_legitimize_tls_address): Update usage of removed and new
45391         functions.
45392         (nios2_symbol_binds_local_p): New function.
45393         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
45394         (nios2_legitimize_address): Update to use nios2_large_offset_p.
45395         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
45396         (nios2_print_operand): Merge H/L processing, add hiadj/lo
45397         processing for (const (unspec ...)).
45398         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
45399
45400 2014-02-20  Richard Biener  <rguenther@suse.de>
45401
45402         * tree-cfg.c (replace_uses_by): Mark altered BBs before
45403         doing the substitution.
45404         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
45405
45406 2014-02-20  Martin Jambor  <mjambor@suse.cz>
45407
45408         PR ipa/55260
45409         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
45410         info when checking whether lattices are bottom.
45411
45412 2014-02-20  Richard Biener  <rguenther@suse.de>
45413
45414         PR middle-end/60221
45415         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
45416         regions at -O0.
45417
45418 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
45419
45420         PR ipa/58555
45421         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
45422         parameter specifying the scaling.
45423         (inline_call): Update.
45424         (want_inline_recursively): Guard division by zero.
45425         (recursive_inlining): Update.
45426         * ipa-inline.h (clone_inlined_nodes): Update.
45427
45428 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
45429
45430         PR target/60204
45431         * config/i386/i386.c (classify_argument): Pass structures of size
45432         64 bytes or less in register.
45433
45434 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
45435             Kirill Yukhin  <kirill.yukhin@intel.com>
45436
45437         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
45438         (_mm_rcp28_round_ss): Ditto.
45439         (_mm_rsqrt28_round_sd): Ditto.
45440         (_mm_rsqrt28_round_ss): Ditto.
45441         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
45442         (_mm_rcp14_round_ss): Ditto.
45443         (_mm_rsqrt14_round_sd): Ditto.
45444         (_mm_rsqrt14_round_ss): Ditto.
45445         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
45446         the first input operand, get rid of match_dup.
45447         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
45448         attribute to sse.
45449         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
45450         Ditto.
45451         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
45452         operand as the first input operand, set type attribute.
45453         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
45454         Set type attribute.
45455         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
45456         operand as the first input operand, set type attribute.
45457
45458 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45459
45460         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
45461         bit of zero.
45462
45463 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
45464
45465         PR target/60207
45466         * config/i386/i386.c (construct_container): Remove TFmode check
45467         for X86_64_INTEGER_CLASS.
45468
45469 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
45470
45471         PR target/59794
45472         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
45473         only when -Wpsabi is enabled.
45474
45475 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
45476
45477         PR target/59799
45478         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
45479         passing arrays in registers are the same as for structs, so remove the
45480         special case for them.
45481
45482 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
45483
45484         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
45485         destination type, extract only the valid bits if the source type is not
45486         integral and has a different mode.
45487
45488 2014-02-19  Richard Biener  <rguenther@suse.de>
45489
45490         PR ipa/60243
45491         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
45492         for all calls.
45493
45494 2014-02-19  Richard Biener  <rguenther@suse.de>
45495
45496         PR ipa/60243
45497         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
45498         (ipa_modify_call_arguments): Emit an argument load explicitely and
45499         preserve virtual SSA form there and for the replacement call.
45500         Do not update SSA form nor free dominance info.
45501
45502 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
45503
45504         * ipa.c (function_and_variable_visibility): Also clear WEAK
45505         flag when disolving COMDAT_GROUP.
45506
45507 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
45508
45509         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
45510         * ipa-prop.c (ipa_set_jf_known_type): Return early when
45511         not devirtualizing.
45512         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
45513         do more sanity checks.
45514         (detect_type_change): Return true when giving up early.
45515         (compute_complex_assign_jump_func): Fix type parameter of
45516         ipa_set_ancestor_jf.
45517         (compute_complex_ancestor_jump_func): Likewise.
45518         (update_jump_functions_after_inlining): Fix updating of
45519         ancestor function.
45520         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
45521
45522 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
45523
45524         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
45525         inline clones when edge disappears.
45526
45527 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
45528
45529         PR target/60203
45530         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
45531         Split 64-bit moves into 2 patterns.  Do not allow the use of
45532         direct move for TDmode in little endian, since the decimal value
45533         has little endian bytes within a word, but the 64-bit pieces are
45534         ordered in a big endian fashion, and normal subreg's of TDmode are
45535         not allowed.
45536         (mov<mode>_64bit_dm): Likewise.
45537         (movtd_64bit_nodm): Likewise.
45538
45539 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
45540
45541         PR tree-optimization/60174
45542         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
45543         statement of an SSA_NAME that occurs in an abnormal PHI node.
45544
45545 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
45546
45547         PR sanitizer/60142
45548         * final.c (SEEN_BB): Remove.
45549         (SEEN_NOTE, SEEN_EMITTED): Renumber.
45550         (final_scan_insn): Don't force_source_line on second
45551         NOTE_INSN_BASIC_BLOCK.
45552
45553 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
45554
45555         PR target/60205
45556         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
45557         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
45558         (type_natural_mode): Warn ABI change when %zmm register is not
45559         available for AVX512F vector value passing.
45560
45561 2014-02-18  Kai Tietz  <ktietz@redhat.com>
45562
45563         PR target/60193
45564         * config/i386/i386.c (ix86_expand_prologue): Use value in
45565         rax register as displacement when restoring %r10 or %rax.
45566         Fix wrong offset when restoring both registers.
45567
45568 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
45569
45570         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
45571         assertion with conditional return.
45572
45573 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
45574             Uros Bizjak  <ubizjak@gmail.com>
45575
45576         PR driver/60233
45577         * config/i386/driver-i386.c (host_detect_local_cpu): If
45578         YMM state is not saved by the OS, also clear has_f16c.  Move
45579         CPUID 0x80000001 handling before YMM state saving checking.
45580
45581 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
45582
45583         PR rtl-optimization/58960
45584         * haifa-sched.c (alloc_global_sched_pressure_data): New,
45585         factored out from ...
45586         (sched_init): ... here.
45587         (free_global_sched_pressure_data): New, factored out from ...
45588         (sched_finish): ... here.
45589         * sched-int.h (free_global_sched_pressure_data): Declare.
45590         * sched-rgn.c (nr_regions_initial): New static global.
45591         (haifa_find_rgns): Initialize it.
45592         (schedule_region): Disable sched-pressure for the newly
45593         generated regions.
45594
45595 2014-02-17  Richard Biener  <rguenther@suse.de>
45596
45597         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
45598         release SSA defs of pattern stmts.
45599
45600 2014-02-17  Richard Biener  <rguenther@suse.de>
45601
45602         * tree-inline.c (expand_call_inline): Release the virtual
45603         operand defined by the call we are about to inline.
45604
45605 2014-02-17  Richard Biener  <rguenther@suse.de>
45606
45607         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
45608
45609 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
45610             Ilya Tocar  <ilya.tocar@intel.com>
45611
45612         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
45613         arguments order in builtin.
45614         (_mm512_permutexvar_epi64): Ditto.
45615         (_mm512_mask_permutexvar_epi64): Ditto
45616         (_mm512_maskz_permutexvar_epi32): Ditto
45617         (_mm512_permutexvar_epi32): Ditto
45618         (_mm512_mask_permutexvar_epi32): Ditto
45619
45620 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45621
45622         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
45623         (p8_vmrgow): Likewise.
45624
45625 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45626
45627         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
45628         endian targets.
45629
45630 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
45631
45632         PR target/60203
45633         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
45634         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
45635         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
45636         using direct move instructions on ISA 2.07.  Also adjust
45637         instruction length for 64-bit.
45638         (mov<mode>_64bit, TFmode/TDmode): Likewise.
45639         (mov<mode>_32bit, TFmode/TDmode): Likewise.
45640
45641 2014-02-15  Alan Modra  <amodra@gmail.com>
45642
45643         PR target/58675
45644         PR target/57935
45645         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
45646         find_replacement on parts of insn rtl that might be reloaded.
45647
45648 2014-02-15  Richard Biener  <rguenther@suse.de>
45649
45650         PR tree-optimization/60183
45651         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
45652         (tree_ssa_phiprop): Calculate and free post-dominators.
45653
45654 2014-02-14  Jeff Law  <law@redhat.com>
45655
45656         PR rtl-optimization/60131
45657         * ree.c (get_extended_src_reg): New function.
45658         (combine_reaching_defs): Use it rather than assuming location of REG.
45659         (find_and_remove_re): Verify first operand of extension is
45660         a REG before adding the insns to the copy list.
45661
45662 2014-02-14  Roland McGrath  <mcgrathr@google.com>
45663
45664         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
45665         * configure: Regenerated.
45666         * config.in: Regenerated.
45667         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
45668         instead of ASM_SHORT.
45669
45670 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
45671             Richard Earnshaw  <rearnsha@arm.com>
45672
45673         PR rtl-optimization/59535
45674         * lra-constraints.c (process_alt_operands): Encourage alternative
45675         when unassigned pseudo class is superset of the alternative class.
45676         (inherit_reload_reg): Don't inherit when optimizing for code size.
45677         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
45678         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
45679         modes not less than 4 for Thumb1.
45680
45681 2014-02-14  Kyle McMartin  <kyle@redhat.com>
45682
45683         PR pch/60010
45684         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
45685
45686 2014-02-14  Richard Biener  <rguenther@suse.de>
45687
45688         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
45689         (get_frame_arg): Drop the assert with langhook types_compatible_p.
45690         Do not strip INDIRECT_REFs.
45691
45692 2014-02-14  Richard Biener  <rguenther@suse.de>
45693
45694         PR lto/60179
45695         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
45696         DECL_FUNCTION_SPECIFIC_TARGET.
45697         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
45698         * tree-streamer-out.c (pack_ts_target_option): Remove.
45699         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
45700         (write_ts_function_decl_tree_pointers): Do not stream
45701         DECL_FUNCTION_SPECIFIC_TARGET.
45702         * tree-streamer-in.c (unpack_ts_target_option): Remove.
45703         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
45704         (lto_input_ts_function_decl_tree_pointers): Do not stream
45705         DECL_FUNCTION_SPECIFIC_TARGET.
45706
45707 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
45708
45709         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
45710         (get_initial_def_for_induction, vectorizable_induction): Ignore
45711         debug stmts when looking for exit_phi.
45712         (vectorizable_live_operation): Fix up condition.
45713
45714 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45715
45716         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
45717         nreverse() because it changes the content of original tree list.
45718
45719 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45720
45721         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
45722         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
45723
45724 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45725
45726         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
45727         GNU coding standards.
45728
45729 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45730
45731         PR debug/60152
45732         * dwarf2out.c (gen_subprogram_die): Don't call
45733         add_calling_convention_attribute if subr_die is old_die.
45734
45735 2014-02-13  Sharad Singhai  <singhai@google.com>
45736
45737         * doc/optinfo.texi: Fix order of nodes.
45738
45739 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
45740
45741         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
45742         operands[2], not operands[3].
45743
45744 2014-02-13  Richard Biener  <rguenther@suse.de>
45745
45746         PR bootstrap/59878
45747         * doc/install.texi (ISL): Update recommended version to 0.12.2,
45748         mention the possibility of an in-tree build.
45749         (CLooG): Update recommended version to 0.18.1, mention the
45750         possibility of an in-tree build and clarify that the ISL
45751         bundled with CLooG does not work.
45752
45753 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45754
45755         PR target/43546
45756         * expr.c (compress_float_constant): If x is a hard register,
45757         extend into a pseudo and then move to x.
45758
45759 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
45760
45761         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
45762         caused by bad second argument to warning_at() with -mhotpatch and
45763         nested functions (e.g. with gfortran).
45764
45765 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
45766
45767         * opts.c (option_name): Remove "enabled by default" rider.
45768
45769 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
45770
45771         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
45772
45773 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
45774             Uros Bizjak  <ubizjak@gmail.com>
45775
45776         PR target/60151
45777         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
45778         * configure: Regenerated.
45779
45780 2014-02-12  Richard Biener  <rguenther@suse.de>
45781
45782         * vec.c (vec_prefix::calculate_allocation): Move as
45783         inline variant to vec.h.
45784         (vec_prefix::calculate_allocation_1): New out-of-line version.
45785         * vec.h (vec_prefix::calculate_allocation_1): Declare.
45786         (vec_prefix::m_has_auto_buf): Rename to ...
45787         (vec_prefix::m_using_auto_storage): ... this.
45788         (vec_prefix::calculate_allocation): Inline the easy cases
45789         and dispatch to calculate_allocation_1 which doesn't need the
45790         prefix address.
45791         (va_heap::reserve): Use gcc_checking_assert.
45792         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
45793         m_using_auto_storage.
45794         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
45795         member and adjust.
45796         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
45797         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
45798         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
45799
45800 2014-02-12  Richard Biener  <rguenther@suse.de>
45801
45802         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
45803         when we found a dependence.
45804
45805 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
45806
45807         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
45808         common code...
45809         (maybe_fold_stmt): ... into this new function.
45810         * omp-low.c (lower_omp): Update comment.
45811
45812         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
45813         last use.
45814
45815         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
45816         dereference.
45817
45818 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
45819
45820         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
45821         identifiers in comments.
45822         (cortexa53_extra_costs): Likewise.
45823         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
45824         (cortexa7_extra_costs): Likewise.
45825         (cortexa12_extra_costs): Likewise.
45826         (cortexa15_extra_costs): Likewise.
45827         (v7m_extra_costs): Likewise.
45828
45829 2014-02-12  Richard Biener  <rguenther@suse.de>
45830
45831         PR middle-end/60092
45832         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45833         of posix_memalign being successful.
45834         (lower_stmt): Restrict lowering of posix_memalign to when
45835         -ftree-bit-ccp is enabled.
45836
45837 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
45838
45839         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45840         arg_loc.
45841         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45842
45843 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
45844
45845         PR rtl-optimization/60116
45846         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45847         other_insn once the combination has been validated.
45848
45849 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
45850
45851         PR lto/59468
45852         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45853         and wrapper.
45854         * ipa-devirt.c: Include demangle.h
45855         (odr_violation_reported): New static variable.
45856         (add_type_duplicate): Update odr_violations.
45857         (maybe_record_node): Add completep parameter; update it.
45858         (record_target_from_binfo): Add COMPLETEP parameter;
45859         update it as needed.
45860         (possible_polymorphic_call_targets_1): Likewise.
45861         (struct polymorphic_call_target_d): Add nonconstruction_targets;
45862         rename FINAL to COMPLETE.
45863         (record_targets_from_bases): Sanity check we found the binfo;
45864         fix COMPLETEP updating.
45865         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45866         parameter, fix computing of COMPLETEP.
45867         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45868         at LTO time do demangling.
45869         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45870         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45871         parameter.
45872         (gimple_get_virt_method_for_binfo): Likewise.
45873         * gimple-fold.h (gimple_get_virt_method_for_binfo,
45874         gimple_get_virt_method_for_vtable): Update prototypes.
45875
45876 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
45877
45878         PR target/49008
45879         * genautomata.c (add_presence_absence): Fix typo with
45880         {final_}presence_list.
45881
45882 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
45883
45884         PR target/60137
45885         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45886         for VSX/Altivec vectors that land in GPR registers.
45887
45888 2014-02-11  Richard Henderson  <rth@redhat.com>
45889             Jakub Jelinek  <jakub@redhat.com>
45890
45891         PR debug/59776
45892         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45893         around drhs if type conversion to lacc->type is not useless.
45894
45895 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45896
45897         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45898         tuning struct.
45899         (cortex-a57.cortex-a53): Likewise.
45900         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45901
45902 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45903
45904         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45905         arm_restrict_it.
45906
45907 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
45908
45909         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45910         add_options_for_arm_vfp3.
45911
45912 2014-02-11  Jeff Law  <law@redhat.com>
45913
45914         PR middle-end/54041
45915         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45916         object with an undesirable mode.
45917
45918 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45919
45920         PR libgomp/60107
45921         * config/i386/sol2-9.h: New file.
45922         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45923         *-*-solaris2.9*): Use it.
45924
45925 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45926
45927         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45928         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45929
45930 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45931
45932         * config/microblaze/microblaze.c: Extend mcpu version format
45933
45934 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
45935
45936         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45937
45938 2014-02-10  Richard Henderson  <rth@redhat.com>
45939
45940         PR target/59927
45941         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45942         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45943         ms-abi vs -mno-accumulate-outgoing-args.
45944         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45945         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45946         respect to ms-abi.
45947
45948 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45949
45950         PR middle-end/60080
45951         * cfgexpand.c (expand_asm_operands): Attach source location to
45952         ASM_INPUT rtx objects.
45953         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45954
45955 2014-02-10  Nick Clifton  <nickc@redhat.com>
45956
45957         * config/mn10300/mn10300.c (popcount): New function.
45958         (mn10300_expand_prologue): Include saved registers in stack usage
45959         count.
45960
45961 2014-02-10  Jeff Law  <law@redhat.com>
45962
45963         PR middle-end/52306
45964         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45965         when changing the SET_DEST of a prior insn to avoid an input reload.
45966
45967 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
45968
45969         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45970         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45971         -mcall-openbsd, or -mcall-linux.
45972         (CC1_ENDIAN_BIG_SPEC): Remove.
45973         (CC1_ENDIAN_LITTLE_SPEC): Remove.
45974         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45975         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45976         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45977         and %cc1_endian_default.
45978         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45979
45980 2014-02-10  Richard Biener  <rguenther@suse.de>
45981
45982         PR tree-optimization/60115
45983         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45984         MEM_REF handling.  Properly verify that the accesses are not
45985         out of the objects bound.
45986
45987 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45988
45989         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45990         coretex to cortex.
45991
45992 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
45993
45994         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45995         proper constants and fix formatting.
45996         (possible_polymorphic_call_targets): Fix formatting.
45997
45998 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
45999             Ilya Tocar  <ilya.tocar@intel.com>
46000
46001         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
46002         (_mm512_loadu_epi32): Renamed into...
46003         (_mm512_loadu_si512): This.
46004         (_mm512_storeu_epi32): Renamed into...
46005         (_mm512_storeu_si512): This.
46006         (_mm512_maskz_ceil_ps): Removed.
46007         (_mm512_maskz_ceil_pd): Ditto.
46008         (_mm512_maskz_floor_ps): Ditto.
46009         (_mm512_maskz_floor_pd): Ditto.
46010         (_mm512_floor_round_ps): Ditto.
46011         (_mm512_floor_round_pd): Ditto.
46012         (_mm512_ceil_round_ps): Ditto.
46013         (_mm512_ceil_round_pd): Ditto.
46014         (_mm512_mask_floor_round_ps): Ditto.
46015         (_mm512_mask_floor_round_pd): Ditto.
46016         (_mm512_mask_ceil_round_ps): Ditto.
46017         (_mm512_mask_ceil_round_pd): Ditto.
46018         (_mm512_maskz_floor_round_ps): Ditto.
46019         (_mm512_maskz_floor_round_pd): Ditto.
46020         (_mm512_maskz_ceil_round_ps): Ditto.
46021         (_mm512_maskz_ceil_round_pd): Ditto.
46022         (_mm512_expand_pd): Ditto.
46023         (_mm512_expand_ps): Ditto.
46024         * config/i386/i386.c (ix86_builtins): Remove
46025         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
46026         (bdesc_args): Ditto.
46027         * config/i386/predicates.md (const1256_operand): New.
46028         (const_1_to_2_operand): Ditto.
46029         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
46030         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46031         (*avx512pf_gatherpf<mode>sf): Ditto.
46032         (avx512pf_gatherpf<mode>df): Ditto.
46033         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46034         (*avx512pf_gatherpf<mode>df): Ditto.
46035         (avx512pf_scatterpf<mode>sf): Ditto.
46036         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46037         (*avx512pf_scatterpf<mode>sf): Ditto.
46038         (avx512pf_scatterpf<mode>df): Ditto.
46039         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46040         (*avx512pf_scatterpf<mode>df): Ditto.
46041         (avx512f_expand<mode>): Removed.
46042         (<shift_insn><mode>3<mask_name>): Change predicate type.
46043
46044 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
46045
46046         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
46047         not at the end of datarefs vector use ordered_remove to avoid
46048         reordering datarefs vector.
46049
46050         PR c/59984
46051         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
46052         mark local addressable non-static vars as GOVD_PRIVATE
46053         instead of GOVD_LOCAL.
46054         * omp-low.c (lower_omp_for): Move gimple_bind_vars
46055         and BLOCK_VARS of gimple_bind_block to new_stmt rather
46056         than copying them.
46057
46058         PR middle-end/60092
46059         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
46060         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
46061         assume_aligned or alloc_align attributes.
46062         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
46063         arguments.  Handle also assume_aligned and alloc_align attributes.
46064         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
46065         calls to functions with assume_aligned or alloc_align attributes.
46066         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
46067
46068 2014-02-08  Terry Guo  <terry.guo@arm.com>
46069
46070         * doc/invoke.texi: Document ARM -march=armv7e-m.
46071
46072 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
46073
46074         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
46075         flag on __cilkrts_rethrow builtin.
46076
46077         PR ipa/60026
46078         * ipa-cp.c (determine_versionability): Fail at -O0
46079         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
46080         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
46081
46082         Revert:
46083         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
46084
46085         PR ipa/60026
46086         * tree-inline.c (copy_forbidden): Fail for
46087         __attribute__((optimize (0))) functions.
46088
46089 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
46090
46091         * varpool.c: Include pointer-set.h.
46092         (varpool_remove_unreferenced_decls): Variables in other partitions
46093         will not be output; be however careful to not lose information
46094         about partitioning.
46095
46096 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
46097
46098         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
46099         lookup in the vtable constructor.
46100
46101 2014-02-07  Jeff Law  <law@redhat.com>
46102
46103         PR target/40977
46104         * config/m68k/m68k.md (ashldi_extsi): Turn into a
46105         define_insn_and_split.
46106
46107         * ipa-inline.c (inline_small_functions): Fix typos.
46108
46109 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
46110
46111         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
46112         (s390_can_use_return_insn): Declare.
46113         * config/s390/s390.h (EPILOGUE_USES): Define.
46114         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
46115         instructions.
46116         (s390_chunkify_start): Handle return JUMP_LABELs.
46117         (s390_early_mach): Emit a main_pool instruction on the entry edge.
46118         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
46119         (s390_can_use_return_insn): New functions.
46120         (s390_fix_long_loop_prediction): Handle conditional returns.
46121         (TARGET_SET_UP_BY_PROLOGUE): Define.
46122         * config/s390/s390.md (ANY_RETURN): New code iterator.
46123         (*creturn, *csimple_return, return, simple_return): New patterns.
46124
46125 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
46126
46127         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
46128         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
46129         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
46130         REG_CFA_RESTORE list when deciding not to restore a register.
46131
46132 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
46133
46134         * config/s390/s390.c: Include tree-pass.h and context.h.
46135         (s390_early_mach): New function, split out from...
46136         (s390_emit_prologue): ...here.
46137         (pass_data_s390_early_mach): New pass structure.
46138         (pass_s390_early_mach): New class.
46139         (s390_option_override): Create and register early_mach pass.
46140         Move to end of file.
46141
46142 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
46143
46144         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
46145         to match for the exit block.
46146
46147 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
46148
46149         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
46150         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
46151         Reject misaligned operands.
46152
46153 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
46154
46155         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
46156
46157 2014-02-07  Richard Biener  <rguenther@suse.de>
46158
46159         PR middle-end/60092
46160         * gimple-low.c (lower_builtin_posix_memalign): New function.
46161         (lower_stmt): Call it to lower posix_memalign in a way
46162         to make alignment info accessible.
46163
46164 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
46165
46166         PR c++/60082
46167         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
46168         __builtin_setjmp_receiver.
46169
46170 2014-02-07  Richard Biener  <rguenther@suse.de>
46171
46172         PR middle-end/60092
46173         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
46174         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
46175         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
46176         Handle BUILT_IN_POSIX_MEMALIGN.
46177         (find_func_clobbers): Likewise.
46178         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
46179         (call_may_clobber_ref_p_1): Likewise.
46180
46181 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
46182
46183         PR ipa/59918
46184         * ipa-devirt.c (record_target_from_binfo): Remove overactive
46185         sanity check.
46186
46187 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
46188
46189         PR ipa/59469
46190         * lto-cgraph.c (lto_output_node): Use
46191         symtab_get_symbol_partitioning_class.
46192         (lto_output_varpool_node): likewise.
46193         (symtab_get_symbol_partitioning_class): Move here from
46194         lto/lto-partition.c
46195         * cgraph.h (symbol_partitioning_class): Likewise.
46196         (symtab_get_symbol_partitioning_class): Declare.
46197
46198 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
46199
46200         * ggc.h (ggc_internal_cleared_alloc): New macro.
46201         * vec.h (vec_safe_copy): Handle memory stats.
46202         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
46203         * target-globals.c (save_target_globals): Likewise.
46204
46205 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
46206
46207         PR target/60077
46208         * expr.c (emit_move_resolve_push): Export; be bit more selective
46209         on when to clear alias set.
46210         * expr.h (emit_move_resolve_push): Declare.
46211         * function.h (struct function): Add tail_call_marked.
46212         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
46213         * config/i386/i386-protos.h (ix86_expand_push): Remove.
46214         * config/i386/i386.md (TImode move expander): De not call
46215         ix86_expand_push.
46216         (FP push expanders): Preserve memory attributes.
46217         * config/i386/sse.md (push<mode>1): Remove.
46218         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
46219         (ix86_expand_push): Remove.
46220         * config/i386/mmx.md (push<mode>1): Remove.
46221
46222 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
46223
46224         PR rtl-optimization/60030
46225         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
46226         lopart with paradoxical subreg before shifting it up by hprec.
46227
46228 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46229
46230         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
46231         Remove extra newline at end of file.
46232         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
46233         (arm_issue_rate): Handle cortexa57.
46234         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
46235         (cortex-a57.cortex-a53): Likewise.
46236
46237 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
46238
46239         PR target/59575
46240         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
46241         don't record in REG_FRAME_RELATED_EXPR registers not set in that
46242         bitmask.
46243         (arm_expand_prologue): Adjust all callers.
46244         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
46245         info, registers also at the lowest numbered registers side.  Use
46246         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
46247         XEXP.
46248
46249         PR debug/59992
46250         * var-tracking.c (adjust_mems): Before adding a SET to
46251         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
46252
46253 2014-02-06  Alan Modra  <amodra@gmail.com>
46254
46255         PR target/60032
46256         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
46257         change SDmode to DDmode when lra_in_progress.
46258
46259 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
46260
46261         PR middle-end/59150
46262         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
46263         free_data_ref on the dr first, and before goto again also set dr
46264         to the next dr.  For simd_lane_access, free old datarefs[i] before
46265         overwriting it.  For get_vectype_for_scalar_type failure, don't
46266         free_data_ref if simd_lane_access.
46267
46268         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
46269
46270         PR target/60062
46271         * tree.h (opts_for_fn): New inline function.
46272         (opt_for_fn): Define.
46273         * config/i386/i386.c (ix86_function_regparm): Use
46274         opt_for_fn (decl, optimize) instead of optimize.
46275
46276 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46277
46278         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
46279         for SYMBOL_REF in large memory model.
46280
46281 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46282
46283         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
46284         and crypto support.
46285         (cortex-a57): Likewise.
46286         (cortex-a57.cortex-a53): Likewise.
46287
46288 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
46289             Kugan Vivekanandarajah  <kuganv@linaro.org>
46290
46291         * config/arm/arm.c (arm_vector_alignment_reachable): Check
46292         unaligned_access.
46293         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
46294
46295 2014-02-06  Richard Biener  <rguenther@suse.de>
46296
46297         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
46298         set_loop_copy and initialize_original_copy_tables.
46299
46300 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
46301
46302         * config/aarch64/aarch64-simd.md
46303         (aarch64_ashr_simddi): Change QI to SI.
46304
46305 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
46306             Jakub Jelinek  <jakub@redhat.com>
46307
46308         PR middle-end/60013
46309         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
46310         of the dataflow.
46311
46312 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46313
46314         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
46315         CODE_FOR_altivec_vpku[hw]um to
46316         CODE_FOR_altivec_vpku[hw]um_direct.
46317         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
46318         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
46319         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
46320         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
46321
46322 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46323
46324         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
46325         generation for -maltivec=be.
46326         (altivec_vsumsws): Simplify redundant test.
46327
46328 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46329
46330         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
46331         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
46332         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
46333         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
46334         gen_altivec_vpkuwum.
46335         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
46336         BYTES_BIG_ENDIAN.
46337         (altivec_vpks<VI_char>ss): Likewise.
46338         (altivec_vpks<VI_char>us): Likewise.
46339         (altivec_vpku<VI_char>us): Likewise.
46340         (altivec_vpku<VI_char>um): Likewise.
46341         (altivec_vpku<VI_char>um_direct): New (copy of
46342         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
46343         internal use).
46344         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
46345         target is little endian and -maltivec=be is not specified.
46346         (*altivec_vupkhs<VU_char>_direct): New (copy of
46347         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
46348         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
46349         target is little endian and -maltivec=be is not specified.
46350         (*altivec_vupkls<VU_char>_direct): New (copy of
46351         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
46352         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
46353         little endian and -maltivec=be is not specified.
46354         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
46355         little endian and -maltivec=be is not specified.
46356
46357 2014-02-05  Richard Henderson  <rth@redhat.com>
46358
46359         PR debug/52727
46360         * combine-stack-adj.c: Revert r206943.
46361         * sched-int.h (struct deps_desc): Add last_args_size.
46362         * sched-deps.c (init_deps): Initialize it.
46363         (sched_analyze_insn): Add OUTPUT dependencies between insns that
46364         contain REG_ARGS_SIZE notes.
46365
46366 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
46367
46368         * lto-cgraph.c (asm_nodes_output): Make global.
46369         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
46370         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
46371         (driver_handle_option): Handle OPT_fwpa.
46372
46373 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
46374
46375         PR ipa/59947
46376         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
46377         a comment typo and formatting issue.  If odr_hash hasn't been
46378         created, return vNULL and set *completep to false.
46379
46380         PR middle-end/57499
46381         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
46382         bb with no successors.
46383
46384 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
46385
46386         PR target/59718
46387         * doc/invoke.texi (-march): Clarify documentation for ARM.
46388         (-mtune): Likewise.
46389         (-mcpu): Likewise.
46390
46391 2014-02-05  Richard Biener  <rguenther@suse.de>
46392
46393         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
46394         when not vectorizing because of too many alias checks.
46395         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
46396         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
46397
46398 2014-02-05  Nick Clifton  <nickc@redhat.com>
46399
46400         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
46401         accept extended registers in any mode when compiling for the MN10300.
46402
46403 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
46404
46405         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
46406         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
46407         sanitization attributes.
46408         (can_inline_edge_p): Likewise.
46409         (sanitize_attrs_match_for_inline_p): New function.
46410
46411 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
46412
46413         * ipa-prop.c (detect_type_change): Shor circuit testing of
46414         type changes on THIS pointer.
46415
46416 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
46417
46418         PR target/59777
46419         * config/pa/pa.c (legitimize_tls_address): Return original address
46420         if not passed a SYMBOL_REF rtx.
46421         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
46422         addresses.
46423         (pa_emit_move_sequence): Simplify TLS source operands.
46424         (pa_legitimate_constant_p): Reject all TLS constants.
46425         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
46426         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
46427
46428 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
46429
46430         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
46431         groups when we know they are controlled by LTO.
46432         * varasm.c (default_binds_local_p_1): If object is in other partition,
46433         it will be resolved locally.
46434
46435 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
46436
46437         * config/host-linux.c (linux_gt_pch_use_address): Don't
46438         use SSIZE_MAX because it is not always defined.
46439
46440 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
46441
46442         PR bootstrap/59913
46443         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
46444         threshold for pseudo splitting.
46445         (update_ebb_live_info): Process call argument hard registers and
46446         hard registers from insn definition too.
46447         (max_small_class_regs_num): New constant.
46448         (inherit_in_ebb): Update live hard regs through EBBs.  Update
46449         reloads_num only for small register classes.  Don't split for
46450         outputs of jumps.
46451
46452 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
46453
46454         PR ipa/60058
46455         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
46456         is non-null.
46457
46458 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
46459
46460         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
46461         visibility is safe.
46462
46463 2014-02-04  Marek Polacek  <polacek@redhat.com>
46464
46465         * gdbinit.in (pel): Define.
46466
46467 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
46468
46469         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
46470         behavior.
46471
46472 2014-02-04  Richard Biener  <rguenther@suse.de>
46473
46474         PR lto/59723
46475         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
46476         in function context local.
46477         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
46478         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
46479         similar to LTO_imported_decl_ref.
46480
46481 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
46482
46483         PR tree-optimization/60002
46484         * cgraphclones.c (build_function_decl_skip_args): Clear
46485         DECL_LANG_SPECIFIC.
46486
46487         PR tree-optimization/60023
46488         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
46489         false to gsi_replace.
46490         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
46491         has been in some EH region and vec_stmt could throw, add
46492         vec_stmt into the same EH region.
46493         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
46494         has no lhs, ignore it.
46495         * internal-fn.c (expand_MASK_LOAD): Likewise.
46496
46497         PR ipa/60026
46498         * tree-inline.c (copy_forbidden): Fail for
46499         __attribute__((optimize (0))) functions.
46500
46501         PR other/58712
46502         * omp-low.c (simd_clone_struct_copy): If from->inbranch
46503         is set, copy one less argument.
46504         (expand_simd_clones): Don't subtract clone_info->inbranch
46505         from simd_clone_struct_alloc argument.
46506
46507         PR rtl-optimization/57915
46508         * recog.c (simplify_while_replacing): If all unary/binary/relational
46509         operation arguments are constant, attempt to simplify those.
46510
46511         PR middle-end/59261
46512         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
46513         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
46514
46515 2014-02-04  Richard Biener  <rguenther@suse.de>
46516
46517         PR tree-optimization/60012
46518         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
46519         TBAA disambiguation to all DDRs.
46520
46521 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
46522
46523         PR target/59788
46524         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
46525         (LINK_SPEC): Use it for -shared, -shared-libgcc.
46526
46527 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46528
46529         PR ipa/59882
46530         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
46531
46532 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46533
46534         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
46535         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
46536
46537 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46538
46539         PR ipa/59831
46540         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
46541         to figure out targets of polymorphic calls with known decl.
46542         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
46543         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
46544         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
46545         (get_polymorphic_call_info): ... here.
46546         (get_polymorphic_call_info_from_invariant): New function.
46547
46548 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46549
46550         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
46551         lookup via vtable pointer; check for type consistency
46552         and turn inconsitent facts into UNREACHABLE.
46553         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
46554         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
46555         type inconsistent querries; return UNREACHABLE instead.
46556
46557 2014-02-03  Richard Henderson  <rth@twiddle.net>
46558
46559         PR tree-opt/59924
46560         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
46561         already processed this node.
46562         (normalize_one_pred_1): Pass along mark_set.
46563         (normalize_one_pred): Create and destroy a pointer_set_t.
46564         (normalize_one_pred_chain): Likewise.
46565
46566 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
46567
46568         PR gcov-profile/58602
46569         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
46570
46571 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
46572
46573         PR ipa/59831
46574         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
46575         -fno-devirtualize; try to devirtualize by the knowledge of
46576         virtual table pointer given by aggregate propagation.
46577         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
46578         (ipa_print_node_jump_functions): Dump also offset that
46579         is relevant for polymorphic calls.
46580         (determine_known_aggregate_parts): Add arg_type parameter; use it
46581         instead of determining the type from pointer type.
46582         (ipa_compute_jump_functions_for_edge): Update call of
46583         determine_known_aggregate_parts.
46584         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
46585         (gimple_get_virt_method_for_binfo): ... here; simplify using
46586         vtable_pointer_value_to_vtable.
46587         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
46588         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
46589         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
46590         (vtable_pointer_value_to_vtable): Break out from ...; handle also
46591         POINTER_PLUS_EXPR.
46592         (vtable_pointer_value_to_binfo): ... here.
46593         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
46594
46595 2014-02-03  Teresa Johnson  <tejohnson@google.com>
46596
46597         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
46598         redef of outer loop index variable.
46599
46600 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
46601
46602         PR c++/53017
46603         PR c++/59211
46604         * doc/extend.texi (Function Attributes): Typo.
46605
46606 2014-02-03  Cong Hou  <congh@google.com>
46607
46608         PR tree-optimization/60000
46609         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
46610         if the vectorized statement is a store.  A store statement can only
46611         appear at the end of pattern statements.
46612
46613 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
46614
46615         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
46616         (ix86_option_override_internal): Default long double to 64-bit for
46617         32-bit Bionic and to 128-bit for 64-bit Bionic.
46618
46619         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
46620         TARGET_LONG_DOUBLE_128 is true.
46621         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
46622
46623         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
46624         (mlong-double-64): Negate -mlong-double-128.
46625         (mlong-double-128): New option.
46626
46627         * config/i386/i386-c.c (ix86_target_macros): Define
46628         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
46629
46630         * doc/invoke.texi: Document -mlong-double-128.
46631
46632 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
46633
46634         PR rtl-optimization/60024
46635         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
46636
46637 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
46638
46639         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
46640
46641 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46642
46643         PR rtl-optimization/57662
46644         * sel-sched.c (code_motion_path_driver): Do not mark already not
46645         existing blocks in the visiting bitmap.
46646
46647 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46648
46649         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
46650         on the insn being emitted.
46651
46652 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
46653             Will Deacon  <will.deacon@arm.com>
46654
46655         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
46656
46657 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46658
46659         * config/arm/arm-tables.opt: Regenerate.
46660
46661 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46662
46663         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
46664         for vector types other than V16QImode.
46665         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
46666         define_expand, and call altivec_expand_vec_perm_le when producing
46667         code with little endian element order.
46668         (*altivec_vperm_<mode>_internal): New insn having previous
46669         behavior of altivec_vperm_<mode>.
46670         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
46671         altivec_expand_vec_perm_le when producing code with little endian
46672         element order.
46673         (*altivec_vperm_<mode>_uns_internal): New insn having previous
46674         behavior of altivec_vperm_<mode>_uns.
46675
46676 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46677
46678         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
46679         (altivec_vsumsws): Add handling for -maltivec=be with a little
46680         endian target.
46681         (altivec_vsumsws_direct): New.
46682         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
46683         gen_altivec_vsumsws.
46684
46685 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46686
46687         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
46688         vtable_pointer_value_to_binfo): New functions.
46689         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
46690         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
46691
46692 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
46693
46694         * config/nios2/nios2.md (load_got_register): Initialize GOT
46695         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
46696         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
46697
46698 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46699
46700         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
46701         preserverd by passthrough, do not propagate the type.
46702
46703 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46704
46705         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
46706         (mips_atomic_assign_expand_fenv): New function.
46707         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
46708
46709 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46710
46711         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
46712         (__builtin_mips_set_fcsr): Likewise.
46713         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
46714         MIPS_USI_FTYPE_VOID.
46715         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
46716         (mips16_expand_set_fcsr): Likewise.
46717         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
46718         (mips16_set_fcsr_stub): Likewise.
46719         (mips16_get_fcsr_one_only_stub): New class.
46720         (mips16_set_fcsr_one_only_stub): Likewise.
46721         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
46722         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
46723         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
46724         (hard_float): New availability predicate.
46725         (mips_builtins): Add get_fcsr and set_fcsr.
46726         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
46727         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
46728         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
46729         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
46730         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
46731         patterns.
46732
46733 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46734
46735         * config/mips/mips.c (mips_one_only_stub): New class.
46736         (mips_need_mips16_rdhwr_p): Replace with...
46737         (mips16_rdhwr_stub): ...this new variable.
46738         (mips16_stub_call_address): New function.
46739         (mips16_rdhwr_one_only_stub): New class.
46740         (mips_expand_thread_pointer): Use mips16_stub_call_address.
46741         (mips_output_mips16_rdhwr): Delete.
46742         (mips_finish_stub): New function.
46743         (mips_code_end): Use it to handle rdhwr stubs.
46744
46745 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
46746
46747         PR target/60017
46748         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
46749         when calculating size of integer atomic types.
46750
46751 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
46752
46753         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
46754
46755 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
46756
46757         PR tree-optimization/60003
46758         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
46759         * profile.c (branch_prob): Use gimple_call_builtin_p
46760         to check for BUILT_IN_SETJMP_RECEIVER.
46761         * tree-inline.c (copy_bb): Call notice_special_calls.
46762
46763 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
46764
46765         PR bootstrap/59985
46766         * lra-constraints.c (process_alt_operands): Update reload_sum only
46767         on the first pass.
46768
46769 2014-01-31  Richard Henderson  <rth@redhat.com>
46770
46771         PR middle-end/60004
46772         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
46773         until after else_eh is processed.
46774
46775 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46776
46777         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
46778         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
46779         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
46780         in smmintrin.h, remove them.
46781         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
46782         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
46783         * config/i386/i386.md (ROUND_SAE): Fix value.
46784         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
46785         (const48_operand): New.
46786         * config/i386/subst.md (round), (round_expand): Use
46787         const_4_or_8_to_11_operand.
46788         (round_saeonly), (round_saeonly_expand): Use const48_operand.
46789
46790 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46791
46792         * config/i386/constraints.md (Yk): Swap meaning with k.
46793         * config/i386/i386.md (movhi_internal): Change Yk to k.
46794         (movqi_internal): Ditto.
46795         (*k<logic><mode>): Ditto.
46796         (*andhi_1): Ditto.
46797         (*andqi_1): Ditto.
46798         (kandn<mode>): Ditto.
46799         (*<code>hi_1): Ditto.
46800         (*<code>qi_1): Ditto.
46801         (kxnor<mode>): Ditto.
46802         (kortestzhi): Ditto.
46803         (kortestchi): Ditto.
46804         (kunpckhi): Ditto.
46805         (*one_cmplhi2_1): Ditto.
46806         (*one_cmplqi2_1): Ditto.
46807         * config/i386/sse.md (): Change k to Yk.
46808         (avx512f_load<mode>_mask): Ditto.
46809         (avx512f_blendm<mode>): Ditto.
46810         (avx512f_store<mode>_mask): Ditto.
46811         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
46812         (avx512f_storedqu<mode>_mask): Ditto.
46813         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
46814         Ditto.
46815         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
46816         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
46817         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
46818         (avx512f_maskcmp<mode>3): Ditto.
46819         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
46820         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
46821         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
46822         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
46823         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
46824         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
46825         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
46826         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
46827         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
46828         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
46829         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46830         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46831         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46832         (vec_extract_lo_<mode>_maskm): Ditto.
46833         (vec_extract_hi_<mode>_maskm): Ditto.
46834         (avx512f_vternlog<mode>_mask): Ditto.
46835         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46836         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46837         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46838         (avx512f_<code>v8div16qi2_mask): Ditto.
46839         (avx512f_<code>v8div16qi2_mask_store): Ditto.
46840         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46841         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46842         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46843         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46844         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46845         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46846         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46847         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46848         (avx512cd_maskb_vec_dupv8di): Ditto.
46849         (avx512cd_maskw_vec_dupv16si): Ditto.
46850         (avx512f_vpermi2var<mode>3_maskz): Ditto.
46851         (avx512f_vpermi2var<mode>3_mask): Ditto.
46852         (avx512f_vpermi2var<mode>3_mask): Ditto.
46853         (avx512f_vpermt2var<mode>3_maskz): Ditto.
46854         (*avx512f_gathersi<mode>): Ditto.
46855         (*avx512f_gathersi<mode>_2): Ditto.
46856         (*avx512f_gatherdi<mode>): Ditto.
46857         (*avx512f_gatherdi<mode>_2): Ditto.
46858         (*avx512f_scattersi<mode>): Ditto.
46859         (*avx512f_scatterdi<mode>): Ditto.
46860         (avx512f_compress<mode>_mask): Ditto.
46861         (avx512f_compressstore<mode>_mask): Ditto.
46862         (avx512f_expand<mode>_mask): Ditto.
46863         * config/i386/subst.md (mask): Change k to Yk.
46864         (mask_scalar_merge): Ditto.
46865         (sd): Ditto.
46866
46867 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
46868
46869         * doc/extend.texi (Vector Extensions): Document ?: in C++.
46870
46871 2014-01-31  Richard Biener  <rguenther@suse.de>
46872
46873         PR middle-end/59990
46874         * builtins.c (fold_builtin_memory_op): Make sure to not
46875         use a floating-point mode or a boolean or enumeral type for
46876         the copy operation.
46877
46878 2014-01-30  DJ Delorie  <dj@redhat.com>
46879
46880         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46881         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46882         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46883         whenever main() has an epilogue.
46884
46885 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46886
46887         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46888         unused variable "field".
46889         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46890         (vsx_mergeh_<mode>): Likewise.
46891         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46892         (altivec_vmrghh): Likewise.
46893         (altivec_vmrghw): Likewise.
46894         (altivec_vmrglb): Likewise.
46895         (altivec_vmrglh): Likewise.
46896         (altivec_vmrglw): Likewise.
46897         (altivec_vspltb): Add missing uses.
46898         (altivec_vsplth): Likewise.
46899         (altivec_vspltw): Likewise.
46900         (altivec_vspltsf): Likewise.
46901
46902 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46903
46904         PR target/59923
46905         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46906         frame related instructions.
46907
46908 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
46909
46910         PR rtl-optimization/59959
46911         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46912         any reload of register whose subreg is invalid.
46913
46914 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46915
46916         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46917         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46918         Add missing return type - void.
46919
46920 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46921
46922         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46923         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46924         remove element index adjustment for endian (now handled in vsx.md
46925         and altivec.md).
46926         (altivec_expand_vec_perm_const): Use
46927         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46928         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46929         (vsx_xxspltw_<mode>): Adjust element index for little endian.
46930         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46931         define_expand and a new define_insn *altivec_vspltb_internal;
46932         adjust for -maltivec=be on a little endian target.
46933         (altivec_vspltb_direct): New.
46934         (altivec_vsplth): Divide into a define_expand and a new
46935         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46936         little endian target.
46937         (altivec_vsplth_direct): New.
46938         (altivec_vspltw): Divide into a define_expand and a new
46939         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46940         little endian target.
46941         (altivec_vspltw_direct): New.
46942         (altivec_vspltsf): Divide into a define_expand and a new
46943         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46944         a little endian target.
46945
46946 2014-01-30  Richard Biener  <rguenther@suse.de>
46947
46948         PR tree-optimization/59993
46949         * tree-ssa-forwprop.c (associate_pointerplus): Check we
46950         can propagate form the earlier stmt and avoid the transform
46951         when the intermediate result is needed.
46952
46953 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
46954
46955         * README.Portability: Fix typo.
46956
46957 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
46958
46959         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46960         comparison_operator with ordered_comparison_operator.
46961
46962 2014-01-30  Nick Clifton  <nickc@redhat.com>
46963
46964         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46965         Rename to mn10300_store_multiple_regs.
46966         * config/mn10300/mn10300.c: Likewise.
46967         * config/mn10300/mn10300.md (store_movm): Fix typo: call
46968         store_multiple_regs.
46969         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46970         Call mn10300_store_multiple_regs.
46971
46972 2014-01-30  Nick Clifton  <nickc@redhat.com>
46973             DJ Delorie  <dj@redhat.com>
46974
46975         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46976         %fp 2 to keep registers after it properly word-aligned.
46977         (rl78_alloc_physical_registers_umul): Handle the case where both
46978         input operands are the same.
46979
46980 2014-01-30  Richard Biener  <rguenther@suse.de>
46981
46982         PR tree-optimization/59903
46983         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46984         check properly.
46985
46986 2014-01-30  Jason Merrill  <jason@redhat.com>
46987
46988         PR c++/59633
46989         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46990
46991         PR c++/59645
46992         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46993
46994 2014-01-30  Richard Biener  <rguenther@suse.de>
46995
46996         PR tree-optimization/59951
46997         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46998
46999 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
47000
47001         PR target/59784
47002         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
47003         SFmode to DFmode case.
47004
47005 2014-01-29  DJ Delorie  <dj@redhat.com>
47006
47007         * config/msp430/msp430.opt (-minrt): New.
47008         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
47009         if -minrt given.
47010         (ENDFILE_SPEC): Likewise.
47011
47012 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
47013
47014         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
47015         (estimate_function_body_sizes): Use it.
47016
47017 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
47018
47019         PR c++/58561
47020         * dwarf2out.c (is_cxx_auto): New.
47021         (is_base_type): Use it.
47022         (gen_type_die_with_usage): Likewise.
47023
47024 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47025
47026         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
47027         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
47028         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
47029         -maltivec=be with LE targets.
47030         (vsx_mergeh_<mode>): Likewise.
47031         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
47032         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
47033         (altivec_vmrghb): Replace with define_expand and new
47034         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
47035         (altivec_vmrghb_direct): New define_insn.
47036         (altivec_vmrghh): Replace with define_expand and new
47037         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
47038         (altivec_vmrghh_direct): New define_insn.
47039         (altivec_vmrghw): Replace with define_expand and new
47040         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
47041         (altivec_vmrghw_direct): New define_insn.
47042         (*altivec_vmrghsf): Adjust for endianness.
47043         (altivec_vmrglb): Replace with define_expand and new
47044         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
47045         (altivec_vmrglb_direct): New define_insn.
47046         (altivec_vmrglh): Replace with define_expand and new
47047         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
47048         (altivec_vmrglh_direct): New define_insn.
47049         (altivec_vmrglw): Replace with define_expand and new
47050         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
47051         (altivec_vmrglw_direct): New define_insn.
47052         (*altivec_vmrglsf): Adjust for endianness.
47053         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
47054         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
47055         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
47056         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
47057         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
47058         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
47059         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
47060         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
47061
47062 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47063
47064         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
47065         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
47066         whitespace.
47067
47068 2014-01-29  Richard Biener  <rguenther@suse.de>
47069
47070         PR tree-optimization/58742
47071         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
47072         associate_pointerplus_align.
47073         (associate_pointerplus_diff): New function.
47074         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
47075         and associate_pointerplus_diff.
47076
47077 2014-01-29  Richard Biener  <rguenther@suse.de>
47078
47079         * lto-streamer.h (LTO_major_version): Bump to 3.
47080         (LTO_minor_version): Reset to 0.
47081
47082 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
47083
47084         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
47085         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
47086         (arm_file_start): Generate correct asm header for armv7ve.
47087         * config/arm/bpabi.h: Add multilib support for armv7ve.
47088         * config/arm/driver-arm.c: Change the architectures of cortex-a7
47089         and cortex-a15 to armv7ve.
47090         * config/arm/t-aprofile: Add multilib support for armv7ve.
47091         * doc/invoke.texi: Document -march=armv7ve.
47092
47093 2014-01-29  Richard Biener  <rguenther@suse.de>
47094
47095         PR tree-optimization/58742
47096         * tree-ssa-forwprop.c (associate_plusminus): Return true
47097         if we changed sth, defer EH cleanup to ...
47098         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
47099         (simplify_mult): New function.
47100
47101 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
47102
47103         PR middle-end/59917
47104         PR tree-optimization/59920
47105         * tree.c (build_common_builtin_nodes): Remove
47106         __builtin_setjmp_dispatcher initialization.
47107         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
47108         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
47109         instead of gsi_after_labels + manually skipping debug stmts.
47110         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
47111         ignore bbs with IFN_ABNORMAL_DISPATCHER.
47112         * tree-inline.c (copy_edges_for_bb): Remove
47113         can_make_abnormal_goto argument, instead add abnormal_goto_dest
47114         argument.  Ignore computed_goto_p stmts.  Don't call
47115         make_abnormal_goto_edges.  If a call might need abnormal edges
47116         for non-local gotos, see if it already has an edge to
47117         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
47118         with true argument, don't do anything then, otherwise add
47119         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
47120         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
47121         caller.
47122         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
47123         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
47124         (lower_stmt): Don't set data->calls_builtin_setjmp.
47125         (lower_builtin_setjmp): Adjust comment.
47126         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
47127         * tree-cfg.c (found_computed_goto): Remove.
47128         (factor_computed_gotos): Remove.
47129         (make_goto_expr_edges): Return bool, true for computed gotos.
47130         Don't call make_abnormal_goto_edges.
47131         (build_gimple_cfg): Don't set found_computed_goto, don't call
47132         factor_computed_gotos.
47133         (computed_goto_p): No longer static.
47134         (make_blocks): Don't set found_computed_goto.
47135         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
47136         (make_edges): If make_goto_expr_edges returns true, push bb
47137         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
47138         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
47139         vector.  Record mapping between bbs and OpenMP regions if there
47140         are any, adjust make_gimple_omp_edges caller.  Call
47141         handle_abnormal_edges.
47142         (make_abnormal_goto_edges): Remove.
47143         * tree-cfg.h (make_abnormal_goto_edges): Remove.
47144         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
47145         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
47146         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
47147         * internal-fn.def (ABNORMAL_DISPATCHER): New.
47148         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
47149         filling *region also set *region_idx to (*region)->entry->index.
47150
47151         PR other/58712
47152         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
47153         For REGs set ORIGINAL_REGNO.
47154
47155 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
47156
47157         * doc/md.texi: Mention that a target shouldn't implement
47158         vec_widen_(s|u)mul_even/odd pair if it is less efficient
47159         than hi/lo pair.
47160
47161 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
47162
47163         PR tree-optimization/59594
47164         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
47165         a copy of the datarefs vector rather than the vector itself.
47166
47167 2014-01-28  Jason Merrill  <jason@redhat.com>
47168
47169         PR c++/53756
47170         * dwarf2out.c (auto_die): New static.
47171         (gen_type_die_with_usage): Handle C++1y 'auto'.
47172         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
47173         on definition.
47174
47175 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
47176
47177         PR target/59672
47178         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
47179         (SPEC_X32): Likewise.
47180         (SPEC_64): Likewise.
47181         * config/i386/i386.c (ix86_option_override_internal): Turn off
47182         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
47183         for TARGET_16BIT.
47184         (x86_file_start): Output .code16gcc for TARGET_16BIT.
47185         * config/i386/i386.h (TARGET_16BIT): New macro.
47186         (TARGET_16BIT_P): Likewise.
47187         * config/i386/i386.opt: Add m16.
47188         * doc/invoke.texi: Document -m16.
47189
47190 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
47191
47192         PR preprocessor/59935
47193         * input.c (location_get_source_line): Bail out on when line number
47194         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
47195
47196 2014-01-28  Richard Biener  <rguenther@suse.de>
47197
47198         PR tree-optimization/58742
47199         * tree-ssa-forwprop.c (associate_plusminus): Handle
47200         pointer subtraction of the form (T)(P + A) - (T)P.
47201
47202 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47203
47204         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
47205         at const_int_cost.
47206
47207 2014-01-28  Richard Biener  <rguenther@suse.de>
47208
47209         Revert
47210         2014-01-28  Richard Biener  <rguenther@suse.de>
47211
47212         PR rtl-optimization/45364
47213         PR rtl-optimization/59890
47214         * var-tracking.c (local_get_addr_clear_given_value): Handle
47215         already cleared slot.
47216         (val_reset): Handle not allocated local_get_addr_cache.
47217         (vt_find_locations): Use post-order on the inverted CFG.
47218
47219 2014-01-28  Richard Biener  <rguenther@suse.de>
47220
47221         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
47222
47223 2014-01-28  Richard Biener  <rguenther@suse.de>
47224
47225         PR rtl-optimization/45364
47226         PR rtl-optimization/59890
47227         * var-tracking.c (local_get_addr_clear_given_value): Handle
47228         already cleared slot.
47229         (val_reset): Handle not allocated local_get_addr_cache.
47230         (vt_find_locations): Use post-order on the inverted CFG.
47231
47232 2014-01-28  Alan Modra  <amodra@gmail.com>
47233
47234         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
47235         * configure.ac <recursive call for build != host>: Define
47236         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
47237         and LD_FOR_BUILD too.
47238         * configure: Regenerate.
47239
47240 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
47241
47242         * config/i386/i386.c (get_builtin_code_for_version): Separate
47243         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
47244         Broadwell from Haswell.
47245
47246 2014-01-27  Steve Ellcey  <sellcey@mips.com>
47247
47248         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
47249         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
47250         * config/mips/mips.c (mips_option_override): Change setting
47251         of TARGET_DSP.
47252         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
47253         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
47254         Change from Mask to Var.
47255
47256 2014-01-27  Jeff Law  <law@redhat.com>
47257
47258         * ipa-inline.c (inline_small_functions): Fix typo.
47259
47260 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
47261
47262         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
47263         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
47264         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
47265         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
47266         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
47267         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
47268         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
47269         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
47270         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
47271         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
47272         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
47273         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
47274         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
47275         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
47276         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
47277         (_mm512_storeu_epi64): Ditto.
47278         (_mm512_cmpge_epi32_mask): Ditto.
47279         (_mm512_cmpge_epu32_mask): Ditto.
47280         (_mm512_cmpge_epi64_mask): Ditto.
47281         (_mm512_cmpge_epu64_mask): Ditto.
47282         (_mm512_cmple_epi32_mask): Ditto.
47283         (_mm512_cmple_epu32_mask): Ditto.
47284         (_mm512_cmple_epi64_mask): Ditto.
47285         (_mm512_cmple_epu64_mask): Ditto.
47286         (_mm512_cmplt_epi32_mask): Ditto.
47287         (_mm512_cmplt_epu32_mask): Ditto.
47288         (_mm512_cmplt_epi64_mask): Ditto.
47289         (_mm512_cmplt_epu64_mask): Ditto.
47290         (_mm512_cmpneq_epi32_mask): Ditto.
47291         (_mm512_cmpneq_epu32_mask): Ditto.
47292         (_mm512_cmpneq_epi64_mask): Ditto.
47293         (_mm512_cmpneq_epu64_mask): Ditto.
47294         (_mm512_expand_pd): Ditto.
47295         (_mm512_expand_ps): Ditto.
47296         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
47297         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
47298         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
47299         * config/i386/i386.c (ix86_builtins): Add
47300         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
47301         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
47302         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
47303         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
47304         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
47305         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
47306         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
47307         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
47308         IX86_BUILTIN_PMOVUSQW512_MEM.
47309         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
47310         __builtin_ia32_pmovsqd512mem_mask,
47311         __builtin_ia32_pmovqd512mem_mask,
47312         __builtin_ia32_pmovusqw512mem_mask,
47313         __builtin_ia32_pmovsqw512mem_mask,
47314         __builtin_ia32_pmovqw512mem_mask,
47315         __builtin_ia32_pmovusdw512mem_mask,
47316         __builtin_ia32_pmovsdw512mem_mask,
47317         __builtin_ia32_pmovdw512mem_mask,
47318         __builtin_ia32_pmovqb512mem_mask,
47319         __builtin_ia32_pmovusqb512mem_mask,
47320         __builtin_ia32_pmovsqb512mem_mask,
47321         __builtin_ia32_pmovusdb512mem_mask,
47322         __builtin_ia32_pmovsdb512mem_mask,
47323         __builtin_ia32_pmovdb512mem_mask.
47324         (bdesc_args): Add __builtin_ia32_expanddf512,
47325         __builtin_ia32_expandsf512.
47326         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
47327         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
47328         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
47329         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
47330         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
47331         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
47332         (avx512f_<code>v8div16qi2_mask_store): This.
47333         (avx512f_expand<mode>): New.
47334
47335 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
47336
47337         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
47338         New.
47339         (_mm512_mask_prefetch_i64gather_pd): Ditto.
47340         (_mm512_prefetch_i32scatter_pd): Ditto.
47341         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
47342         (_mm512_prefetch_i64scatter_pd): Ditto.
47343         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
47344         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
47345         (_mm512_mask_prefetch_i64gather_ps): Ditto.
47346         (_mm512_prefetch_i32scatter_ps): Ditto.
47347         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
47348         (_mm512_prefetch_i64scatter_ps): Ditto.
47349         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
47350         * config/i386/i386-builtin-types.def: Define
47351         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
47352         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
47353         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
47354         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
47355         IX86_BUILTIN_SCATTERPFQPD.
47356         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
47357         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
47358         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
47359         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
47360         __builtin_ia32_scatterpfqps.
47361         (ix86_expand_builtin): Expand new built-ins.
47362         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
47363         fix memory access data type.
47364         (*avx512pf_gatherpf<mode>_mask): Ditto.
47365         (*avx512pf_gatherpf<mode>): Ditto.
47366         (avx512pf_scatterpf<mode>): Ditto.
47367         (*avx512pf_scatterpf<mode>_mask): Ditto.
47368         (*avx512pf_scatterpf<mode>): Ditto.
47369         (GATHER_SCATTER_SF_MEM_MODE): New.
47370         (avx512pf_gatherpf<mode>df): Ditto.
47371         (*avx512pf_gatherpf<mode>df_mask): Ditto.
47372         (*avx512pf_scatterpf<mode>df): Ditto.
47373
47374 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
47375
47376         PR bootstrap/59934
47377         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
47378         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
47379         reached.
47380
47381 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
47382
47383         * common/config/arm/arm-common.c
47384         (arm_rewrite_mcpu): Handle multiple names.
47385         * config/arm/arm.h
47386         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
47387
47388 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
47389
47390         * gimple-builder.h (create_gimple_tmp): Delete.
47391
47392 2014-01-27  Christian Bruel  <christian.bruel@st.com>
47393
47394         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
47395         words comparisons.
47396
47397 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
47398
47399         * config/pa/pa.md (call): Generate indirect long calls to non-local
47400         functions when outputing 32-bit code.
47401         (call_value): Likewise except for special call to buggy powf function.
47402
47403         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
47404         portable runtime and PIC indirect calls.
47405         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
47406         and PIC call sequences.  Use ldo instead of blr to set return register
47407         in PIC call sequence.
47408
47409 2014-01-25  Walter Lee  <walt@tilera.com>
47410
47411         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
47412         avoid clobbering a live register.
47413
47414 2014-01-25  Walter Lee  <walt@tilera.com>
47415
47416         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
47417         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
47418         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
47419         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
47420
47421 2014-01-25  Walter Lee  <walt@tilera.com>
47422
47423         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
47424         arguments on even registers.
47425         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
47426         STACK_BOUNDARY.
47427         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
47428         (BIGGEST_ALIGNMENT): Ditto.
47429         (BIGGEST_FIELD_ALIGNMENT): Ditto.
47430
47431 2014-01-25  Walter Lee  <walt@tilera.com>
47432
47433         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
47434         insns before bundling.
47435         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
47436
47437 2014-01-25  Walter Lee  <walt@tilera.com>
47438
47439         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
47440         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
47441         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
47442
47443 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
47444
47445         * config/mips/constraints.md (kl): Delete.
47446         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
47447         define expands, using...
47448         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
47449         instructions for MIPS16.
47450         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
47451         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
47452
47453 2014-01-25  Walter Lee  <walt@tilera.com>
47454
47455         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
47456         (clzdi2): Ditto.
47457         (ffsdi2): Ditto.
47458
47459 2014-01-25  Walter Lee  <walt@tilera.com>
47460
47461         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
47462         (TARGET_EXPAND_TO_RTL_HOOK): Define.
47463
47464 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
47465
47466         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
47467         Handle XOR.
47468
47469 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
47470
47471         * print-rtl.c (in_call_function_usage): New var.
47472         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
47473         EXPR_LIST mode as mode and not as reg note name.
47474
47475         PR middle-end/59561
47476         * cfgloopmanip.c (copy_loop_info): If
47477         loop->warned_aggressive_loop_optimizations, make sure
47478         the flag is set in target loop too.
47479
47480 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
47481
47482         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
47483         flag_cilkplus.
47484         * builtins.def: Likewise.
47485         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
47486         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
47487         * ira.c (ira_setup_eliminable_regset): Likewise.
47488         * omp-low.c (gate_expand_omp): Likewise.
47489         (execute_lower_omp): Likewise.
47490         (diagnose_sb_0): Likewise.
47491         (gate_diagnose_omp_blocks): Likewise.
47492         (simd_clone_clauses_extract): Likewise.
47493         (gate): Likewise.
47494
47495 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47496
47497         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
47498         correction for little endian...
47499         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
47500         here.
47501
47502 2014-01-24  Jeff Law  <law@redhat.com>
47503
47504         PR tree-optimization/59919
47505         * tree-vrp.c (find_assert_locations_1): Do not register asserts
47506         for non-returning calls.
47507
47508 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
47509
47510         * common/config/aarch64/aarch64-common.c
47511         (aarch64_rewrite_mcpu): Handle multiple names.
47512         * config/aarch64/aarch64.h
47513         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
47514
47515 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
47516
47517         * input.c (add_file_to_cache_tab): Handle the case where fopen
47518         returns NULL.
47519
47520 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
47521
47522         PR target/59929
47523         * config/i386/i386.md (pushsf splitter): Get stack adjustment
47524         from push operand if code of push isn't PRE_DEC.
47525
47526 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
47527
47528         PR target/59909
47529         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
47530         -mquad-memory-atomic.  Update -mquad-memory documentation to say
47531         it is only used for non-atomic loads/stores.
47532
47533         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
47534         -mquad-memory or -mquad-memory-atomic switches.
47535
47536         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
47537         -mquad-memory-atomic to ISA 2.07 support.
47538
47539         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
47540         to separate support of normal quad word memory operations (ldq, stq)
47541         from the atomic quad word memory operations.
47542
47543         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
47544         support to separate non-atomic quad word operations from atomic
47545         quad word operations.  Disable non-atomic quad word operations in
47546         little endian mode so that we don't have to swap words after the
47547         load and before the store.
47548         (quad_load_store_p): Add comment about atomic quad word support.
47549         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
47550         options printed with -mdebug=reg.
47551
47552         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
47553         -mquad-memory-atomic as the test for whether we have quad word
47554         atomic instructions.
47555         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
47556         or -mp8-vector are used, allow byte/half-word atomic operations.
47557
47558         * config/rs6000/sync.md (load_lockedti): Insure that the address
47559         is a proper indexed or indirect address for the lqarx instruction.
47560         On little endian systems, swap the hi/lo registers after the lqarx
47561         instruction.
47562         (load_lockedpti): Use indexed_or_indirect_operand predicate to
47563         insure the address is valid for the lqarx instruction.
47564         (store_conditionalti): Insure that the address is a proper indexed
47565         or indirect address for the stqcrx. instruction.  On little endian
47566         systems, swap the hi/lo registers before doing the stqcrx.
47567         instruction.
47568         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
47569         insure the address is valid for the stqcrx. instruction.
47570
47571         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
47572         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
47573         type of quad memory support is available.
47574
47575 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
47576
47577         PR regression/59915
47578         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
47579         there is a danger of looping.
47580
47581 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
47582
47583         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
47584         force flag_ira_loop_pressure if set via command line.
47585
47586 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47587
47588         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
47589         (ashr_simd): New builtin handling DI mode.
47590         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
47591         (aarch64_sshr_simddi): New match pattern.
47592         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
47593         (vshrd_n_s64): Likewise.
47594         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
47595
47596 2014-01-23  Nick Clifton  <nickc@redhat.com>
47597
47598         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
47599         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
47600         favour of mcu specific scripts.
47601         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
47602         430x multilibs.
47603
47604 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
47605             Alex Velenko  <Alex.Velenko@arm.com>
47606
47607         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
47608         (vaddv_s16): Likewise.
47609         (vaddv_s32): Likewise.
47610         (vaddv_u8): Likewise.
47611         (vaddv_u16): Likewise.
47612         (vaddv_u32): Likewise.
47613         (vaddvq_s8): Likewise.
47614         (vaddvq_s16): Likewise.
47615         (vaddvq_s32): Likewise.
47616         (vaddvq_s64): Likewise.
47617         (vaddvq_u8): Likewise.
47618         (vaddvq_u16): Likewise.
47619         (vaddvq_u32): Likewise.
47620         (vaddvq_u64): Likewise.
47621         (vaddv_f32): Likewise.
47622         (vaddvq_f32): Likewise.
47623         (vaddvq_f64): Likewise.
47624         (vmaxv_f32): Likewise.
47625         (vmaxv_s8): Likewise.
47626         (vmaxv_s16): Likewise.
47627         (vmaxv_s32): Likewise.
47628         (vmaxv_u8): Likewise.
47629         (vmaxv_u16): Likewise.
47630         (vmaxv_u32): Likewise.
47631         (vmaxvq_f32): Likewise.
47632         (vmaxvq_f64): Likewise.
47633         (vmaxvq_s8): Likewise.
47634         (vmaxvq_s16): Likewise.
47635         (vmaxvq_s32): Likewise.
47636         (vmaxvq_u8): Likewise.
47637         (vmaxvq_u16): Likewise.
47638         (vmaxvq_u32): Likewise.
47639         (vmaxnmv_f32): Likewise.
47640         (vmaxnmvq_f32): Likewise.
47641         (vmaxnmvq_f64): Likewise.
47642         (vminv_f32): Likewise.
47643         (vminv_s8): Likewise.
47644         (vminv_s16): Likewise.
47645         (vminv_s32): Likewise.
47646         (vminv_u8): Likewise.
47647         (vminv_u16): Likewise.
47648         (vminv_u32): Likewise.
47649         (vminvq_f32): Likewise.
47650         (vminvq_f64): Likewise.
47651         (vminvq_s8): Likewise.
47652         (vminvq_s16): Likewise.
47653         (vminvq_s32): Likewise.
47654         (vminvq_u8): Likewise.
47655         (vminvq_u16): Likewise.
47656         (vminvq_u32): Likewise.
47657         (vminnmv_f32): Likewise.
47658         (vminnmvq_f32): Likewise.
47659         (vminnmvq_f64): Likewise.
47660
47661 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
47662
47663         * config/aarch64/aarch64-simd.md
47664         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
47665         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
47666         (*aarch64_mul3_elt<mode>): Likewise.
47667         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
47668         (*aarch64_mul3_elt_to_64v2df): Likewise.
47669         (*aarch64_mla_elt<mode>): Likewise.
47670         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
47671         (*aarch64_mls_elt<mode>): Likewise.
47672         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
47673         (*aarch64_fma4_elt<mode>): Likewise.
47674         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
47675         (*aarch64_fma4_elt_to_64v2df): Likewise.
47676         (*aarch64_fnma4_elt<mode>): Likewise.
47677         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
47678         (*aarch64_fnma4_elt_to_64v2df): Likewise.
47679         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
47680         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
47681         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47682         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47683         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
47684         (aarch64_sqdmull_lane<mode>_internal): Likewise.
47685         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
47686
47687 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47688
47689         * config/aarch64/aarch64-simd.md
47690         (aarch64_be_checked_get_lane<mode>): New define_expand.
47691         * config/aarch64/aarch64-simd-builtins.def
47692         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
47693         New builtin definition.
47694         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
47695         Use new safe be builtin.
47696
47697 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47698
47699         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
47700         New define_insn.
47701         (aarch64_be_st1<mode>): Likewise.
47702         (aarch_ld1<VALL:mode>): Define_expand modified.
47703         (aarch_st1<VALL:mode>): Likewise.
47704         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
47705         (UNSPEC_ST1): Likewise.
47706
47707 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
47708
47709         * config/microblaze/microblaze.md: Add trap insn and attribute
47710
47711 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
47712
47713         PR preprocessor/58580
47714         * input.h (location_get_source_line): Take an additional line_size
47715         parameter.
47716         (void diagnostics_file_cache_fini): Declare new function.
47717         * input.c (struct fcache): New type.
47718         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
47719         New static constants.
47720         (diagnostic_file_cache_init, total_lines_num)
47721         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
47722         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
47723         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
47724         (get_next_line, read_next_line, goto_next_line, read_line_num):
47725         New static function definitions.
47726         (diagnostic_file_cache_fini): New function.
47727         (location_get_source_line): Take an additional output line_len
47728         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
47729         read_line_num.
47730         * diagnostic.c (diagnostic_finish): Call
47731         diagnostic_file_cache_fini.
47732         (adjust_line): Take an additional input parameter for the length
47733         of the line, rather than calculating it with strlen.
47734         (diagnostic_show_locus): Adjust the use of
47735         location_get_source_line and adjust_line with respect to their new
47736         signature.  While displaying a line now, do not stop at the first
47737         null byte.  Rather, display the zero byte as a space and keep
47738         going until we reach the size of the line.
47739         * Makefile.in: Add vec.o to OBJS-libcommon
47740
47741 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47742             Ilya Tocar  <ilya.tocar@intel.com>
47743
47744         * config/i386/avx512fintrin.h (_mm512_kmov): New.
47745         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
47746         (__builtin_ia32_kmov16): Ditto.
47747         * config/i386/i386.md (UNSPEC_KMOV): New.
47748         (kmovw): Ditto.
47749
47750 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47751
47752         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
47753         (_mm512_storeu_si512): Ditto.
47754
47755 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
47756
47757         PR target/52125
47758         * rtl.h (get_referenced_operands): Declare.
47759         * recog.c (get_referenced_operands): New function.
47760         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
47761         operands have been referenced when recording LO_SUM references.
47762
47763 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
47764
47765         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
47766
47767 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47768
47769         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
47770         Enable for generic and recent AMD targets.
47771
47772 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47773
47774         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
47775         ARG_SIZE note when adjustment was eliminated.
47776
47777 2014-01-22  Jeff Law  <law@redhat.com>
47778
47779         PR tree-optimization/59597
47780         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
47781         in file.  Accept new argument REGISTERING and use it to modify
47782         dump output appropriately.
47783         (register_jump_thread): Corresponding changes.
47784         (mark_threaded_blocks): Reinstate code to cancel unprofitable
47785         thread paths involving joiner blocks.  Add code to dump cancelled
47786         jump threading paths.
47787
47788 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
47789
47790         PR rtl-optimization/59477
47791         * lra-constraints.c (inherit_in_ebb): Process call for living hard
47792         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
47793
47794 2014-01-22  Tom Tromey  <tromey@redhat.com>
47795
47796         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
47797         PARAMS.
47798         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
47799
47800 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47801
47802         PR rtl-optimization/59896
47803         * lra-constraints.c (process_alt_operands): Check unused note for
47804         matched operands of insn with no output reloads.
47805
47806 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
47807
47808         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
47809         (mips_move_from_gpr_cost): Likewise.
47810
47811 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47812
47813         PR rtl-optimization/59858
47814         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
47815         ira_class_hard_regs_num.
47816         (process_alt_operands): Increase reject for dying matched operand.
47817
47818 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
47819
47820         PR target/59003
47821         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
47822         smaller than size, perform several stores or loads and stores
47823         at dst + count - size to store or copy all of size bytes, rather
47824         than just last modesize bytes.
47825
47826 2014-01-20  DJ Delorie  <dj@redhat.com>
47827
47828         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
47829         that CLOBBERs are REGs before propogating their values.
47830
47831 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
47832
47833         PR middle-end/59789
47834         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47835         (cgraph_inline_failed_type): New function.
47836         * cgraph.h (DEFCIFCODE): Add type.
47837         (cgraph_inline_failed_type_t): New enum.
47838         (cgraph_inline_failed_type): New prototype.
47839         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47840         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47841         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47842         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47843         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47844         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47845         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47846         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47847         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47848         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47849         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47850         OPTIMIZATION_MISMATCH.
47851         * tree-inline.c (expand_call_inline): Emit errors during
47852         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47853
47854 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47855
47856         PR target/59685
47857         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47858         mode attribute in insn output.
47859
47860 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
47861
47862         * output.h (output_constant): Delete.
47863         * varasm.c (output_constant): Make private.
47864
47865 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
47866
47867         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47868
47869 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47870
47871         PR middle-end/59860
47872         * tree.h (fold_builtin_strcat): New prototype.
47873         * builtins.c (fold_builtin_strcat): No longer static.  Add len
47874         argument, if non-NULL, don't call c_strlen.  Optimize
47875         directly into __builtin_memcpy instead of __builtin_strcpy.
47876         (fold_builtin_2): Adjust fold_builtin_strcat caller.
47877         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47878
47879 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47880
47881         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47882         for SImode_address_operand operands, having only a REG argument.
47883
47884 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47885
47886         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47887         loader name using mbig-endian.
47888         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47889
47890 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47891
47892         * doc/invoke.texi (-march): Clarify documentation for AArch64.
47893         (-mtune): Likewise.
47894         (-mcpu): Likewise.
47895
47896 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
47897
47898         * config/aarch64/aarch64-protos.h
47899         (aarch64_cannot_change_mode_class_ptr): Declare.
47900         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47901         aarch64_cannot_change_mode_class_ptr): New.
47902         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47903         backend hook aarch64_cannot_change_mode_class.
47904
47905 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47906
47907         * common/config/aarch64/aarch64-common.c
47908         (aarch64_handle_option): Don't handle any option order logic here.
47909         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47910         selected_cpu, warn on architecture version mismatch.
47911         (aarch64_override_options): Fix parsing order for option strings.
47912
47913 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47914             Iain Sandoe  <iain@codesourcery.com>
47915
47916         PR bootstrap/59496
47917         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47918         warning.  Amend comment to reflect current functionality.
47919
47920 2014-01-20  Richard Biener  <rguenther@suse.de>
47921
47922         PR middle-end/59860
47923         * builtins.c (fold_builtin_strcat): Remove case better handled
47924         by tree-ssa-strlen.c.
47925
47926 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
47927
47928         * config/aarch64/aarch64.opt
47929         (mcpu, march, mtune): Make case-insensitive.
47930
47931 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47932
47933         PR target/59880
47934         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47935         if operands[1] is a REG or ZERO_EXTEND of a REG.
47936
47937 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
47938
47939         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47940
47941 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
47942
47943         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47944         long non-pic millicode calls.
47945
47946 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47947
47948         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47949
47950 2014-01-19  Kito Cheng  <kito@0xlab.org>
47951
47952         * builtins.c (expand_movstr): Check movstr expand done or fail.
47953
47954 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47955             H.J. Lu  <hongjiu.lu@intel.com>
47956
47957         PR target/59379
47958         * config/i386/i386.md (*lea<mode>): Zero-extend return register
47959         to DImode for zero-extended addresses.
47960
47961 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
47962
47963         PR rtl-optimization/57763
47964         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47965         on the new indirect jump_insn and increment LABEL_NUSES (label).
47966
47967 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
47968
47969         PR bootstrap/59580
47970         PR bootstrap/59583
47971         * config.gcc (x86_archs): New variable.
47972         (x86_64_archs): Likewise.
47973         (x86_cpus): Likewise.
47974         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47975         --with-arch/--with-cpu= options.
47976         Support --with-arch=/--with-cpu={nehalem,westmere,
47977         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47978
47979 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47980
47981         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47982         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
47983
47984 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47985
47986         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47987
47988 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
47989
47990         PR target/58944
47991         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47992         clear cpp_get_options (parse_in)->warn_unused_macros for
47993         ix86_target_macros_internal with cpp_define.
47994
47995 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
47996
47997         * jump.c (delete_related_insns): Keep (use (insn))s.
47998         * reorg.c (redundant_insn): Check for barriers too.
47999
48000 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
48001
48002         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
48003
48004 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
48005
48006         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
48007         call to $$dyncall when TARGET_LONG_CALLS is true.
48008
48009 2014-01-17  Jeff Law  <law@redhat.com>
48010
48011         * ree.c (combine_set_extension): Temporarily disable test for
48012         changing number of hard registers.
48013
48014 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
48015
48016         PR middle-end/58125
48017         * ipa-inline-analysis.c (inline_free_summary):
48018         Do not free summary of aliases.
48019
48020 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
48021
48022         PR middle-end/59706
48023         * gimplify.c (gimplify_expr): Use create_tmp_var
48024         instead of create_tmp_var_raw.  If cond doesn't have
48025         integral type, don't add the IFN_ANNOTATE builtin at all.
48026
48027 2014-01-17  Martin Jambor  <mjambor@suse.cz>
48028
48029         PR ipa/59736
48030         * ipa-cp.c (prev_edge_clone): New variable.
48031         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
48032         Also resize prev_edge_clone vector.
48033         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
48034         (ipcp_edge_removal_hook): New function.
48035         (ipcp_driver): Register ipcp_edge_removal_hook.
48036
48037 2014-01-17  Andrew Pinski  <apinski@cavium.com>
48038             Steve Ellcey  <sellcey@mips.com>
48039
48040         PR target/59462
48041         * config/mips/mips.c (mips_print_operand): Check operand mode instead
48042         of operator mode.
48043
48044 2014-01-17  Jeff Law  <law@redhat.com>
48045
48046         PR middle-end/57904
48047         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
48048         so that pass_ccp runs first.
48049
48050 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
48051
48052         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
48053         (ix86_adjust_cost): Use !TARGET_XXX.
48054         (do_reorder_for_imul): Likewise.
48055         (swap_top_of_ready_list): Likewise.
48056         (ix86_sched_reorder): Likewise.
48057
48058 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
48059
48060         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
48061         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
48062         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
48063         (intel_memset): New.  Duplicate slm_memset.
48064         (intel_cost): New.  Duplicate slm_cost.
48065         (m_INTEL): New macro.
48066         (processor_target_table): Add "intel".
48067         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
48068         with PROCESSOR_INTEL for "intel".
48069         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
48070         PROCESSOR_SILVERMONT.
48071         (ix86_issue_rate): Likewise.
48072         (ix86_adjust_cost): Likewise.
48073         (ia32_multipass_dfa_lookahead): Likewise.
48074         (swap_top_of_ready_list): Likewise.
48075         (ix86_sched_reorder): Likewise.
48076         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
48077         instead of TARGET_OPT_AGU.
48078         * config/i386/i386.h (TARGET_INTEL): New.
48079         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
48080         (processor_type): Add PROCESSOR_INTEL.
48081         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
48082         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
48083
48084 2014-01-17  Marek Polacek  <polacek@redhat.com>
48085
48086         PR c/58346
48087         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
48088         size is zero.
48089
48090 2014-01-17  Richard Biener  <rguenther@suse.de>
48091
48092         PR tree-optimization/46590
48093         * opts.c (default_options_table): Add entries for
48094         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
48095         all enabled at -O1 but not for -Og.
48096         * common.opt (fbranch-count-reg): Remove Init(1).
48097         (fmove-loop-invariants): Likewise.
48098         (ftree-pta): Likewise.
48099
48100 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
48101
48102         * config/i386/i386.c (ix86_data_alignment): For compatibility with
48103         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
48104         decls to at least the GCC 4.8 used alignments.
48105
48106         PR fortran/59440
48107         * tree-nested.c (convert_nonlocal_reference_stmt,
48108         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
48109         of GIMPLE_BIND stmts, adjust associated decls.
48110
48111 2014-01-17  Richard Biener  <rguenther@suse.de>
48112
48113         PR tree-optimization/46590
48114         * vec.h (vec<>::bseach): New member function implementing
48115         binary search according to C89 bsearch.
48116         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
48117         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
48118         bitmap pointer again.  Make accesses_in_loop a flat array.
48119         (mem_ref_obstack): New global.
48120         (outermost_indep_loop): Adjust for mem_ref->stored changes.
48121         (mark_ref_stored): Likewise.
48122         (ref_indep_loop_p_2): Likewise.
48123         (set_ref_stored_in_loop): New helper function.
48124         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
48125         (memref_free): Adjust.
48126         (record_mem_ref_loc): Simplify.
48127         (gather_mem_refs_stmt): Adjust.
48128         (sort_locs_in_loop_postorder_cmp): New function.
48129         (analyze_memory_references): Sort accesses_in_loop after
48130         loop postorder number.
48131         (find_ref_loc_in_loop_cmp): New function.
48132         (for_all_locs_in_loop): Find relevant cluster of locs in
48133         accesses_in_loop and iterate without recursion.
48134         (execute_sm): Avoid uninit warning.
48135         (struct ref_always_accessed): Simplify.
48136         (ref_always_accessed::operator ()): Likewise.
48137         (ref_always_accessed_p): Likewise.
48138         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
48139         loop postorder numbers here.
48140         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
48141         numbers.
48142
48143 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
48144
48145         PR c++/57945
48146         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
48147         on decls for which assemble_alias has been called.
48148
48149 2014-01-17  Nick Clifton  <nickc@redhat.com>
48150
48151         * config/msp430/msp430.opt: (mcpu): New option.
48152         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
48153         (msp430_option_override): Parse target_cpu.  If the MCU name
48154         matches a generic string, clear target_mcu.
48155         (msp430_attr): Allow numeric interrupt values up to 63.
48156         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
48157         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
48158         option.
48159         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
48160         Add mcpu matches.
48161         * config/msp430/msp430.md (popm): Use %J rather than %I.
48162         (addsi3): Use msp430_nonimmediate_operand for operand 2.
48163         (addhi_cy_i): Use immediate_operand for operand 2.
48164         * doc/invoke.texi: Document -mcpu option.
48165
48166 2014-01-17  Richard Biener  <rguenther@suse.de>
48167
48168         PR rtl-optimization/38518
48169         * df.h (df_analyze_loop): Declare.
48170         * df-core.c: Include cfgloop.h.
48171         (df_analyze_1): Split out main part of df_analyze.
48172         (df_analyze): Adjust.
48173         (loop_inverted_post_order_compute): New function.
48174         (loop_post_order_compute): Likewise.
48175         (df_analyze_loop): New function avoiding whole-function
48176         postorder computes.
48177         * loop-invariant.c (find_defs): Use df_analyze_loop.
48178         (find_invariants): Adjust.
48179         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
48180
48181 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
48182
48183         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
48184         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
48185
48186 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
48187
48188         * ipa-ref.c (ipa_remove_stmt_references): Fix references
48189         traversal when removing references.
48190
48191 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
48192
48193         PR ipa/59775
48194         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
48195
48196 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
48197
48198         PR middle-end/56791
48199         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
48200         pushing a reload for an autoinc when we had previously reloaded an
48201         inner part of the address.
48202
48203 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
48204
48205         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
48206         field.
48207         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
48208         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
48209         when not giving up or versioning for alias only because of
48210         loop->safelen.
48211         (vect_analyze_data_ref_dependences): Set to true.
48212         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
48213         is a GIMPLE_PHI.
48214         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
48215         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
48216         to the condition.
48217
48218         PR middle-end/58344
48219         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
48220
48221         PR target/59839
48222         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
48223         operand 0 predicate for gathers, use a new pseudo as subtarget.
48224
48225 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
48226
48227         PR middle-end/59609
48228         * lra-constraints.c (process_alt_operands): Add printing debug info.
48229         Check absence of input/output reloads for matched operands too.
48230
48231 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
48232
48233         PR rtl-optimization/59835
48234         * ira.c (ira_init_register_move_cost): Increase cost for
48235         impossible modes.
48236
48237 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
48238
48239         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
48240
48241 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
48242
48243         PR target/59780
48244         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
48245         non-register objects.  Use gen_(high/low)part more consistently.
48246         Fix assertions.
48247
48248 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
48249
48250         PR target/59844
48251         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
48252         endian support, remove tests for WORDS_BIG_ENDIAN.
48253         (p8_mfvsrd_3_<mode>): Likewise.
48254         (reload_gpr_from_vsx<mode>): Likewise.
48255         (reload_gpr_from_vsxsf): Likewise.
48256         (p8_mfvsrd_4_disf): Likewise.
48257
48258 2014-01-16  Richard Biener  <rguenther@suse.de>
48259
48260         PR rtl-optimization/46590
48261         * lcm.c (compute_antinout_edge): Use postorder iteration.
48262         (compute_laterin): Use inverted postorder iteration.
48263
48264 2014-01-16  Nick Clifton  <nickc@redhat.com>
48265
48266         PR middle-end/28865
48267         * varasm.c (output_constant): Return the number of bytes actually
48268         emitted.
48269         (output_constructor_array_range): Update the field size with the
48270         number of bytes emitted by output_constant.
48271         (output_constructor_regular_field): Likewise.  Also do not
48272         complain if the total number of bytes emitted is now greater
48273         than the expected fieldpos.
48274         * output.h (output_constant): Update prototype and descriptive comment.
48275
48276 2014-01-16  Marek Polacek  <polacek@redhat.com>
48277
48278         PR middle-end/59827
48279         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
48280         it is error_mark_node.
48281
48282 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
48283
48284         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
48285         VALID_AVX256_REG_OR_OI_MODE.
48286
48287 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
48288
48289         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
48290         current procedure should be profiled.
48291
48292 2014-01-15  Andrew Pinski  <apinski@cavium.com>
48293
48294         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
48295         of moving from/to the STACK_REG register class.
48296
48297 2014-01-15  Richard Henderson  <rth@redhat.com>
48298
48299         PR debug/54694
48300         * reginfo.c (global_regs_decl): Globalize.
48301         * rtl.h (global_regs_decl): Declare.
48302         * ira.c (do_reload): Diagnose frame_pointer_needed and it
48303         reserved via global_regs.
48304
48305 2014-01-15  Teresa Johnson  <tejohnson@google.com>
48306
48307         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
48308
48309 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
48310
48311         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
48312         and vmulosh rather than call gen_vec_widen_smult_*.
48313         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
48314         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
48315         (vec_widen_smult_even_v16qi): Likewise.
48316         (vec_widen_umult_even_v8hi): Likewise.
48317         (vec_widen_smult_even_v8hi): Likewise.
48318         (vec_widen_umult_odd_v16qi): Likewise.
48319         (vec_widen_smult_odd_v16qi): Likewise.
48320         (vec_widen_umult_odd_v8hi): Likewise.
48321         (vec_widen_smult_odd_v8hi): Likewise.
48322         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
48323         vmuloub rather than call gen_vec_widen_umult_*.
48324         (vec_widen_umult_lo_v16qi): Likewise.
48325         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
48326         vmulosb rather than call gen_vec_widen_smult_*.
48327         (vec_widen_smult_lo_v16qi): Likewise.
48328         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
48329         rather than call gen_vec_widen_umult_*.
48330         (vec_widen_umult_lo_v8hi): Likewise.
48331         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
48332         rather than call gen_vec_widen_smult_*.
48333         (vec_widen_smult_lo_v8hi): Likewise.
48334
48335 2014-01-15  Jeff Law  <law@redhat.com>
48336
48337         PR tree-optimization/59747
48338         * ree.c (find_and_remove_re): Properly handle case where a second
48339         eliminated extension requires widening a copy created for elimination
48340         of a prior extension.
48341         (combine_set_extension): Ensure that the number of hard regs needed
48342         for a destination register does not change when we widen it.
48343
48344 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
48345
48346         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
48347         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
48348         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
48349         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
48350         (avr-*-rtems*): Likewise.
48351         (bfin*-rtems*): Likewise.
48352         (moxie-*-rtems*): Likewise.
48353         (h8300-*-rtems*): Likewise.
48354         (i[34567]86-*-rtems*): Likewise.
48355         (lm32-*-rtems*): Likewise.
48356         (m32r-*-rtems*): Likewise.
48357         (m68k-*-rtems*): Likewise.
48358         (microblaze*-*-rtems*): Likewise.
48359         (mips*-*-rtems*): Likewise.
48360         (powerpc-*-rtems*): Likewise.
48361         (sh-*-rtems*): Likewise.
48362         (sparc-*-rtems*): Likewise.
48363         (sparc64-*-rtems*): Likewise.
48364         (v850-*-rtems*): Likewise.
48365         (m32c-*-rtems*): Likewise.
48366
48367 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
48368
48369         PR rtl-optimization/59511
48370         * ira.c (ira_init_register_move_cost): Use memory costs for some
48371         cases of register move cost calculations.
48372         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
48373         instead of BB frequency.
48374         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
48375         * lra-assigns.c (find_hard_regno_for): Ditto.
48376
48377 2014-01-15  Richard Biener  <rguenther@suse.de>
48378
48379         PR tree-optimization/59822
48380         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
48381         (vectorizable_load): Use it to hoist defs of uses of invariant
48382         loads out of the loop.
48383
48384 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
48385             Kugan Vivekanandarajah  <kuganv@linaro.org>
48386
48387         PR target/59695
48388         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
48389         truncation.
48390
48391 2014-01-15  Richard Biener  <rguenther@suse.de>
48392
48393         PR rtl-optimization/59802
48394         * lcm.c (compute_available): Use inverted postorder to seed
48395         the initial worklist.
48396
48397 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
48398
48399         PR target/59803
48400         * config/s390/s390.c (s390_preferred_reload_class): Don't return
48401         ADDR_REGS for invalid symrefs in non-PIC code.
48402
48403 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
48404
48405         PR other/58712
48406         * builtins.c (determine_block_size): Initialize *probable_max_size
48407         even if len_rtx is CONST_INT.
48408
48409 2014-01-14  Andrew Pinski  <apinski@cavium.com>
48410
48411         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
48412         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
48413         (cortexa53_tunings): Likewise.
48414         (aarch64_sched_issue_rate): New function.
48415         (TARGET_SCHED_ISSUE_RATE): Define.
48416
48417 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
48418
48419         * ira-costs.c (find_costs_and_classes): Add missed
48420         ira_init_register_move_cost_if_necessary.
48421
48422 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
48423
48424         PR target/59787
48425         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
48426
48427 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
48428
48429         PR target/59794
48430         * config/i386/i386.c (type_natural_mode): Add a bool parameter
48431         to indicate if type is used for function return value.  Warn ABI
48432         change if the vector mode isn't available for function return value.
48433         (ix86_function_arg_advance): Pass false to type_natural_mode.
48434         (ix86_function_arg): Likewise.
48435         (ix86_gimplify_va_arg): Likewise.
48436         (function_arg_32): Don't warn ABI change.
48437         (ix86_function_value): Pass true to type_natural_mode.
48438         (ix86_return_in_memory): Likewise.
48439         (ix86_struct_value_rtx): Removed.
48440         (TARGET_STRUCT_VALUE_RTX): Likewise.
48441
48442 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
48443
48444         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
48445         converting a conditional jump into a conditional return.
48446
48447 2014-01-14  Richard Biener  <rguenther@suse.de>
48448
48449         PR tree-optimization/58921
48450         PR tree-optimization/59006
48451         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
48452         hoisting invariant stmts.
48453         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
48454         invariant loads on the preheader edge if possible.
48455
48456 2014-01-14  Joey Ye  <joey.ye@arm.com>
48457
48458         * doc/plugin.texi (Building GCC plugins): Update to C++.
48459
48460 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
48461
48462         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
48463         (_mm_rcp28_round_ss): Ditto.
48464         (_mm_rsqrt28_round_sd): Ditto.
48465         (_mm_rsqrt28_round_ss): Ditto.
48466         (_mm_rcp28_sd): Ditto.
48467         (_mm_rcp28_ss): Ditto.
48468         (_mm_rsqrt28_sd): Ditto.
48469         (_mm_rsqrt28_ss): Ditto.
48470         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
48471         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
48472         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
48473         (IX86_BUILTIN_RCP28SD): Ditto.
48474         (IX86_BUILTIN_RCP28SS): Ditto.
48475         (IX86_BUILTIN_RSQRT28SD): Ditto.
48476         (IX86_BUILTIN_RSQRT28SS): Ditto.
48477         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
48478         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
48479         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
48480         (ix86_expand_special_args_builtin): Expand new FTYPE.
48481         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
48482         (srcp14<mode>): Make insn unary.
48483         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
48484         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
48485         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
48486         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
48487         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
48488         Fix rounding: make it SAE only.
48489         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
48490         Ditto.
48491         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
48492         Ditto.
48493         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
48494         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
48495         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
48496         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
48497         (round_saeonly_mask_scalar_operand4): Ditto.
48498         (round_saeonly_mask_scalar_op3): Ditto.
48499         (round_saeonly_mask_scalar_op4): Ditto.
48500
48501 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48502
48503         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
48504         Implement -maltivec=be for vec_insert and vec_extract.
48505
48506 2014-01-10  DJ Delorie  <dj@redhat.com>
48507
48508         * config/msp430/msp430.md (call_internal): Don't allow memory
48509         references with SP as the base register.
48510         (call_value_internal): Likewise.
48511         * config/msp430/constraints.md (Yc): New.  For memory references
48512         that don't use SP as a base register.
48513
48514         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
48515         "an integer without a # prefix"
48516         * config/msp430/msp430.md (epilogue_helper): Use it.
48517
48518 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
48519
48520         PR target/59617
48521         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
48522         AVX512F gather builtins.
48523         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
48524         on gather decls with INTEGER_TYPE masktype.
48525         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
48526         directly into the builtin rather than hoisting it before loop.
48527
48528         PR tree-optimization/59387
48529         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
48530         (scev_const_prop): If folded_casts and type has undefined overflow,
48531         use force_gimple_operand instead of force_gimple_operand_gsi and
48532         for each added stmt if it is assign with
48533         arith_code_with_undefined_signed_overflow, call
48534         rewrite_to_defined_overflow.
48535         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
48536         gimple-fold.h instead.
48537         (arith_code_with_undefined_signed_overflow,
48538         rewrite_to_defined_overflow): Moved to ...
48539         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
48540         rewrite_to_defined_overflow): ... here.  No longer static.
48541         Include gimplify-me.h.
48542         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
48543         rewrite_to_defined_overflow): New prototypes.
48544
48545 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48546
48547         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
48548
48549 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
48550
48551         * builtins.c (get_object_alignment_2): Minor tweak.
48552         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
48553
48554 2014-01-13  Christian Bruel  <christian.bruel@st.com>
48555
48556         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
48557         optimized non constant lengths.
48558
48559 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
48560
48561         PR libgomp/59194
48562         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
48563         load as __atomic_load_N if possible.
48564
48565 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
48566
48567         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
48568         target parameter.
48569         (rs6000_expand_builtin): Adjust call.
48570
48571 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
48572
48573         PR target/58115
48574         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
48575         * config/rs6000/rs6000.c: Include target-globals.h.
48576         (rs6000_set_current_function): Instead of doing target_reinit
48577         unconditionally, use save_target_globals_default_opts and
48578         restore_target_globals.
48579
48580         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
48581         FPSCR.
48582         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
48583         (rs6000_expand_builtin): Handle mffs and mtfsf.
48584         (rs6000_init_builtins): Define mffs and mtfsf.
48585         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
48586         (rs6000_mffs): New pattern.
48587         (rs6000_mtfsf): New pattern.
48588
48589 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
48590
48591         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
48592         Start narrowing with START.  Apply candidate-use pair
48593         and check overall cost in narrowing.
48594         (iv_ca_prune): Pass new argument.
48595
48596 2014-01-10  Jeff Law  <law@redhat.com>
48597
48598         PR middle-end/59743
48599         * ree.c (combine_reaching_defs): Ensure the defining statement
48600         occurs before the extension when optimizing extensions with
48601         different source and destination hard registers.
48602
48603 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
48604
48605         PR ipa/58585
48606         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
48607         vtables into the type inheritance graph.
48608
48609 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48610
48611         PR rtl-optimization/59754
48612         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
48613         modes in the REGNO != REGNO case.
48614
48615 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48616
48617         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
48618
48619 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48620
48621         PR tree-optimization/59745
48622         * tree-predcom.c (tree_predictive_commoning_loop): Call
48623         free_affine_expand_cache if giving up because components is NULL.
48624
48625         * target-globals.c (save_target_globals): Allocate < 4KB structs using
48626         GC in payload of target_globals struct instead of allocating them on
48627         the heap and the larger structs separately using GC.
48628         * target-globals.h (struct target_globals): Make regs, hard_regs,
48629         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
48630         of GTY((skip)) and change type to void *.
48631         (reset_target_globals): Cast loads from those fields to corresponding
48632         types.
48633
48634 2014-01-10  Steve Ellcey  <sellcey@mips.com>
48635
48636         PR plugins/59335
48637         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
48638         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
48639         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
48640
48641 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
48642
48643         PR target/59744
48644         * aarch64-modes.def (CC_Zmode): New flags mode.
48645         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
48646         represents an equality.
48647         (aarch64_get_condition_code): Handle CC_Zmode.
48648         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
48649
48650 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
48651
48652         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
48653         extraction in good case.
48654
48655 2014-01-10  Richard Biener  <rguenther@suse.de>
48656
48657         PR tree-optimization/59374
48658         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
48659         checking after SLP discovery.  Mark stmts not participating
48660         in any SLP instance properly.
48661
48662 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48663
48664         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
48665         when handling a SET rtx.
48666
48667 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48668
48669         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
48670         (cortex-a57): Likewise.
48671         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
48672
48673 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48674
48675         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
48676         non-iwmmxt builtins.
48677
48678 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
48679
48680         PR ipa/58252
48681         PR ipa/59226
48682         * ipa-devirt.c record_target_from_binfo): Take as argument
48683         stack of binfos and lookup matching one for virtual inheritance.
48684         (possible_polymorphic_call_targets_1): Update.
48685
48686 2014-01-10  Huacai Chen  <chenhc@lemote.com>
48687
48688         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
48689         kernel strings for Loongson-2E/2F/3A.
48690
48691 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48692
48693         PR middle-end/59670
48694         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
48695         is_gimple_call before calling gimple_call_internal_p.
48696
48697 2014-01-09  Steve Ellcey  <sellcey@mips.com>
48698
48699         * Makefile.in (TREE_FLOW_H): Remove.
48700         (TREE_SSA_H): Add file names from tree-flow.h.
48701         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
48702         * tree.h: Remove tree-flow.h reference.
48703         * hash-table.h: Remove tree-flow.h reference.
48704         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
48705         reference with tree-ssa-loop.h.
48706
48707 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48708
48709         * doc/invoke.texi: Add -maltivec={be,le} options, and document
48710         default element-order behavior for -maltivec.
48711         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
48712         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
48713         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
48714         when targeting big endian, at least for now.
48715         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
48716
48717 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48718
48719         PR middle-end/47735
48720         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
48721         var satisfies use_register_for_decl, just take into account type
48722         alignment, rather than decl alignment.
48723
48724         PR tree-optimization/59622
48725         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
48726         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
48727         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
48728         Don't devirtualize for inplace at all.  For targets.length () == 1,
48729         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
48730
48731 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48732
48733         * config/i386/i386.md (cpu): Remove the unused btver1.
48734
48735 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48736
48737         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
48738
48739 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48740
48741         PR target/58115
48742         * tree-core.h (struct target_globals): New forward declaration.
48743         (struct tree_target_option): Add globals field.
48744         * tree.h (TREE_TARGET_GLOBALS): Define.
48745         (prepare_target_option_nodes_for_pch): New prototype.
48746         * target-globals.h (struct target_globals): Define even if
48747         !SWITCHABLE_TARGET.
48748         * tree.c (prepare_target_option_node_for_pch,
48749         prepare_target_option_nodes_for_pch): New functions.
48750         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
48751         * config/i386/i386.c: Include target-globals.h.
48752         (ix86_set_current_function): Instead of doing target_reinit
48753         unconditionally, use save_target_globals_default_opts and
48754         restore_target_globals.
48755
48756 2014-01-09  Richard Biener  <rguenther@suse.de>
48757
48758         PR tree-optimization/59715
48759         * tree-cfg.h (split_critical_edges): Declare.
48760         * tree-cfg.c (split_critical_edges): Export.
48761         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
48762
48763 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
48764
48765         * cfgexpand.c (expand_stack_vars): Optionally disable
48766         asan stack protection.
48767         (expand_used_vars): Likewise.
48768         (partition_stack_vars): Likewise.
48769         * asan.c (asan_emit_stack_protection): Optionally disable
48770         after return stack usage.
48771         (instrument_derefs): Optionally disable memory access instrumentation.
48772         (instrument_builtin_call): Likewise.
48773         (instrument_strlen_call): Likewise.
48774         (asan_protect_global): Optionally disable global variables protection.
48775         * doc/invoke.texi: Added doc for new options.
48776         * params.def: Added new options.
48777         * params.h: Likewise.
48778
48779 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48780
48781         PR rtl-optimization/59724
48782         * ifcvt.c (cond_exec_process_if_block): Don't call
48783         flow_find_head_matching_sequence with 0 longest_match.
48784         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
48785         non-active insns if !stop_after.
48786         (try_head_merge_bb): Revert 2014-01-07 changes.
48787
48788 2014-01-08  Jeff Law  <law@redhat.com>
48789
48790         * ree.c (get_sub_rtx): New function, extracted from...
48791         (merge_def_and_ext): Here.
48792         (combine_reaching_defs): Use get_sub_rtx.
48793
48794 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
48795
48796         * cgraph.h (varpool_variable_node): Do not choke on null node.
48797
48798 2014-01-08  Catherine Moore  <clm@codesourcery.com>
48799
48800         * config/mips/mips.md (simple_return): Attempt to use JRC
48801         for microMIPS.
48802         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
48803
48804 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48805
48806         PR rtl-optimization/59137
48807         * reorg.c (steal_delay_list_from_target): Call update_block for
48808         elided insns.
48809         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
48810
48811 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48812
48813         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
48814         two duplicate entries.
48815
48816 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48817
48818         Revert:
48819         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
48820
48821         * config/mips/mips.c (mips_truncated_op_cost): New function.
48822         (mips_rtx_costs): Adjust test for BADDU.
48823         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
48824
48825         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
48826
48827         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
48828         (*baddu_si): ...this new pattern.
48829
48830 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48831
48832         PR ipa/59722
48833         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48834
48835 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
48836
48837         PR middle-end/57748
48838         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48839         inner_reference_p.
48840         (expand_expr, expand_normal): Adjust.
48841         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48842         inner_reference_p. Use inner_reference_p to expand inner references.
48843         (store_expr): Adjust.
48844         * cfgexpand.c (expand_call_stmt): Adjust.
48845
48846 2014-01-08  Rong Xu  <xur@google.com>
48847
48848         * gcov-io.c (gcov_var): Move from gcov-io.h.
48849         (gcov_position): Ditto.
48850         (gcov_is_error): Ditto.
48851         (gcov_rewrite): Ditto.
48852         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48853         only part to libgcc/libgcov.h.
48854
48855 2014-01-08  Marek Polacek  <polacek@redhat.com>
48856
48857         PR middle-end/59669
48858         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48859
48860 2014-01-08  Marek Polacek  <polacek@redhat.com>
48861
48862         PR sanitizer/59667
48863         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48864
48865 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48866
48867         PR rtl-optimization/59649
48868         * stor-layout.c (get_mode_bounds): For BImode return
48869         0 and STORE_FLAG_VALUE.
48870
48871 2014-01-08  Richard Biener  <rguenther@suse.de>
48872
48873         PR middle-end/59630
48874         * gimple.h (is_gimple_builtin_call): Remove.
48875         (gimple_builtin_call_types_compatible_p): New.
48876         (gimple_call_builtin_p): New overload.
48877         * gimple.c (is_gimple_builtin_call): Remove.
48878         (validate_call): Rename to ...
48879         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
48880         check return types.
48881         (validate_type): New static function.
48882         (gimple_call_builtin_p): New overload and adjust.
48883         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48884         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
48885         (gimple_fold_stmt_to_constant_1): Likewise.
48886         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48887
48888 2014-01-08  Richard Biener  <rguenther@suse.de>
48889
48890         PR middle-end/59471
48891         * gimplify.c (gimplify_expr): Gimplify register-register type
48892         VIEW_CONVERT_EXPRs to separate stmts.
48893
48894 2014-01-07  Jeff Law  <law@redhat.com>
48895
48896         PR middle-end/53623
48897         * ree.c (combine_set_extension): Handle case where source
48898         and destination registers in an extension insn are different.
48899         (combine_reaching_defs): Allow source and destination registers
48900         in extension to be different under limited circumstances.
48901         (add_removable_extension): Remove restriction that the
48902         source and destination registers in the extension are the same.
48903         (find_and_remove_re): Emit a copy from the extension's
48904         destination to its source after the defining insn if
48905         the source and destination registers are different.
48906
48907         PR middle-end/59285
48908         * ifcvt.c (merge_if_block): If we are merging a block with more than
48909         one successor with a block with no successors, remove any BARRIER
48910         after the second block.
48911
48912 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
48913
48914         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48915
48916 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
48917
48918         PR target/59652
48919         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48920         for 14-bit register offsets when INT14_OK_STRICT is false.
48921
48922 2014-01-07  Roland Stigge  <stigge@antcom.de>
48923             Michael Meissner  <meissner@linux.vnet.ibm.com>
48924
48925         PR 57386/target
48926         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48927         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
48928
48929 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
48930
48931         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48932         -mcpu.
48933
48934 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
48935
48936         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48937         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48938         rtx is const0_rtx or not.
48939
48940 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
48941
48942         PR target/58115
48943         * target-globals.c (save_target_globals): Remove this_fn_optab
48944         handling.
48945         * toplev.c: Include optabs.h.
48946         (target_reinit): Temporarily restore the global options if another
48947         set of options are in force.
48948
48949 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
48950
48951         PR rtl-optimization/58668
48952         * cfgcleanup.c (flow_find_cross_jump): Don't count
48953         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
48954         to determine what is counted.
48955         (flow_find_head_matching_sequence): Use active_insn_p to determine
48956         what is counted.
48957         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48958         counting change.
48959         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48960         determine what is counted.
48961
48962         PR tree-optimization/59643
48963         * tree-predcom.c (split_data_refs_to_components): If one dr is
48964         read and one write, determine_offset fails and the write isn't
48965         in the bad component, just put the read into the bad component.
48966
48967 2014-01-07  Mike Stump  <mikestump@comcast.net>
48968             Jakub Jelinek  <jakub@redhat.com>
48969
48970         PR pch/59436
48971         * tree-core.h (struct tree_optimization_option): Change optabs
48972         type from unsigned char * to void *.
48973         * optabs.c (init_tree_optimization_optabs): Adjust
48974         TREE_OPTIMIZATION_OPTABS initialization.
48975
48976 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
48977
48978         PR target/59644
48979         * config/i386/i386.h (struct machine_function): Add
48980         no_drap_save_restore field.
48981         * config/i386/i386.c (ix86_save_reg): Use
48982         !cfun->machine->no_drap_save_restore instead of
48983         crtl->stack_realign_needed.
48984         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48985         this function clears frame_pointer_needed.  Set
48986         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48987         and DRAP reg is needed.
48988
48989 2014-01-06  Marek Polacek  <polacek@redhat.com>
48990
48991         PR c/57773
48992         * doc/implement-c.texi: Mention that other integer types are
48993         permitted as bit-field types in strictly conforming mode.
48994
48995 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
48996
48997         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48998         is newly allocated.
48999
49000 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
49001
49002         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
49003
49004 2014-01-06  Martin Jambor  <mjambor@suse.cz>
49005
49006         PR ipa/59008
49007         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
49008         to int.
49009         * ipa-prop.c (ipa_print_node_params): Fix indentation.
49010
49011 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
49012
49013         PR debug/59350
49014         PR debug/59510
49015         * var-tracking.c (add_stores): Preserve the value of the source even if
49016         we don't record the store.
49017
49018 2014-01-06  Terry Guo  <terry.guo@arm.com>
49019
49020         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
49021
49022 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
49023
49024         PR bootstrap/59541
49025         * config/darwin.c (darwin_function_section): Adjust return values to
49026         correspond to optimisation changes made in r206070.
49027
49028 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
49029
49030         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
49031         from prefetch_block tune setting.
49032         (nocona_cost): Correct size of prefetch block to 64.
49033
49034 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
49035
49036         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
49037         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
49038         used to save the static chain register in the computation of the offset
49039         from which the FP registers need to be restored.
49040
49041 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
49042
49043         PR tree-optimization/59519
49044         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
49045         ICE if get_current_def (current_new_name) is already non-NULL, as long
49046         as it is a phi result of some other phi in *new_exit_bb that has
49047         the same argument.
49048
49049         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
49050         or vmovdqu* for misaligned_operand.
49051         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
49052         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
49053         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
49054         aligned_mem for AVX512F masked aligned load and store builtins and for
49055         non-temporal moves.
49056
49057 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
49058
49059         PR tree-optimization/59651
49060         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
49061         Address range for negative step should be added by TYPE_SIZE_UNIT.
49062
49063 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
49064
49065         * config/m68k/m68k.c (handle_move_double): Handle pushes with
49066         overlapping registers also for registers other than the stack pointer.
49067
49068 2014-01-03  Marek Polacek  <polacek@redhat.com>
49069
49070         PR other/59661
49071         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
49072         __builtin_FILE.
49073
49074 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
49075
49076         PR target/59625
49077         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
49078         asm goto as jump.
49079
49080         * config/i386/i386.md (MODE_SIZE): New mode attribute.
49081         (push splitter): Use <P:MODE_SIZE> instead of
49082         GET_MODE_SIZE (<P:MODE>mode).
49083         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
49084         (mov -1, reg peephole2): Likewise.
49085         * config/i386/sse.md (*mov<mode>_internal,
49086         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
49087         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
49088         *<code><mode>3, *andnot<mode>3<mask_name>,
49089         <mask_codefor><code><mode>3<mask_name>): Likewise.
49090         * config/i386/subst.md (mask_mode512bit_condition,
49091         sd_mask_mode512bit_condition): Likewise.
49092
49093 2014-01-02  Xinliang David Li  <davidxl@google.com>
49094
49095         PR tree-optimization/59303
49096         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
49097         (dump_predicates): Better output format.
49098         (pred_equal_p): New function.
49099         (is_neq_relop_p): Ditto.
49100         (is_neq_zero_form_p): Ditto.
49101         (pred_expr_equal_p): Ditto.
49102         (pred_neg_p): Ditto.
49103         (simplify_pred): Ditto.
49104         (simplify_preds_2): Ditto.
49105         (simplify_preds_3): Ditto.
49106         (simplify_preds_4): Ditto.
49107         (simplify_preds): Ditto.
49108         (push_pred): Ditto.
49109         (push_to_worklist): Ditto.
49110         (get_pred_info_from_cmp): Ditto.
49111         (is_degenerated_phi): Ditto.
49112         (normalize_one_pred_1): Ditto.
49113         (normalize_one_pred): Ditto.
49114         (normalize_one_pred_chain): Ditto.
49115         (normalize_preds): Ditto.
49116         (normalize_cond_1): Remove function.
49117         (normalize_cond): Ditto.
49118         (is_gcond_subset_of): Ditto.
49119         (is_subset_of_any): Ditto.
49120         (is_or_set_subset_of): Ditto.
49121         (is_and_set_subset_of): Ditto.
49122         (is_norm_cond_subset_of): Ditto.
49123         (pred_chain_length_cmp): Ditto.
49124         (convert_control_dep_chain_into_preds): Type change.
49125         (find_predicates): Ditto.
49126         (find_def_preds): Ditto.
49127         (destroy_predicates_vecs): Ditto.
49128         (find_matching_predicates_in_rest_chains): Ditto.
49129         (use_pred_not_overlap_with_undef_path_pred): Ditto.
49130         (is_pred_expr_subset): Ditto.
49131         (is_pred_chain_subset_of): Ditto.
49132         (is_included_in): Ditto.
49133         (is_superset_of): Ditto.
49134
49135 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
49136
49137         Update copyright years.
49138
49139 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
49140
49141         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
49142         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
49143         config/arc/arc.md, config/arc/arc.opt,
49144         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
49145         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
49146         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
49147         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
49148         config/linux-protos.h, config/linux.c, config/winnt-c.c,
49149         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
49150         vtable-verify.c, vtable-verify.h: Use the standard form for the
49151         copyright notice.
49152
49153 2014-01-02  Tobias Burnus  <burnus@net-b.de>
49154
49155         * gcc.c (process_command): Update copyright notice dates.
49156         * gcov-dump.c: Ditto.
49157         * gcov.c: Ditto.
49158         * doc/cpp.texi: Bump @copying's copyright year.
49159         * doc/cppinternals.texi: Ditto.
49160         * doc/gcc.texi: Ditto.
49161         * doc/gccint.texi: Ditto.
49162         * doc/gcov.texi: Ditto.
49163         * doc/install.texi: Ditto.
49164         * doc/invoke.texi: Ditto.
49165
49166 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
49167
49168         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
49169
49170 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
49171
49172         * config/i386/sse.md (*mov<mode>_internal): Guard
49173         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
49174
49175         PR rtl-optimization/59647
49176         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
49177         new_rtx into UNSIGNED_FLOAT rtxes.
49178 \f
49179 Copyright (C) 2014 Free Software Foundation, Inc.
49180
49181 Copying and distribution of this file, with or without modification,
49182 are permitted in any medium without royalty provided the copyright
49183 notice and this notice are preserved.