Add support for MIPS r3 and r5.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com> 
2
3         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
4         mips64r5.
5         * config/mips/mips-tables.opt: Regenerate.
6         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
7         to use mips_isa_rev rather than ISA_MIPS32R2.
8         * config/mips/mips.h (ISA_MIPS32R3): New define.
9         (ISA_MIPS32R5): New define.
10         (ISA_MIPS64R3): New define.
11         (ISA_MIPS64R5): New define.
12         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3, ISA_MIPS32R5,
13         ISA_MIPS64R3 and ISA_MIPS64R5.
14         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
15         and mips64r5.
16         (MIPS_ISA_SYNCI_SPEC): Likewise.
17         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
18         (LINK_SPEC): Added mips32r3 and mips32r5.
19         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
20         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
21         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
22         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
23         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
24         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
25         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
26
27 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
28
29         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
30         options.
31         * config/mips/mips.opt (mxpa): New option.
32         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the 
33         assembler.
34
35 2014-06-03  Martin Jambor  <mjambor@suse.cz>
36
37         PR ipa/61160
38         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
39         thunks.
40
41 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
42
43         PR tree-optimization/61328
44         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
45         initialization from find_bswap_or_nop_1.
46         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
47         in source_expr2 before using the size value the function sets. Also
48         make use of init_symbolic_number () in both the old place and
49         find_bswap_or_nop_load () to avoid reading uninitialized memory when
50         doing recursion in the GIMPLE_BINARY_RHS case.
51
52 2014-06-03  Richard Biener  <rguenther@suse.de>
53
54         PR tree-optimization/61383
55         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
56         stmts can't trap.
57
58 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
59
60         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
61         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
62         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
63         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
64         in this file.
65         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
66         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
67         * system.h: ...here and make it unconditional.
68         * target.def (conditional_register_usage): Mention
69         define_register_constraint instead of old-style constraint macros.
70         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
71         * doc/tm.texi: Regenerate.
72         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
73         protected by !USE_MD_CONSTRAINTS.
74         * config/frv/frv.md: Remove quote from old version of documentation.
75         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
76         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
77         CONST_DOUBLE_OK_FOR_LETTER.
78         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
79
80 2014-06-02  Andrew Pinski  <apinski@cavium.com>
81     
82         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
83         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
84         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
85         file whose name depends on -mabi= and -mbig-endian.
86         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
87         Handle LP64 better and handle ilp32 too.
88         (MULTILIB_OPTIONS): Delete.
89         (MULTILIB_DIRNAMES): Delete.
90
91 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
92
93         * expr.h: Remove prototypes of functions defined in builtins.c.
94         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
95         Remove prototypes of functions defined in builtins.c.
96         * builtins.h: Update prototype list to include all exported functions.
97         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
98         no_c99_libc_has_function): Move to targhooks.c
99         (build_string_literal, build_call_expr_loc_array,
100         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
101         to tree.c.
102         (expand_builtin_object_size, fold_builtin_object_size): Make static.
103         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
104         no_c99_libc_has_function): Relocate from builtins.c.
105         * tree.c: Include builtins.h.
106         (build_call_expr_loc_array, build_call_expr_loc_vec,
107         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
108         from builtins.c.
109         * fold-const.h (fold_fma): Move prototype to builtins.h.
110         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
111         * asan.c: Include builtins.h.
112         * cfgexpand.c: Likewise.
113         * convert.c: Likewise.
114         * emit-rtl.c: Likewise.
115         * except.c: Likewise.
116         * expr.c: Likewise.
117         * fold-const.c: Likewise.
118         * gimple-fold.c: Likewise.
119         * gimple-ssa-strength-reduction.c: Likewise.
120         * gimplify.c: Likewise.
121         * ipa-inline.c: Likewise.
122         * ipa-prop.c: Likewise.
123         * lto-streamer-out.c: Likewise.
124         * stmt.c: Likewise.
125         * tree-inline.c: Likewise.
126         * tree-object-size.c: Likewise.
127         * tree-sra.c: Likewise.
128         * tree-ssa-ccp.c: Likewise.
129         * tree-ssa-forwprop.c: Likewise.
130         * tree-ssa-loop-ivcanon.c: Likewise.
131         * tree-ssa-loop-ivopts.c: Likewise.
132         * tree-ssa-math-opts.c: Likewise.
133         * tree-ssa-reassoc.c: Likewise.
134         * tree-ssa-threadedge.c: Likewise.
135         * tree-streamer-in.c: Likewise.
136         * tree-vect-data-refs.c: Likewise.
137         * tree-vect-patterns.c: Likewise.
138         * tree-vect-stmts.c: Likewise.
139         * config/aarch64/aarch64.c: Likewise.
140         * config/alpha/alpha.c: Likewise.
141         * config/arc/arc.c: Likewise.
142         * config/arm/arm.c: Likewise.
143         * config/avr/avr.c: Likewise.
144         * config/bfin/bfin.c: Likewise.
145         * config/c6x/c6x.c: Likewise.
146         * config/cr16/cr16.c: Likewise.
147         * config/cris/cris.c: Likewise.
148         * config/epiphany/epiphany.c: Likewise.
149         * config/fr30/fr30.c: Likewise.
150         * config/frv/frv.c: Likewise.
151         * config/h8300/h8300.c: Likewise.
152         * config/i386/i386.c: Likewise.
153         * config/i386/winnt.c: Likewise.
154         * config/ia64/ia64.c: Likewise.
155         * config/iq2000/iq2000.c: Likewise.
156         * config/lm32/lm32.c: Likewise.
157         * config/m32c/m32c.c: Likewise.
158         * config/m32r/m32r.c: Likewise.
159         * config/m68k/m68k.c: Likewise.
160         * config/mcore/mcore.c: Likewise.
161         * config/mep/mep.c: Likewise.
162         * config/microblaze/microblaze.c: Likewise.
163         * config/mips/mips.c: Likewise.
164         * config/mmix/mmix.c: Likewise.
165         * config/mn10300/mn10300.c: Likewise.
166         * config/moxie/moxie.c: Likewise.
167         * config/msp430/msp430.c: Likewise.
168         * config/nds32/nds32.c: Likewise.
169         * config/pa/pa.c: Likewise.
170         * config/pdp11/pdp11.c: Likewise.
171         * config/picochip/picochip.c: Likewise.
172         * config/rl78/rl78.c: Likewise.
173         * config/rs6000/rs6000.c: Likewise.
174         * config/rx/rx.c: Likewise.
175         * config/s390/s390.c: Likewise.
176         * config/score/score.c: Likewise.
177         * config/sh/sh.c: Likewise.
178         * config/sparc/sparc.c: Likewise.
179         * config/spu/spu.c: Likewise.
180         * config/stormy16/stormy16.c: Likewise.
181         * config/tilegx/tilegx.c: Likewise.
182         * config/tilepro/tilepro.c: Likewise.
183         * config/v850/v850.c: Likewise.
184         * config/vax/vax.c: Likewise.
185         * config/xtensa/xtensa.c: Likewise.
186
187 2014-06-02  Jeff Law  <law@redhat.com>
188
189         PR rtl-optimization/61094
190         * ree.c (combine_reaching_defs): Do not reextend an insn if it
191         was marked as do_no_reextend.  If a copy is needed to eliminate
192         an extension, then mark it as do_not_reextend.
193
194 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
195
196         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
197
198 2014-06-02  Richard Henderson  <rth@redhat.com>
199
200         PR target/61336
201         * config/alpha/alpha.c (print_operand_address): Allow symbolic
202         addresses inside asms.  Use output_operand_lossage instead of
203         gcc_unreachable.
204
205 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
206
207         PR target/61239
208         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
209         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
210
211 2014-06-02  Tom de Vries  <tom@codesourcery.com>
212
213         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
214         case that x has VOIDmode.
215
216 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
217
218         * varasm.c (copy_constant): Delete function.
219         (build_constant_desc): Don't call it.
220
221 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
222
223         PR target/61154
224         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
225         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
226         with immediate_operand.
227
228 2014-06-02  Andreas Schwab  <schwab@suse.de>
229
230         * config/ia64/ia64.c
231         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
232         pending_data_specs first.
233
234 2014-06-02  Richard Biener  <rguenther@suse.de>
235
236         PR tree-optimization/61378
237         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
238         valueized_anything.
239
240 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
241
242         * config/i386/constraints.md (Bw): Rename from 'w'.
243         (Bz): Rename from 'z'.
244         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
245
246 2014-06-01  Kai Tietz  <ktietz@redhat.com>
247
248         PR target/61377
249         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
250         * config/i386/i386.md (sibcall_insn_operand): Use Bs
251         instead of m constraint.
252
253 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
254
255         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
256         a separate alternative where the scratch operand 2 is marked as
257         early clobber.
258
259 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
260
261         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
262         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
263         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
264         and __builtins_arm_get_fpscr.
265         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
266         __builtins_arm_get_fpscr.
267         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
268         __builtins_arm_ldfpscr.
269         (arm_atomic_assign_expand_fenv): New function.
270         * config/arm/vfp.md (set_fpscr): New pattern.
271         (get_fpscr) : Likewise.
272         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
273         VUNSPEC_SET_FPSCR.
274         * doc/extend.texi (AARCH64 Built-in Functions) : Document
275         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
276
277 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
278
279         * asan.c (report_error_func): Add SLOW_P argument, use
280         BUILT_IN_ASAN_*_N if set.
281         (build_check_stmt): Likewise.
282         (instrument_derefs): If T has insufficient alignment,
283         force same handling as for odd sizes.
284
285         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
286         BUILT_IN_ASAN_REPORT_STORE_N): New.
287         * asan.c (struct asan_mem_ref): Change access_size type to
288         HOST_WIDE_INT.
289         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
290         update_mem_ref_hash_table): Likewise.
291         (asan_mem_ref_hasher::hash): Hash in a HWI.
292         (report_error_func): Change size_in_bytes argument to HWI.
293         Use *_N builtins if size_in_bytes is larger than 16 or not power of
294         two.
295         (build_shadow_mem_access): New function.
296         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
297         Handle size_in_bytes not power of two or larger than 16.
298         (instrument_derefs): Don't give up if size_in_bytes is not
299         power of two or is larger than 16.
300
301 2014-05-30  Kai Tietz  <ktietz@redhat.com>
302
303         PR target/60104
304         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
305         for sibling-tail-calls.
306         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
307         to its use.
308         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
309         (sibcall_insn_operand): Add check for sibcall_memory_operand.
310
311 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
312
313         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
314         * config/avr/avr-tables.opt: Regenerate.
315         * config/avr/t-multilib: Regenerate.
316         * doc/avr-mmcu.texi: Regenerate.
317
318 2014-05-30  Ian Lance Taylor  <iant@google.com>
319
320         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
321         target("sse").
322
323 2014-05-30  Tom de Vries  <tom@codesourcery.com>
324
325         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
326         Redefine as true.
327
328 2014-05-30  Tom de Vries  <tom@codesourcery.com>
329
330         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
331         * lra.c (initialize_lra_reg_info_element): Add init of
332         actual_call_used_reg_set field.
333         (lra): Call lra_create_live_ranges before lra_inheritance for
334         -fuse-caller-save.
335         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
336         -fuse-caller-save.
337         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
338         instead of call_used_reg_set for -fuse-caller-save.
339         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
340
341 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
342
343         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
344         to mov_imm.
345         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
346
347 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
348
349         * ira.c (ira_get_dup_out_num): Check for output operands at
350         the start of the loop.  Handle cases where an included alternative
351         follows an excluded one.
352
353 2014-05-29  Mike Stump  <mikestump@comcast.net>
354
355         PR debug/61352
356         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
357         post ld passes when lto is used.
358
359 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
360
361         PR rtl-optimization/61325
362         * lra-constraints.c (process_address): Rename to process_address_1.
363         (process_address): New function.
364
365 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
366
367         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
368         TYPES_BINOPV): New static data.
369         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
370         New builtin.
371         * config/aarch64/aarch64-simd.md (aarch64_ext,
372         aarch64_im_lane_boundsi): New patterns.
373         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
374         patterns for EXT.
375         (aarch64_evpc_ext): New function.
376
377         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
378
379         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
380         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
381         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
382         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
383         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
384
385 2014-05-29  Tom de Vries  <tom@codesourcery.com>
386
387         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
388
389 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
390             Richard Sandiford  <rdsandiford@googlemail.com>
391
392         * arm/iterators.md (shiftable_ops): New code iterator.
393         (t2_binop0, arith_shift_insn): New code attributes.
394         * arm/predicates.md (shift_nomul_operator): New predicate.
395         * arm/arm.md (insn_enabled): Delete.
396         (enabled): Remove insn_enabled test.
397         (*arith_shiftsi): Delete.  Replace with ...
398         (*<arith_shift_insn>_multsi): ... new pattern.
399         (*<arith_shift_insn>_shiftsi): ... new pattern.
400         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
401
402 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
403             Tom de Vries  <tom@codesourcery.com>
404
405         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
406         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
407         clobber.
408         (mips_split_call): Use POST_CALL_TMP_REG.
409         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
410
411 2014-05-29  Tom de Vries  <tom@codesourcery.com>
412
413         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
414         with #ifdef STACK_REGS.
415
416 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
417
418         * varasm.c (get_variable_section): Walk aliases.
419         (place_block_symbol): Walk aliases.
420
421 2014-05-28  Tom de Vries  <tom@codesourcery.com>
422
423         Revert:
424         2014-05-28  Tom de Vries  <tom@codesourcery.com>
425
426         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
427         * lra.c (initialize_lra_reg_info_element): Add init of
428         actual_call_used_reg_set field.
429         (lra): Call lra_create_live_ranges before lra_inheritance for
430         -fuse-caller-save.
431         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
432         -fuse-caller-save.
433         * lra-constraints.c (need_for_call_save_p): Use
434         actual_call_used_reg_set instead of call_used_reg_set for
435         -fuse-caller-save.
436         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
437
438 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
439
440         * doc/md.texi: Document that the % constraint character must
441         be at the beginning of the string.
442         * genoutput.c (validate_insn_alternatives): Check that '=',
443         '+' and '%' only appear at the beginning of a constraint.
444         * ira.c (commutative_constraint_p): Delete.
445         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
446         at the start of the string.
447         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
448         duplicate '='s.
449         * config/arm/neon.md (bicdi3_neon): Likewise.
450         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
451         (slt_si, sltu_si): Likewise.
452         * config/vax/vax.md (sbcdi3): Likewise.
453         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
454         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
455         (mul64): Move '%' to beginning of constraint.
456         * config/arm/arm.md (*xordi3_insn): Likewise.
457         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
458         (xorsi3): Likewise.
459
460 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
461
462         * doc/md.texi: Document the restrictions on the "enabled" attribute.
463
464 2014-05-28  Jason Merrill  <jason@redhat.com>
465
466         PR c++/47202
467         * cgraph.h (symtab_node::get_comdat_group_id): New.
468         * cgraphunit.c (analyze_functions): Call it.
469         * symtab.c (dump_symtab_node): Likewise.
470         * tree.c (decl_comdat_group_id): New.
471         * tree.h: Declare it.
472         * lto-streamer-out.c (write_symbol): Use it.
473         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
474
475 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
476
477         PR bootstrap/PR61146
478         * wide-int.cc: Do not include longlong.h when compiling with clang.
479
480 2014-05-28  Richard Biener  <rguenther@suse.de>
481
482         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
483         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
484         (vrp_visit_assignment_or_call): Print less vertical space.
485         (vrp_visit_stmt): Likewise.
486         (vrp_visit_phi_node): Likewise.  For a PHI argument with
487         VR_VARYING range consider recording it as copy.
488
489 2014-05-28  Richard Biener  <rguenther@suse.de>
490
491         Revert
492         2014-05-28  Richard Biener  <rguenther@suse.de>
493
494         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
495
496 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
497
498         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
499         sufficiently aligned and an offset is used at the same time.
500         (expand_expr_real_1): Likewise.
501
502 2014-05-28  Richard Biener  <rguenther@suse.de>
503
504         PR middle-end/61045
505         * fold-const.c (fold_comparison): When folding
506         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
507         the sign of the remaining constant operand stays the same.
508
509 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
510
511         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
512         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
513         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
514         to the assembler.
515         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
516         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
517         (m32bit-doubles) Likewise.
518         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
519         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
520         option for RL78.
521
522 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
523
524         * configure.ac ($gcc_cv_ld_clearcap): New test.
525         * configure: Regenerate.
526         * config.in: Regenerate.
527         * config/sol2.opt (mclear-hwcap): New option.
528         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
529         * config/sol2-clearcap.map: Moved here from
530         testsuite/gcc.target/i386/clearcap.map.
531         * config/sol2-clearcapv2.map: Move here from
532         gcc.target/i386/clearcapv2.map.
533         * config/t-sol2 (install): Depend on install-clearcap-map.
534         (install-clearcap-map): New target.
535         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
536         -mclear-hwcap.
537
538 2014-05-28  Richard Biener  <rguenther@suse.de>
539
540         * hwint.h (*_HALF_WIDE_INT*): Move to ...
541         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
542         ... here and remove the rest.
543         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
544
545 2014-05-28  Richard Biener  <rguenther@suse.de>
546
547         PR tree-optimization/61335
548         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
549         new range fails, drop to varying.
550
551 2014-05-28  Tom de Vries  <tom@codesourcery.com>
552
553         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
554         * lra.c (initialize_lra_reg_info_element): Add init of
555         actual_call_used_reg_set field.
556         (lra): Call lra_create_live_ranges before lra_inheritance for
557         -fuse-caller-save.
558         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
559         -fuse-caller-save.
560         * lra-constraints.c (need_for_call_save_p): Use
561         actual_call_used_reg_set instead of call_used_reg_set for
562         -fuse-caller-save.
563         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
564
565 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
566             Tom de Vries  <tom@codesourcery.com>
567
568         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
569         to gccoptlist.
570         (@item -fuse-caller-save): New item.
571
572 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
573             Tom de Vries  <tom@codesourcery.com>
574
575         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
576         OPT_fuse_caller_save.
577
578 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
579             Tom de Vries  <tom@codesourcery.com>
580
581         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
582         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
583         get_call_reg_set_usage.
584         * resource.c (mark_set_resources, mark_target_live_regs): Use
585         get_call_reg_set_usage.
586         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
587         field.
588         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
589         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
590         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
591         * ira-build.c (ira_create_allocno): Init
592         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
593         (create_cap_allocno, propagate_allocno_info)
594         (propagate_some_info_from_allocno)
595         (copy_info_to_removed_store_destinations): Handle
596         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
597         * ira-costs.c (ira_tune_allocno_costs): Use
598         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
599
600 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
601             Tom de Vries  <tom@codesourcery.com>
602
603         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
604         and function_used_regs_valid fields.
605         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
606         find_all_hard_reg_sets.
607         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
608         (get_call_reg_set_usage): New function.
609         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
610         * regs.h (get_call_reg_set_usage): Declare.
611
612 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
613
614         PR libgcc/61152
615         * config/dbx.h (License): Add Runtime Library Exception.
616         * config/newlib-stdint.h (License): Same.
617         * config/rtems.h (License): Same
618         * config/initfini-array.h (License): Same
619         * config/v850/v850.h (License): Same.
620         * config/v850/v850-opts.h (License): Same
621         * config/v850/rtems.h (License): Same.
622
623 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
624
625         PR target/61044
626         * doc/extend.texi (Local Labels): Note that label differences are
627         not supported for AVR.
628
629 2014-05-27  Andrew Pinski  <apinski@cavium.com>
630
631         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
632         Use <w> for the register in assembly template.
633         (stack_protect_test): Use the mode of operands[0] for the result.
634         (stack_protect_test_<mode>): Use <w> for the register
635         in assembly template.
636
637 2014-05-27  DJ Delorie  <dj@redhat.com>
638
639         * config/rx/rx.c (add_vector_labels): New.
640         (rx_output_function_prologue): Call it.
641         (rx_handle_func_attribute): Don't require empty arguments.
642         (rx_handle_vector_attribute): New.
643         (rx_attribute_table): Add "vector" attribute.
644         * doc/extend.texi (interrupt, vector): Document new/changed
645         RX-specific attributes.
646
647         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
648
649 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
650
651         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
652         predicate to detect a negative quotient.
653
654 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
655
656         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
657         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
658         Add X - Y CMP 0 to X CMP Y transformation.
659         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
660
661 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
662
663         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
664         before printing.
665
666 2014-05-27  Steve Ellcey  <sellcey@mips.com>
667
668         * config/mips/mips.c: Add include of cgraph.h.
669
670 2014-05-27  Richard Biener  <rguenther@suse.de>
671
672         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
673
674 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
675
676         PR libgcc/61152
677         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
678         * config/arm/arm-cores.def (License): Same.
679         * config/arm/arm-opts.h (License): Same.
680         * config/arm/aout.h (License): Same.
681         * config/arm/bpabi.h (License): Same.
682         * config/arm/elf.h (License): Same.
683         * config/arm/linux-elf.h (License): Same.
684         * config/arm/linux-gas.h (License): Same.
685         * config/arm/netbsd-elf.h (License): Same.
686         * config/arm/uclinux-eabi.h (License): Same.
687         * config/arm/uclinux-elf.h (License): Same.
688         * config/arm/vxworks.h (License): Same.
689
690 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
691
692         * config/arm/neon.md (neon_bswap<mode>): New pattern.
693         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
694         (arm_init_neon_builtins): Handle NEON_BSWAP.
695         Define required type nodes.
696         (arm_expand_neon_builtin): Handle NEON_BSWAP.
697         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
698         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
699         * config/arm/iterators.md (VDQHSD): New mode iterator.
700
701 2014-05-27  Richard Biener  <rguenther@suse.de>
702
703         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
704         Try using literal operands when comparing value-ranges failed.
705
706 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
707
708         * ira.c (commutative_operand): Adjust for change to recog_data.
709         [Missing from previous commit.]
710
711 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
712
713         * system.h (TEST_BIT): New macro.
714         * recog.h (alternative_mask): New type.
715         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
716         (recog_data_d): Replace alternative_enabled_p array with
717         enabled_alternatives.
718         (target_recog): New structure.
719         (default_target_recog, this_target_recog): Declare.
720         (get_enabled_alternatives, recog_init): Likewise.
721         * recog.c (default_target_recog, this_target_recog): New variables.
722         (get_enabled_alternatives): New function.
723         (extract_insn): Use it.
724         (recog_init): New function.
725         (preprocess_constraints, constrain_operands): Adjust for change to
726         recog_data.
727         * postreload.c (reload_cse_simplify_operands): Likewise.
728         * reload.c (find_reloads): Likewise.
729         * ira-costs.c (record_reg_classes): Likewise.
730         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
731         all alternatives after a disabled one would be skipped.
732         (ira_implicitly_set_insn_hard_regs): Likewise.
733         * ira.c (ira_setup_alts): Adjust for change to recog_data.
734         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
735         with enabled_alternatives.
736         * lra.c (free_insn_recog_data): Update accordingly.
737         (lra_update_insn_recog_data): Likewise.
738         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
739         * lra-constraints.c (process_alt_operands): Likewise.  Handle
740         only_alternative as part of the enabled mask.
741         * target-globals.h (this_target_recog): Declare.
742         (target_globals): Add a recog field.
743         (restore_target_globals): Restore this_target_recog.
744         * target-globals.c: Include recog.h.
745         (default_target_globals): Initialize recog field.
746         (save_target_globals): Likewise.
747         * reginfo.c (reinit_regs): Call recog_init.
748         * toplev.c (backend_init_target): Likewise.
749
750 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
751
752         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
753         rather than any named insn's code.
754
755 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
756
757         PR libgcc/61152
758         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
759         * config/arm/arm-cores.def (License): Same.
760
761 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
762
763         * tree.h (decl_comdat_group): Declare.
764         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
765         * tree.c (decl_comdat_group): Here.
766
767 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
768
769         PR rtl-optimization/61222
770         * combine.c (simplify_shift_const_1): When moving a PLUS outside
771         the shift, truncate the PLUS operand to the result mode.
772
773 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
774
775         PR target/61271
776         * config/i386/i386.c (ix86_rtx_costs)
777         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
778         Fix condition.
779
780 2014-05-26  Martin Jambor  <mjambor@suse.cz>
781
782         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
783         subreg uses.
784
785 2014-05-26  Richard Biener  <rguenther@suse.de>
786
787         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
788         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
789         Provide specializations.
790         (wi::int_traits <HOST_WIDE_INT>,
791         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
792
793 2014-05-26  Alan Modra  <amodra@gmail.com>
794
795         PR target/61098
796         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
797         params and return a bool.  Remove dead code.  Update comment.
798         Assert we have a const_int source.  Remove bogus code from
799         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
800         handling of constants > 2G and reg_equal note, from..
801         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
802         return value.  Update comment.  If we can, use a new pseudo
803         for intermediate calculations.
804         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
805         prototype.
806         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
807         call to rs6000_emit_set_const in splitter.
808         (movdi_internal64+2, +3): Likewise.
809
810 2014-05-26  Richard Biener  <rguenther@suse.de>
811
812         * system.h: Define __STDC_FORMAT_MACROS before
813         including inttypes.h.
814         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
815         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
816         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
817         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
818         HOST_WIDEST_INT_C): Remove.
819         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
820         if C99 inttypes.h is not available.
821         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
822         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
823         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
824         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
825         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
826         (struct output_info): Likewise.
827         (print_statistics): Adjust.
828         (dump_bitmap_statistics): Likewise.
829         * bt-load.c (migrate_btr_defs): Print with PRId64.
830         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
831         (MAX_SAFE_MULTIPLIER): Adjust.
832         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
833         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
834         dump_cgraph_node): Likewise.
835         * final.c (dump_basic_block_info): Likewise.
836         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
837         * gcov.c (format_gcov): Likewise.
838         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
839         for calculation.
840         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
841         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
842         (inline_small_functions, dump_overall_stats, dump_inline_stats):
843         Use PRId64 for dumping.
844         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
845         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
846         (add_allocno_hard_regs): Adjust.
847         * loop-doloop.c (doloop_modify): Print using PRId64.
848         * loop-iv.c (inverse): Compute in uint64_t.
849         (determine_max_iter, iv_number_of_iterations): Likewise.
850         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
851         Print using PRId64.
852         * lto-streamer-out.c (write_symbol): Use uint64_t.
853         * mcf.c (CAP_INFINITY): Use int64_t maximum.
854         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
855         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
856         * modulo-sched.c (const_iteration_count): Use int64_t.
857         (sms_schedule): Dump using PRId64.
858         * predict.c (dump_prediction): Likewise.
859         * pretty-print.h (pp_widest_integer): Remove.
860         * profile.c (get_working_sets, is_edge_inconsistent,
861         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
862         * tree-pretty-print.c (pp_double_int): Remove case handling
863         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
864         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
865         and adjust users.
866         (pass_optimize_bswap::execute): Remove restriction on hosts.
867         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
868         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
869         * tree.c (widest_int_cst_value): Remove.
870         * tree.h (widest_int_cst_value): Likewise.
871         * value-prof.c (dump_histogram_value): Print using PRId64.
872         * gengtype.c (main): Also inject int64_t.
873         * ggc-page.c (struct max_alignment): Use int64_t.
874         * alloc-pool.c (struct allocation_object_def): Likewise.
875         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
876         for computation.
877         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
878         * doc/tm.texi: Regenerated.
879         * gengtype-lex.l (IWORD): Handle [u]int64_t.
880         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
881         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
882         mmix_output_register_setting): Use [u]int64_t in prototypes.
883         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
884         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
885         mmix_output_octa, mmix_output_shifted_value): Adjust.
886         (mmix_intval): Adjust.  Remove unreachable case.
887         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
888
889 2014-05-26  Richard Biener  <rguenther@suse.de>
890
891         * configure.ac: Drop __int64 type check.  Insist that we
892         found uint64_t and int64_t.
893         * hwint.h (HOST_BITS_PER___INT64): Remove.
894         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
895         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
896         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
897         (HOST_WIDEST_FAST_INT): Remove __int64 case.
898         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
899         for dst_q_src_df_rms_cdt.
900         * configure: Regenerate.
901         * config.in: Likewise.
902
903 2014-05-26  Michael Tautschnig  <mt@debian.org>
904
905         PR target/61249
906         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
907         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
908
909 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
910
911         PR rtl-optimization/61278
912         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
913
914 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
915
916         PR rtl-optimization/61220
917         Part of PR rtl-optimization/61225
918         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
919         insn; skip split_edge for a block with only one successor.
920
921 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
922
923         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
924         for variables.
925
926 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
927
928         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
929         (update_vtable_references): New function.
930         (function_and_variable_visibility): Rewrite also vtable initializers.
931         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
932
933 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
934
935         * ggc.h (ggc_grow): New function.
936         * ggc-none.c (ggc_grow): New function.
937         * ggc-page.c (ggc_grow): Likewise.
938
939 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
940
941         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
942         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
943         comdat_can_be_unshared_p, cgraph_externally_visible_p,
944         varpool_externally_visible_p, can_replace_by_local_alias,
945         update_visibility_by_resolution_info, function_and_variable_visibility,
946         pass_data_ipa_function_and_variable_visibility,
947         make_pass_ipa_function_and_variable_visibility,
948         whole_program_function_and_variable_visibility,
949         pass_data_ipa_whole_program_visibility,
950         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
951         * cgraph.h (cgraph_local_node_p): Declare.
952         * ipa-visibility.c: New file.
953         * Makefile.in (OBJS): Add ipa-visiblity.o
954
955 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
956
957         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
958         that var decl is available.
959
960 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
961
962         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
963         symtab_node pointer.
964         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
965         (find_decls_types_r): Do not walk COMDAT_GROUP.
966         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
967         * varasm.c (make_decl_one_only): Use set_comdat_group;
968         create node if needed.
969         * ipa-inline-transform.c (save_inline_function_body): Update
970         way we decl->symtab mapping.
971         * symtab.c (symtab_hash, hash_node, eq_node
972         symtab_insert_node_to_hashtable): Remove.
973         (symtab_register_node): Update.
974         (symtab_unregister_node): Update.
975         (symtab_get_node): Reimplement as inline function.
976         (symtab_add_to_same_comdat_group): Update.
977         (symtab_dissolve_same_comdat_group_list): Update.
978         (dump_symtab_base): Update.
979         (verify_symtab_base): Update.
980         (symtab_make_decl_local): Update.
981         (fixup_same_cpp_alias_visibility): Update.
982         (symtab_nonoverwritable_alias): Update.
983         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
984         * ipa.c (update_visibility_by_resolution_info): UPdate.
985         * bb-reorder.c: Include cgraph.h
986         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
987         with comdat groups.
988         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
989         * cgraph.c (cgraph_get_create_node): Update.
990         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
991         and comdat_group_.
992         (symtab_get_node): Make inline.
993         (symtab_insert_node_to_hashtable): Remove.
994         (symtab_can_be_discarded): Update.
995         (decl_comdat_group): New function.
996         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
997         Update.
998         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
999         comdat group name.
1000         (read_comdat_group): New function.
1001         (input_node, input_varpool_node): Use it.
1002         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
1003         comdat groups.
1004         * mips.c (mips_start_unique_function): Likewise.
1005         (ix86_code_end): Likewise.
1006         (rs6000_code_end): Likweise.
1007         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
1008
1009 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
1010
1011         * gengtype-state.c (fatal_reading_state): Bring offline.
1012         * optabs.c (widening_optab_handler): Bring offline.
1013         * optabs.h (widening_optab_handler): Likewise.
1014         * final.c (get_attr_length_1): Likewise.
1015
1016 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
1017
1018         * sched-int.h (sd_iterator_cond): Manually tail recurse.
1019
1020 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1021
1022         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
1023         (ppc440-compare): Include shift with dot.
1024         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
1025         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
1026         without dot.
1027         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
1028         without dot.
1029         (e6500_sfx2): Include it.
1030         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
1031         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
1032         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
1033         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
1034         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
1035         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
1036         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
1037         *lshiftrt_internal1le, *lshiftrt_internal1be,
1038         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
1039         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
1040         *rotldi3_internal10le, *rotldi3_internal10be,
1041         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
1042         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
1043         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
1044         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
1045         define_insns): Use type "shift" in the appropriate alternatives.
1046
1047 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1048
1049         * config/rs6000/rs6000.md (type): Add "logical".  Delete
1050         "fast_compare".
1051         (dot): Adjust comment.
1052         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
1053         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
1054         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
1055         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
1056         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
1057         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
1058         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
1059         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
1060
1061         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
1062         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
1063         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
1064         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
1065         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
1066         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
1067         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
1068         * config/rs6000/8540.md (ppc8540_su): Adjust.
1069         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
1070         cell-cmp-microcoded): Adjust.
1071         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
1072         * config/rs6000/e500mc.md (e500mc_su): Adjust.
1073         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
1074         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
1075         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
1076         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
1077         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
1078         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
1079         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
1080         Adjust.
1081         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
1082         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
1083         Adjust.  Adjust comment.
1084         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
1085         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
1086
1087 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1088
1089         * config/rs6000/rs6000.md (type): Add "add".
1090         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
1091         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
1092         define_insns): Use it.
1093         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
1094
1095         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
1096         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
1097         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
1098         * config/rs6000/601.md (ppc601-integer): Adjust.
1099         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
1100         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
1101         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
1102         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
1103         * config/rs6000/8540.md (ppc8540_su): Adjust.
1104         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
1105         cell-cmp-microcoded): Adjust.
1106         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
1107         * config/rs6000/e500mc.md (e500mc_su): Adjust.
1108         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
1109         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
1110         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
1111         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
1112         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
1113         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
1114         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
1115         Adjust.
1116         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
1117         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
1118         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
1119         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
1120
1121 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1122
1123         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
1124         "delayed_compare", "var_delayed_compare".
1125         (var_shift): New attribute.
1126         (cell_micro): Adjust.
1127         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
1128         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
1129         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
1130         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
1131         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
1132         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
1133         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
1134         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
1135         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
1136         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
1137         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
1138         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
1139         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
1140         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
1141         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
1142         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
1143         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
1144         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
1145         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
1146         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
1147         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
1148         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
1149         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
1150         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
1151         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
1152
1153         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
1154         * config/rs6000/440.md (ppc440-integer): Adjust.
1155         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
1156         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
1157         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
1158         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
1159         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
1160         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
1161         * config/rs6000/8540.md (ppc8540_su): Adjust.
1162         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
1163         cell-cmp-microcoded): Adjust.
1164         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
1165         * config/rs6000/e500mc.md (e500mc_su): Adjust.
1166         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
1167         e500mc64_delayed): Adjust.
1168         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
1169         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
1170         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
1171         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
1172         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
1173         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
1174         power6-delayed-compare, power6-var-delayed-compare): Adjust.
1175         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
1176         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
1177         Adjust comment.
1178         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
1179         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
1180
1181 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1182
1183         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
1184         (bits): New mode_attr.
1185         (idiv_ldiv): Delete mode_attr.
1186         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
1187         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
1188         rs6000_adjust_priority, is_nonpipeline_insn,
1189         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
1190
1191         * config/rs6000/40x.md (ppc403-idiv): Adjust.
1192         * config/rs6000/440.md (ppc440-idiv): Adjust.
1193         * config/rs6000/476.md (ppc476-idiv): Adjust.
1194         * config/rs6000/601.md (ppc601-idiv): Adjust.
1195         * config/rs6000/603.md (ppc603-idiv): Adjust.
1196         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
1197         ppc620-ldiv): Adjust.
1198         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
1199         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
1200         * config/rs6000/8540.md (ppc8540_divide): Adjust.
1201         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
1202         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
1203         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
1204         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
1205         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
1206         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
1207         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
1208         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
1209         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
1210         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
1211         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
1212         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
1213         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
1214         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
1215         * config/rs6000/titan.md (titan_fxu_div): Adjust.
1216
1217 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1218
1219         * config/rs6000/rs6000.md (type): Delete "insert_word",
1220         "insert_dword".  Add "insert".
1221         (size): Update comment.
1222         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
1223         insn_must_be_first_in_group): Adjust.
1224         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
1225         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
1226         *insvsi_internal6, insvdi_internal): Adjust.
1227
1228         * config/rs6000/40x.md (ppc403-integer): Adjust.
1229         * config/rs6000/440.md (ppc440-integer): Adjust.
1230         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
1231         * config/rs6000/601.md (ppc601-integer): Adjust.
1232         * config/rs6000/603.md (ppc603-integer): Adjust.
1233         * config/rs6000/6xx.md (ppc604-integer): Adjust.
1234         * config/rs6000/7450.md (ppc7450-integer): Adjust.
1235         * config/rs6000/7xx.md (ppc750-integer): Adjust.
1236         * config/rs6000/8540.md (ppc8540_su): Adjust.
1237         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
1238         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
1239         * config/rs6000/e500mc.md (e500mc_su): Adjust.
1240         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
1241         * config/rs6000/e5500.md (e5500_sfx): Adjust.
1242         * config/rs6000/e6500.md (e6500_sfx): Adjust.
1243         * config/rs6000/mpc.md (mpccore-integer): Adjust.
1244         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
1245         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
1246         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
1247         * config/rs6000/power7.md (power7-integer): Adjust.
1248         * config/rs6000/power8.md (power8-1cyc): Adjust.
1249         * config/rs6000/rs64.md (rs64a-integer): Adjust.
1250         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
1251
1252 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1253
1254         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
1255         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
1256         (size): New attribute.
1257         (dot): New attribute.
1258         (cell_micro): Adjust.
1259         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
1260         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
1261         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
1262         umuldi3_highpart): Adjust.
1263         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
1264         rs6000_adjust_priority, is_nonpipeline_insn,
1265         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
1266
1267         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
1268         ppc405-imul3): Adjust.
1269         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
1270         * config/rs6000/476.md (ppc476-imul): Adjust.
1271         * config/rs6000/601.md (ppc601-imul): Adjust.
1272         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
1273         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
1274         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
1275         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
1276         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
1277         Adjust.
1278         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
1279         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
1280         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
1281         cell-imul): Adjust.
1282         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
1283         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
1284         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
1285         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
1286         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
1287         * config/rs6000/mpc.md (mpccore-imul): Adjust.
1288         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
1289         power4-lmul, power4-imul, power4-imul3): Adjust.
1290         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
1291         power5-lmul, power5-imul, power5-imul3): Adjust.
1292         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
1293         power6-lmul, power6-imul, power6-imul3): Adjust.
1294         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
1295         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
1296
1297         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
1298         rs64a-lmul): Adjust.
1299         * config/rs6000/titan.md (titan_imul): Adjust.
1300
1301 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1302
1303         * config/rs6000/rs6000.md (type): Add new value "halfmul".
1304         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
1305         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
1306         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
1307         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
1308         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
1309         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
1310         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
1311         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
1312         * config/rs6000/titan.md: Delete nonsensical comment.
1313         (titan_imul): Add type imul3.
1314         (titan_mulhw): Remove type imul3; add type halfmul.
1315
1316 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
1317
1318         * config/rs6000/rs6000.md (type): Reorder, reformat.
1319
1320 2014-05-23  Martin Jambor  <mjambor@suse.cz>
1321
1322         PR tree-optimization/53787
1323         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
1324         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
1325         analysis_done, update all uses.
1326         * ipa-prop.c: Include domwalk.h
1327         (param_analysis_info): Removed.
1328         (param_aa_status): New type.
1329         (ipa_bb_info): Likewise.
1330         (func_body_info): Likewise.
1331         (ipa_get_bb_info): New function.
1332         (aa_overwalked): Likewise.
1333         (find_dominating_aa_status): Likewise.
1334         (parm_bb_aa_status_for_bb): Likewise.
1335         (parm_preserved_before_stmt_p): Changed to use new param AA info.
1336         (load_from_unmodified_param): Accept func_body_info as a parameter
1337         instead of parms_ainfo.
1338         (parm_ref_data_preserved_p): Changed to use new param AA info.
1339         (parm_ref_data_pass_through_p): Likewise.
1340         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
1341         (compute_complex_assign_jump_func): Changed to use new param AA info.
1342         (compute_complex_ancestor_jump_func): Likewise.
1343         (ipa_compute_jump_functions_for_edge): Likewise.
1344         (ipa_compute_jump_functions): Removed.
1345         (ipa_compute_jump_functions_for_bb): New function.
1346         (ipa_analyze_indirect_call_uses): Likewise, moved variable
1347         declarations down.
1348         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
1349         and info, moved variable declarations down.
1350         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
1351         node and info.
1352         (ipa_analyze_stmt_uses): Likewise.
1353         (ipa_analyze_params_uses): Removed.
1354         (ipa_analyze_params_uses_in_bb): New function.
1355         (ipa_analyze_controlled_uses): Likewise.
1356         (free_ipa_bb_info): Likewise.
1357         (analysis_dom_walker): New class.
1358         (ipa_analyze_node): Handle node-specific forbidden analysis,
1359         initialize and free func_body_info, use dominator walker.
1360         (ipcp_modif_dom_walker): New class.
1361         (ipcp_transform_function): Create and free func_body_info, use
1362         ipcp_modif_dom_walker, moved a lot of functionality there.
1363
1364 2014-05-23  Marek Polacek  <polacek@redhat.com>
1365             Jakub Jelinek  <jakub@redhat.com>
1366
1367         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
1368         * gcc.c (sanitize_spec_function): Likewise.
1369         * convert.c (convert_to_integer): Include "ubsan.h".  Add
1370         floating-point to integer instrumentation.
1371         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
1372         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
1373         SANITIZE_NONDEFAULT.
1374         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
1375         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
1376         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
1377         * ubsan.c: Include "realmpfr.h" and "dfp.h".
1378         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
1379         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
1380         float/double/long double.
1381         (ubsan_instrument_float_cast): New function.
1382         * ubsan.h (ubsan_instrument_float_cast): Declare.
1383
1384 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
1385
1386         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
1387         predicate.
1388         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
1389         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
1390         Adjust for tailcalling through registers.
1391         * config/aarch64/aarch64.h (enum reg_class): New caller save
1392         register class.
1393         (REG_CLASS_NAMES): Likewise.
1394         (REG_CLASS_CONTENTS): Likewise.
1395         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
1396         Allow tailcalling without decls.
1397
1398 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
1399
1400         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
1401         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
1402
1403         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
1404         gsi, and variables v_* to v*.
1405
1406 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1407
1408         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
1409
1410 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
1411
1412         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
1413         * omp-low.c: Update accordingly.
1414
1415         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
1416         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
1417         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
1418         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
1419         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
1420         GF_OMP_TARGET_KIND_UPDATE.
1421
1422         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
1423         Explicitly enumerate the expected region types.
1424
1425 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
1426
1427         PR other/56955
1428         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
1429         documentation; the old documentation didn't clearly state the
1430         constraints on the contents of the pointed-to storage.
1431
1432 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1433
1434         Fix bootstrap error on ia64
1435         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
1436         Return default value.
1437
1438 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1439
1440         PR tree-optimization/54733
1441         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
1442         (CMPNOP): Define.
1443         (find_bswap_or_nop_load): New.
1444         (find_bswap_1): Renamed to ...
1445         (find_bswap_or_nop_1): This. Also add support for memory source.
1446         (find_bswap): Renamed to ...
1447         (find_bswap_or_nop): This. Also add support for memory source and
1448         detection of bitwise operations equivalent to load in host endianness.
1449         (execute_optimize_bswap): Likewise. Also move its leading comment back
1450         in place and split statement transformation into ...
1451         (bswap_replace): This.
1452
1453 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
1454
1455         PR rtl-optimization/61215
1456         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
1457         simplify_gen_subreg until final substitution.
1458
1459 2014-05-23  Alan Modra  <amodra@gmail.com>
1460
1461         PR target/61231
1462         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
1463         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
1464         Use "Y" constraint rather than "m".
1465
1466 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1467
1468         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
1469         define.
1470         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
1471         New function declaration.
1472         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
1473         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
1474         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
1475         (aarch64_init_builtins) : Initialize builtins
1476         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
1477         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
1478         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
1479         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
1480         and __builtins_aarch64_set_fpsr.
1481         (aarch64_atomic_assign_expand_fenv): New function.
1482         * config/aarch64/aarch64.md (set_fpcr): New pattern.
1483         (get_fpcr) : Likewise.
1484         (set_fpsr) : Likewise.
1485         (get_fpsr) : Likewise.
1486         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
1487          and UNSPECV_SET_FPSR.
1488         * doc/extend.texi (AARCH64 Built-in Functions) : Document
1489         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
1490         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
1491
1492 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
1493
1494         PR rtl-optimization/60969
1495         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
1496         constraints.  Set up mem cost for NO_REGS case.
1497
1498 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
1499
1500         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1501
1502 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
1503
1504         * config/darwin.c: Include "lto-section-names.h".
1505         (LTO_SEGMENT_NAME): Don't define.
1506         * config/i386/winnt.c: Include "lto-section-names.h".
1507         * lto-streamer.c: Include "lto-section-names.h".
1508         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
1509         * lto-wrapper.c: Include "lto-section-names.h".
1510         (LTO_SECTION_NAME_PREFIX): Don't define.
1511         * lto-section-names.h: New file.
1512         * cgraphunit.c: Include "lto-section-names.h".
1513
1514 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
1515
1516         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
1517
1518 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
1519
1520         PR target/61208
1521         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
1522
1523 2014-05-22  Nick Clifton  <nickc@redhat.com>
1524
1525         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
1526
1527 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
1528
1529         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
1530         -> (T)A transformation to integer types.
1531
1532 2014-05-22  Teresa Johnson  <tejohnson@google.com>
1533
1534         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
1535         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
1536         (gcov_rewrite): Use gcov_nonruntime_assert.
1537         (gcov_open): Ditto.
1538         (gcov_write_words): Ditto.
1539         (gcov_write_length): Ditto.
1540         (gcov_read_words): Use gcov_nonruntime_assert, and remove
1541         gcc_assert from IN_LIBGCOV code.
1542         (gcov_read_summary): Use gcov_error to flag profile corruption.
1543         (gcov_sync): Use gcov_nonruntime_assert.
1544         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
1545         (gcov_histo_index): Use gcov_nonruntime_assert.
1546         (static void gcov_histogram_merge): Ditto.
1547         (compute_working_sets): Ditto.
1548         * gcov-io.h (gcov_nonruntime_assert): Define.
1549         (gcov_error): Define for !IN_LIBGCOV
1550
1551 2014-05-22  Richard Biener  <rguenther@suse.de>
1552
1553         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1554         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
1555         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
1556         and deallocation site.
1557         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1558         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
1559         passing through the incoming points-to set.
1560         (handle_lhs_call): Use flags argument instead of recomputing it.
1561         (find_func_aliases_for_call): Call handle_lhs_call with proper
1562         call return flags.
1563
1564 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
1565
1566         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
1567         all padding bits in REAL_VALUE_TYPE are cleared.
1568
1569 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1570
1571         Cleanup and improve multipass_dfa_lookahead_guard
1572         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
1573         (core2i7_first_cycle_multipass_begin,)
1574         (core2i7_first_cycle_multipass_issue,)
1575         (core2i7_first_cycle_multipass_backtrack): Update signature.
1576         * config/ia64/ia64.c
1577         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
1578         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
1579         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
1580         hook definition.
1581         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
1582         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
1583         values.
1584         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
1585         return values.
1586         * doc/tm.texi: Regenerate.
1587         * doc/tm.texi.in
1588         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
1589         * haifa-sched.c (ready_try): Make signed to allow negative values.
1590         (rebug_ready_list_1): Update.
1591         (choose_ready): Simplify.
1592         (sched_extend_ready_list): Update.
1593
1594 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1595
1596         Remove IA64 speculation tweaking flags
1597         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
1598         speculation tuning flags.
1599         (msched-prefer-non-data-spec-insns,)
1600         (msched-prefer-non-control-spec-insns): Obsolete options.
1601         * haifa-sched.c (choose_ready): Remove handling of
1602         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
1603         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
1604         and PREFER_NON_DATA_SPEC.
1605         * sel-sched.c (process_spec_exprs): Remove handling of
1606         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
1607
1608 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1609
1610         Improve scheduling debug output
1611         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
1612         (advance_one_cycle): Update.
1613         (schedule_insn, queue_to_ready): Add debug printouts.
1614         (debug_ready_list_1): New static function.
1615         (debug_ready_list): Update.
1616         (max_issue): Add debug printouts.
1617         (dump_insn_stream): New static function.
1618         (schedule_block): Use it.  Also better indent printouts.
1619
1620 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
1621
1622         Fix sched_insn debug counter
1623         * haifa-sched.c (schedule_insn): Update.
1624         (struct haifa_saved_data): Add nonscheduled_insns_begin.
1625         (save_backtrack_point, restore_backtrack_point): Update.
1626         (first_nonscheduled_insn): New static function.
1627         (queue_to_ready, choose_ready): Use it.
1628         (schedule_block): Init nonscheduled_insns_begin.
1629         (sched_emit_insn): Update.
1630
1631
1632 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
1633
1634         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
1635         to GENERAL_REGS.
1636         (aarch64_secondary_reload) : LikeWise.
1637         (aarch64_class_max_nregs) : Remove CORE_REGS.
1638         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
1639         (REG_CLASS_NAMES) : Likewise.
1640         (REG_CLASS_CONTENTS) : LikeWise.
1641         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
1642
1643 2014-05-21  Guozhi Wei  <carrot@google.com>
1644
1645         PR target/61202
1646         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
1647         constraint.
1648         (vqdmulhq_n_s16): Likewise.
1649
1650 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
1651
1652         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
1653
1654 2014-05-21  Marek Polacek  <polacek@redhat.com>
1655
1656         PR sanitizer/61272
1657         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
1658
1659 2014-05-21  Martin Jambor  <mjambor@suse.cz>
1660
1661         * doc/invoke.texi (Optimize Options): Document parameters
1662         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
1663         ipa-cp-array-index-hint-bonus.
1664
1665 2014-05-21  Mark Wielaard  <mjw@redhat.com>
1666
1667         PR debug/16063
1668         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
1669         version >= 3 or not strict DWARF.
1670         * langhooks.h (struct lang_hooks_for_types): Add
1671         enum_underlying_base_type.
1672         * langhooks.c (lhd_enum_underlying_base_type): New function.
1673         * gcc/langhooks.h (struct lang_hooks_for_types): Add
1674         enum_underlying_base_type.
1675         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
1676         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
1677         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
1678
1679 2014-05-21  Richard Biener  <rguenther@suse.de>
1680
1681         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
1682
1683 2014-05-21  John Marino  <gnugcc@marino.st>
1684
1685         * config.gcc (*-*-dragonfly*): New target.
1686         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
1687         * configure: Regenerate.
1688         * config/dragonfly-stdint.h: New.
1689         * config/dragonfly.h: New.
1690         * config/dragonfly.opt: New.
1691         * config/i386/dragonfly.h: New.
1692         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
1693
1694 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
1695
1696         * tree.def (VOID_CST): New.
1697         * tree-core.h (TI_VOID): New.
1698         * tree.h (void_node): New.
1699         * tree.c (tree_node_structure_for_code, tree_code_size)
1700         (iterative_hash_expr): Handle VOID_CST.
1701         (build_common_tree_nodes): Initialize void_node.
1702
1703 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
1704
1705         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
1706         functions.
1707         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
1708
1709         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
1710         more places.
1711
1712         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
1713         flag_reorder_blocks_and_partition.
1714         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
1715
1716 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
1717
1718         PR target/54236
1719         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
1720         constraints.
1721         (*addc_r_t): Add new insn_and_split.
1722
1723 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
1724
1725         PR middle-end/61252
1726         * omp-low.c (handle_simd_reference): New function.
1727         (lower_rec_input_clauses): Use it.  Defer adding reference
1728         initialization even for reduction without placeholder if in simd,
1729         handle it properly later on.
1730
1731 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
1732
1733         PR tree-optimization/60899
1734         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
1735         assume all static symbols will have definition wile parsing and
1736         check the do have definition later in compilation; check that
1737         variable referring symbol will be output before concluding that
1738         reference is safe; be conservative for referring local statics;
1739         be more precise about when comdat is output in other partition.
1740
1741 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
1742
1743         PR bootstrap/60984
1744         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
1745         parameter.
1746         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
1747         (ipa_inline): Loop inline_to_all_callers until no more aliases
1748         are removed.
1749
1750 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
1751
1752         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
1753         set writeonly flag only for vars actually written to.
1754
1755 2014-05-20  Dehao Chen  <dehao@google.com>
1756
1757         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
1758         and callee count to get clone count.
1759         * tree-inline.c (expand_call_inline): Use callee count instead of bb
1760         count in copy_body.
1761
1762 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1763
1764         PR rtl-optimization/61243
1765         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
1766
1767 2014-05-20  Xinliang David Li  <davidxl@google.com>
1768
1769         * cgraphunit.c (walk_polymorphic_call_targets): Add
1770         dbgcnt and fopt-info support.
1771         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
1772         * ipa-devirt.c (ipa_devirt): Ditto.
1773         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
1774         * ipa.c (walk_polymorphic_call_targets): Ditto.
1775         * gimple-fold.c (fold_gimple_assign): Ditto.
1776         (gimple_fold_call): Ditto.
1777         * dbgcnt.def: New counter.
1778
1779 2014-05-20  DJ Delorie  <dj@redhat.com>
1780
1781         * config/msp430/msp430.md (split): Don't allow subregs when
1782         splitting SImode adds.
1783         (andneghi): Fix subtraction logic.
1784         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
1785
1786 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
1787
1788         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
1789         symbols.
1790         * except.c (switch_to_exception_section, resolve_unique_section,
1791         get_named_text_section, default_function_rodata_section,
1792         align_variable, get_block_for_decl, default_section_type_flags):
1793         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1794         * symtab.c (symtab_add_to_same_comdat_group,
1795         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
1796         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
1797         Likewise.
1798         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
1799         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
1800         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
1801         (c6x_function_in_section_p): Likewise.
1802         * config/darwin.c (machopic_select_section): Likewise.
1803         * config/arm/arm.c (arm_function_in_section_p): Likewise.
1804         * config/mips/mips.c (mips_function_rodata_section): Likewise.
1805         * config/mep/mep.c (mep_select_section): LIkewise.
1806         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
1807
1808 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1809
1810         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
1811         EH region of calls to pure functions that can throw an exception.
1812         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
1813         (copy_reference_ops_from_call): Also copy the EH region of the call if
1814         it can throw an exception.
1815
1816 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1817
1818         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
1819         nested VEC_SELECTs that are inverses of each other.
1820
1821 2014-05-20  Richard Biener  <rguenther@suse.de>
1822
1823         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
1824         (extract_and_process_scc_for_name): not here.
1825         (cond_dom_walker::before_dom_children): Only process
1826         stmts that end the BB in interesting ways.
1827         (run_scc_vn): Mark param uses as visited.
1828
1829 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1830
1831         * config/arm/arm.md (arith_shiftsi): Do not predicate for
1832         arm_restrict_it.
1833
1834 2014-05-20  Nick Clifton  <nickc@redhat.com>
1835
1836         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1837         (msp430_gimplify_va_arg_expr): New function.
1838         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
1839
1840         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
1841         operand 0 in order to prevent confusion about the number of
1842         registers involved.
1843
1844 2014-05-20  Richard Biener  <rguenther@suse.de>
1845
1846         PR tree-optimization/61221
1847         * tree-ssa-pre.c (el_to_update): Remove.
1848         (eliminate_dom_walker::before_dom_children): Handle released
1849         VDEFs by value-numbering them to the associated VUSE.  Update
1850         stmt immediately for substituted call address.
1851         (eliminate): Remove delayed stmt updating code.
1852         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
1853         possibly late re-numbered vuses.
1854         (vn_reference_lookup_2): Adjust.
1855         (vn_reference_lookup_pieces): Likewise.
1856         (vn_reference_lookup): Likewise.
1857
1858 2014-05-20  Richard Biener  <rguenther@suse.de>
1859
1860         * config.gcc: Remove need_64bit_hwint.
1861         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
1862         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
1863         it to be true.
1864         * config.in: Regenerate.
1865         * configure: Likewise.
1866
1867 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
1868
1869         * doc/extend.texi: Create Label Attributes section,
1870         move all label attributes into it and reference it.
1871
1872 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
1873
1874         * arm.c (thumb1_reorg): When scanning backwards skip anything
1875         that's not a proper insn.
1876
1877 2014-05-19  Richard Biener  <rguenther@suse.de>
1878
1879         PR tree-optimization/61221
1880         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1881         Do nothing for unreachable blocks.
1882         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
1883         Improve unreachability detection.
1884
1885 2014-05-19  Richard Biener  <rguenther@suse.de>
1886
1887         PR tree-optimization/61209
1888         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
1889
1890 2014-05-19  Nick Clifton  <nickc@redhat.com>
1891
1892         * except.c (init_eh): Fix computation of builtin setjmp buffer
1893         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
1894
1895 2014-05-19  Richard Biener  <rguenther@suse.de>
1896
1897         PR tree-optimization/61184
1898         * tree-vrp.c (is_negative_overflow_infinity): Use
1899         TREE_OVERFLOW_P and do that check first.
1900         (is_positive_overflow_infinity): Likewise.
1901         (is_overflow_infinity): Likewise.
1902         (vrp_operand_equal_p): Properly treat operands with
1903         differing overflow as not equal.
1904
1905 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
1906
1907         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
1908         shift simplification where it was intended.
1909
1910 2014-05-19  Christian Bruel  <christian.bruel@st.com>
1911
1912         PR target/61195
1913         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
1914
1915 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
1916
1917         PR target/61084
1918         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
1919         than wide_int.
1920
1921 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1922
1923         * reg-notes.def (CROSSING_JUMP): Likewise.
1924         * rtl.h (rtx_def): Update comment for jump flag.
1925         (CROSSING_JUMP_P): Define.
1926         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
1927         of a REG_CROSSING_JUMP note.
1928         * cfghooks.c (tidy_fallthru_edges): Likewise.
1929         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
1930         * emit-rtl.c (try_split): Likewise.
1931         * haifa-sched.c (sched_create_recovery_edges): Likewise.
1932         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
1933         * jump.c (redirect_jump_2): Likewise.
1934         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
1935         (relax_delay_slots): Likewise.
1936         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
1937         (bbit_di): Likewise.
1938         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
1939         * config/sh/sh.md (jump_compact): Likewise.
1940         * bb-reorder.c (rotate_loop): Likewise.
1941         (pass_duplicate_computed_gotos::execute): Likewise.
1942         (add_reg_crossing_jump_notes): Rename to...
1943         (update_crossing_jump_flags): ...this.
1944         (pass_partition_blocks::execute): Update accordingly.
1945
1946 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1947
1948         * tree.h: Remove extraneous template <>.
1949
1950 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
1951
1952         * ipa.c (symtab_remove_unreachable_nodes): Remove
1953         symbol from comdat group if its body was eliminated.
1954         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
1955         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
1956         (symtab_unregister_node): ... this one.
1957         (verify_symtab_base): More strict checking of comdats.
1958         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
1959
1960 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
1961
1962         * tree-pass.h (make_pass_ipa_comdats): New pass.
1963         * timevar.def (TV_IPA_COMDATS): New timevar.
1964         * passes.def (pass_ipa_comdats): Add.
1965         * Makefile.in (OBJS): Add ipa-comdats.o
1966         * ipa-comdats.c: New file.
1967
1968 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
1969
1970         * ipa.c (update_visibility_by_resolution_info): New function.
1971         (function_and_variable_visibility): Use it.
1972
1973 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
1974
1975         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
1976         New functions.
1977         (FOR_EACH_DEFINED_SYMBOL): New macro.
1978         (varpool_first_static_initializer, varpool_next_static_initializer,
1979         varpool_first_defined_variable, varpool_next_defined_variable):
1980         Fix comments.
1981         (symtab_in_same_comdat_p): Correctly deal with inline functions.
1982
1983 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
1984
1985         * ggc-page.c (ggc_handle_finalizers): Add comment.
1986
1987 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
1988
1989         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
1990         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
1991         (ggc_internal_cleared_alloc): Likewise.
1992         * ggc-page.c (finalizer): New class.
1993         (vec_finalizer): Likewise.
1994         (globals::finalizers): New member.
1995         (globals::vec_finalizers): Likewise.
1996         (ggc_internal_alloc): Record the finalizer if any for the block being
1997         allocated.
1998         (ggc_handle_finalizers): New function.
1999         (ggc_collect): Call ggc_handle_finalizers.
2000         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
2001         finalizer.
2002         (ggc_internal_cleared_alloc): Likewise.
2003         (finalize): New function.
2004         (need_finalization_p): Likewise.
2005         (ggc_alloc): Install the type's destructor as the finalizer if it
2006         might do something.
2007         (ggc_cleared_alloc): Likewise.
2008         (ggc_vec_alloc): Likewise.
2009         (ggc_cleared_vec_alloc): Likewise.
2010
2011 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2012
2013         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
2014
2015 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2016
2017         * alias.c (record_alias_subset): Adjust.
2018         * bitmap.c (bitmap_element_allocate): Likewise.
2019         (bitmap_gc_alloc_stat): Likewise.
2020         * cfg.c (init_flow): Likewise.
2021         (alloc_block): Likewise.
2022         (unchecked_make_edge): Likewise.
2023         * cfgloop.c (alloc_loop): Likewise.
2024         (flow_loops_find): Likewise.
2025         (rescan_loop_exit): Likewise.
2026         * cfgrtl.c (init_rtl_bb_info): Likewise.
2027         * cgraph.c (insert_new_cgraph_node_version): Likewise.
2028         (cgraph_allocate_node): Likewise.
2029         (cgraph_create_edge_1): Likewise.
2030         (cgraph_allocate_init_indirect_info): Likewise.
2031         * cgraphclones.c (cgraph_clone_edge): Likewise.
2032         * cgraphunit.c (add_asm_node): Likewise.
2033         (init_lowered_empty_function): Likewise.
2034         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
2035         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
2036         (alpha_use_linkage): Likewise.
2037         * config/arc/arc.c (arc_init_machine_status): Likewise.
2038         * config/arm/arm.c (arm_init_machine_status): Likewise.
2039         * config/avr/avr.c (avr_init_machine_status): Likewise.
2040         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
2041         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
2042         * config/cris/cris.c (cris_init_machine_status): Likewise.
2043         * config/darwin.c (machopic_indirection_name): Likewise.
2044         (darwin_build_constant_cfstring): Likewise.
2045         (darwin_enter_string_into_cfstring_table): Likewise.
2046         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
2047         * config/frv/frv.c (frv_init_machine_status): Likewise.
2048         * config/i386/i386.c (get_dllimport_decl): Likewise.
2049         (ix86_init_machine_status): Likewise.
2050         (assign_386_stack_local): Likewise.
2051         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
2052         (i386_pe_maybe_record_exported_symbol): Likewise.
2053         (i386_pe_record_stub): Likewise.
2054         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
2055         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
2056         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
2057         (m32c_note_pragma_address): Likewise.
2058         * config/mep/mep.c (mep_init_machine_status): Likewise.
2059         (mep_note_pragma_flag): Likewise.
2060         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
2061         (mips16_local_alias): Likewise.
2062         (mips_init_machine_status): Likewise.
2063         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
2064         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
2065         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
2066         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
2067         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
2068         * config/pa/pa.c (pa_init_machine_status): Likewise.
2069         (pa_get_deferred_plabel): Likewise.
2070         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
2071         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
2072         (rs6000_init_machine_status): Likewise.
2073         (output_toc): Likewise.
2074         * config/s390/s390.c (s390_init_machine_status): Likewise.
2075         * config/score/score.c (score_output_external): Likewise.
2076         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2077         * config/spu/spu.c (spu_init_machine_status): Likewise.
2078         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
2079         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
2080         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2081         * coverage.c (coverage_end_function): Likewise.
2082         * dbxout.c (dbxout_init): Likewise.
2083         * doc/gty.texi: Don't mention variable_size attribute.
2084         * dwarf2cfi.c (new_cfi): Adjust.
2085         (new_cfi_row): Likewise.
2086         (copy_cfi_row): Likewise.
2087         (create_cie_data): Likewise.
2088         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
2089         (new_loc_descr): Likewise.
2090         (find_AT_string_in_table): Likewise.
2091         (add_addr_table_entry): Likewise.
2092         (new_die): Likewise.
2093         (add_var_loc_to_decl): Likewise.
2094         (clone_die): Likewise.
2095         (clone_as_declaration): Likewise.
2096         (break_out_comdat_types): Likewise.
2097         (new_loc_list): Likewise.
2098         (add_loc_descr_to_each): Likewise.
2099         (add_location_or_const_value_attribute): Likewise.
2100         (add_linkage_name): Likewise.
2101         (lookup_filename): Likewise.
2102         (dwarf2out_var_location): Likewise.
2103         (new_line_info_table): Likewise.
2104         (dwarf2out_init): Likewise.
2105         (mem_loc_descriptor): Likewise.
2106         (loc_descriptor): Likewise.
2107         (add_const_value_attribute): Likewise.
2108         (tree_add_const_value_attribute): Likewise.
2109         (comp_dir_string): Likewise.
2110         (dwarf2out_vms_debug_main_pointer): Likewise.
2111         (string_cst_pool_decl): Likewise.
2112         * emit-rtl.c (set_mem_attrs): Likewise.
2113         (get_reg_attrs): Likewise.
2114         (start_sequence): Likewise.
2115         (init_emit): Likewise.
2116         (init_emit_regs): Likewise.
2117         * except.c (init_eh_for_function): Likewise.
2118         (gen_eh_region): Likewise.
2119         (gen_eh_region_catch): Likewise.
2120         (gen_eh_landing_pad): Likewise.
2121         (add_call_site): Likewise.
2122         * function.c (add_frame_space): Likewise.
2123         (insert_temp_slot_address): Likewise.
2124         (assign_stack_temp_for_type): Likewise.
2125         (get_hard_reg_initial_val): Likewise.
2126         (allocate_struct_function): Likewise.
2127         (prepare_function_start): Likewise.
2128         (types_used_by_var_decl_insert): Likewise.
2129         * gengtype.c (variable_size_p): Remove function.
2130         (enum alloc_quantity): Remove enum.
2131         (write_typed_alloc_def): Remove function.
2132         (write_typed_struct_alloc_def): Likewise.
2133         (write_typed_typedef_alloc_def): Likewise.
2134         (write_typed_alloc_defns): Likewise.
2135         (main): Adjust.
2136         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
2137         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
2138         * ggc.h (ggc_alloc): new function.
2139         (ggc_cleared_alloc): Likewise.
2140         (ggc_vec_alloc): Template on type of vector element, and remove
2141         element size argument.
2142         (ggc_cleared_vec_alloc): Likewise.
2143         * gimple.c (gimple_build_omp_for): Adjust.
2144         (gimple_copy): Likewise.
2145         * ipa-cp.c (get_replacement_map): Likewise.
2146         (find_aggregate_values_for_callers_subset): Likewise.
2147         (known_aggs_to_agg_replacement_list): Likewise.
2148         * ipa-devirt.c (get_odr_type): Likewise.
2149         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
2150         (read_agg_replacement_chain): Likewise.
2151         * loop-iv.c (get_simple_loop_desc): Likewise.
2152         * lto-cgraph.c (input_node_opt_summary): Likewise.
2153         * lto-section-in.c (lto_new_in_decl_state): Likewise.
2154         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
2155         (input_eh_region): Likewise.
2156         (input_eh_lp): Likewise.
2157         (input_cfg): Likewise.
2158         * optabs.c (set_optab_libfunc): Likewise.
2159         (init_tree_optimization_optabs): Likewise.
2160         (set_conv_libfunc): Likewise.
2161         * passes.c (do_per_function_toporder): Likewise.
2162         * rtl.h: Don't use variable_size gty attribute.
2163         * sese.c (if_region_set_false_region): Adjust.
2164         * stringpool.c (gt_pch_save_stringpool): Likewise.
2165         * target-globals.c (save_target_globals): Likewise.
2166         * toplev.c (general_init): Likewise.
2167         * trans-mem.c (record_tm_replacement): Likewise.
2168         (split_bb_make_tm_edge): Likewise.
2169         * tree-cfg.c (move_sese_region_to_fn): Likewise.
2170         * tree-data-ref.h (lambda_vector_new): Likewise.
2171         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
2172         * tree-iterator.c (tsi_link_before): Likewise.
2173         (tsi_link_after): Likewise.
2174         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
2175         * tree-ssa-loop-niter.c (record_estimate): Likewise.
2176         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
2177         * tree-ssa-operands.h: Don't use variable_size gty attribute.
2178         * tree-ssa.c (init_tree_ssa): Adjust.
2179         * tree-ssanames.c (set_range_info): Likewise.
2180         (get_ptr_info): Likewise.
2181         (duplicate_ssa_name_ptr_info): Likewise.
2182         (duplicate_ssa_name_range_info): Likewise.
2183         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
2184         (unpack_ts_fixed_cst_value_fields): Likewise.
2185         * tree.c (build_fixed): Likewise.
2186         (build_real): Likewise.
2187         (build_string): Likewise.
2188         (decl_priority_info): Likewise.
2189         (decl_debug_expr_insert): Likewise.
2190         (decl_value_expr_insert): Likewise.
2191         (decl_debug_args_insert): Likewise.
2192         (type_hash_add): Likewise.
2193         (build_omp_clause): Likewise.
2194         * ubsan.c (decl_for_type_insert): Likewise.
2195         * varasm.c (get_unnamed_section): Likewise.
2196         (get_noswitch_section): Likewise.
2197         (get_section): Likewise.
2198         (get_block_for_section): Likewise.
2199         (create_block_symbol): Likewise.
2200         (build_constant_desc): Likewise.
2201         (create_constant_pool): Likewise.
2202         (force_const_mem): Likewise.
2203         (record_tm_clone_pair): Likewise.
2204         * varpool.c (varpool_create_empty_node): Likewise.
2205
2206 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
2207
2208         * dwarf2out.c (tree_add_const_value_attribute): Call
2209         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
2210         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
2211         instead of ggc_internal_<x>alloc_stat.
2212         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
2213         (ggc_realloc): Likewise.
2214         * ggc-none.c (ggc_internal_alloc): Likewise.
2215         (ggc_internal_cleared_alloc): Likewise.
2216         * ggc-page.c: Likewise.
2217         * ggc.h (ggc_internal_alloc_stat): Likewise.
2218         (ggc_internal_alloc): Remove macro.
2219         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
2220         (ggc_internal_cleared_alloc): Remove macro.
2221         (GGC_RESIZEVEC): Adjust.
2222         (ggc_resizevar): Remove macro.
2223         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
2224         (ggc_internal_cleared_vec_alloc_stat): Likewise.
2225         (ggc_internal_vec_cleared_alloc): Remove macro.
2226         (ggc_alloc_atomic_stat): Drop _stat suffix.
2227         (ggc_alloc_atomic): Remove macro.
2228         (ggc_alloc_cleared_atomic): Remove macro.
2229         (ggc_alloc_string_stat): Drop _stat suffix.
2230         (ggc_alloc_string): Remove macro.
2231         (ggc_alloc_rtx_def_stat): Adjust.
2232         (ggc_alloc_tree_node_stat): Likewise.
2233         (ggc_alloc_cleared_tree_node_stat): Likewise.
2234         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
2235         (ggc_alloc_cleared_simd_clone_stat): Likewise.
2236         * gimple.c (gimple_build_omp_for): Likewise.
2237         (gimple_copy): Likewise.
2238         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
2239         * toplev.c (realloc_for_line_map): Adjust.
2240         * tree-data-ref.h (lambda_vector_new): Likewise.
2241         * tree-phinodes.c (allocate_phi_node): Likewise.
2242         * tree.c (grow_tree_vec_stat): Likewise.
2243         * vec.h (va_gc::reserve): Adjust.
2244
2245 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
2246
2247         * config/microblaze/microblaze.c (break_handler): New Declaration.
2248         (microblaze_break_function_p,microblaze_is_break_handler): New.
2249         (compute_frame_size): Use microblaze_break_function_p.
2250         Add the test of break_handler.
2251         (microblaze_function_prologue) : Add the test of variable
2252         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
2253         (microblaze_function_epilogue) : Add the test of break_handler.
2254         (microblaze_globalize_label) : Add the test of break_handler.
2255         Check the name by BREAK_HANDLER_NAME.
2256
2257         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
2258
2259         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
2260         microblaze_is_break_handler test.
2261         (call_internal1,call_value_intern): Use microblaze_break_function_p.
2262         Use SYMBOL_REF_DECL.
2263
2264         * config/microblaze/microblaze-protos.h
2265         (microblaze_break_function_p,microblaze_is_break_handler):
2266         New Declaration.
2267
2268         * doc/extend.texi (MicroBlaze break_handler Functions): Document
2269         new MicroBlaze break_handler functions.
2270
2271 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
2272
2273         * doc/extend.texi (Size of an asm): Move node text according
2274         to its @menu entry position.
2275
2276 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
2277
2278         PR tree-optimization/61140
2279         PR tree-optimization/61150
2280         PR tree-optimization/61197
2281         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
2282
2283 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
2284
2285         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
2286
2287 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
2288
2289         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
2290         __SIZEOF_INT128__ is defined.
2291
2292 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
2293
2294         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
2295         (rs6000_delegitimize_address): Use it.
2296
2297 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
2298
2299         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
2300         inplace argument.  Store the new address in the original MEM when true.
2301         * emit-rtl.c (change_address_1): Likewise.
2302         (adjust_address_1, adjust_automodify_address_1, offset_address):
2303         Update accordingly.
2304         * rtl.h (plus_constant): Add an inplace argument.
2305         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
2306         when true.  Avoid generating (plus X (const_int 0)).
2307         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
2308         in-place.  Pass true to plus_constant.
2309         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
2310
2311 2014-05-16  Dehao Chen  <dehao@google.com>
2312
2313         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
2314
2315 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
2316
2317         PR target/54089
2318         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
2319         patterns.
2320         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
2321
2322 2014-05-16  Dehao Chen  <dehao@google.com>
2323
2324         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
2325         optimize_function_for_size_p.
2326         * regs.h (REG_FREQ_FROM_BB): Likewise.
2327
2328 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
2329
2330         PR target/51244
2331         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
2332         negt_reg_operand cases.
2333         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
2334         predicate.
2335         * config/sh/predicates.md (cbranch_treg_value): Simplify.
2336
2337 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
2338
2339         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
2340         target variants.
2341
2342 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
2343
2344         Revert:
2345         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
2346
2347         * tree-cfg.c (dump_function_to_file): Dump the return type of
2348         functions, in a line to itself before the function body, mimicking
2349         the layout of a C function.
2350
2351 2014-05-16  Dehao Chen  <dehao@google.com>
2352
2353         * cfghooks.c (make_forwarder_block): Use direct computation to
2354         get fall-through edge's count and frequency.
2355
2356 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
2357
2358         * config/arc/arc.c (arc_init): Fix typo in error message.
2359         * config/i386/i386.c (ix86_expand_builtin): Likewise.
2360         (split_stack_prologue_scratch_regno): Likewise.
2361         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
2362         word from error message.
2363
2364 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
2365
2366         * ira-costs.c: Fix typo in comment.
2367
2368 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
2369
2370         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
2371
2372 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
2373
2374         * varpool.c (dump_varpool_node): Dump write-only flag.
2375         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
2376         write-only flag.
2377         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
2378         write-only variables.
2379         * ipa.c (process_references): New function.
2380         (set_readonly_bit): New function.
2381         (set_writeonly_bit): New function.
2382         (clear_addressable_bit): New function.
2383         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
2384         fix handling of aliases.
2385         * cgraph.h (struct varpool_node): Add writeonly flag.
2386
2387 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
2388
2389         PR rtl-optimization/60969
2390         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
2391         Calculate costs for this case.
2392
2393 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2394
2395         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
2396         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
2397
2398 2014-05-16  Richard Biener  <rguenther@suse.de>
2399
2400         PR tree-optimization/61194
2401         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
2402         bool patterns ending in a COND_EXPR.
2403
2404 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2405
2406         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
2407
2408 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2409
2410         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
2411         where we were unable to cost an RTX.
2412
2413 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2414
2415         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
2416         HIGH, LO_SUM.
2417
2418 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2419             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2420
2421         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
2422
2423 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2424             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2425
2426         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
2427         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
2428
2429 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2430             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2431
2432         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
2433         operators.
2434
2435 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2436             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2437
2438         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
2439         DIV/MOD.
2440
2441 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2442             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2443
2444         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
2445         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
2446
2447 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2448             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2449
2450         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
2451         rotates and shifts.
2452
2453 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2454             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2455
2456         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
2457         ZERO_EXTEND and SIGN_EXTEND better.
2458
2459 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2460             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2461
2462         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
2463         logical operations.
2464
2465 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2466             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2467
2468         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
2469         costs when costing loads and stores to memory.
2470
2471 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2472             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
2473
2474         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
2475         for SET RTX.
2476
2477 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2478
2479         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
2480
2481 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2482             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2483
2484         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
2485         to...
2486         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
2487         well formed.
2488         (aarch64_rtx_mult_cost): New.
2489         (aarch64_rtx_costs): Use it, refactor as appropriate.
2490
2491 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2492             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
2493
2494         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
2495         emit instructions, return number of instructions which would
2496         be emitted.
2497         (aarch64_add_constant): Update call to aarch64_build_constant.
2498         (aarch64_output_mi_thunk): Likewise.
2499         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
2500         a CONST_DOUBLE.
2501
2502 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2503
2504         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
2505         (TARGET_RTX_COSTS): Call it.
2506
2507 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2508
2509         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
2510         (cortexa57_vector_cost): Likewise.
2511         (cortexa57_tunings): Use them.
2512
2513 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
2514
2515         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
2516         (cpu_addrcost_table): Use it.
2517         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
2518         (aarch64_address_cost): Rewrite using aarch64_classify_address,
2519         move it.
2520
2521 2014-05-16  Richard Biener  <rguenther@suse.de>
2522
2523         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
2524         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
2525         (visit_phi): Ignore edges marked as not executable.
2526         (class cond_dom_walker): New.
2527         (cond_dom_walker::before_dom_children): Value-number
2528         control statements and mark successor edges as not
2529         executable if possible.
2530         (run_scc_vn): First walk all control statements in
2531         dominator order, marking edges as not executable.
2532         * tree-inline.c (copy_edges_for_bb): Be not confused
2533         about random edge flags.
2534
2535 2014-05-16  Richard Biener  <rguenther@suse.de>
2536
2537         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
2538
2539 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
2540
2541         PR target/61193
2542         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
2543         (__TM_simple_begin): Use it.
2544         (__TM_begin): Likewise.
2545
2546 2014-05-15  Martin Jambor  <mjambor@suse.cz>
2547
2548         PR ipa/61085
2549         * ipa-prop.c (update_indirect_edges_after_inlining): Check
2550         type_preserved flag when the indirect edge is polymorphic.
2551
2552 2014-05-15  Martin Jambor  <mjambor@suse.cz>
2553
2554         PR tree-optimization/61090
2555         * tree-sra.c (sra_modify_expr): Pass the current gsi to
2556         build_ref_for_model.
2557
2558 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2559
2560         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
2561         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
2562
2563 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
2564
2565         PR tree-optimization/61158
2566         * fold-const.c (fold_binary_loc): If X is zero-extended and
2567         shiftc >= prec, make sure zerobits is all ones instead of
2568         invoking undefined behavior.
2569
2570 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2571
2572         * regcprop.h: New file.
2573         * regcprop.c (skip_debug_insn_p): New decl.
2574         (replace_oldest_value_reg): Check skip_debug_insn_p.
2575         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
2576         * shrink-wrap.c: Include regcprop.h.
2577         (prepare_shrink_wrap): Call
2578         copyprop_hardreg_forward_bb_without_debug_insn.
2579
2580 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2581
2582         * shrink-wrap.h: Update comment.
2583         * shrink-wrap.c: Update comment.
2584         (next_block_for_reg): Rename to live_edge_for_reg.
2585         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
2586         (move_insn_for_shrink_wrap): Split live_edge.
2587         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
2588
2589 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2590
2591         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
2592         Delete.
2593         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
2594         * config/sparc/sparc.md (fptype_ut699): New attribute.
2595         (in_branch_delay): Return false if -mfix-ut699 is specified and
2596         fptype_ut699 is set to single.
2597         (truncdfsf2): Add fptype_ut699 attribute.
2598         (fix_truncdfsi2): Likewise.
2599         (floatsisf2): Change fptype attribute.
2600         (fix_truncsfsi2): Likewise.
2601         (negtf2_notv9): Delete.
2602         (negtf2_v9): Likewise.
2603         (negtf2_hq): New instruction.
2604         (negtf2): New instruction and splitter.
2605         (negdf2_notv9): Rewrite.
2606         (abstf2_notv9): Delete.
2607         (abstf2_hq_v9): Likewise.
2608         (abstf2_v9): Likewise.
2609         (abstf2_hq): New instruction.
2610         (abstf2): New instruction and splitter.
2611         (absdf2_notv9): Rewrite.
2612
2613 2014-05-14  Cary Coutant  <ccoutant@google.com>
2614
2615         PR debug/61013
2616         * opts.c (common_handle_option): Don't special-case "-g".
2617         (set_debug_level): Default to at least level 2 with "-g".
2618
2619 2014-05-14  DJ Delorie  <dj@redhat.com>
2620
2621         * config/msp430/msp430.c (msp430_builtin): Add
2622         MSP430_BUILTIN_DELAY_CYCLES.
2623         (msp430_init_builtins): Register void __delay_cycles(long long).
2624         (msp430_builtin_decl): Add it.
2625         (cg_magic_constant): New.
2626         (msp430_expand_delay_cycles): New.
2627         (msp430_expand_builtin): Call it.
2628         (msp430_print_operand_raw): Change integer printing from "int" to
2629         HOST_WIDE_INT.
2630         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
2631         (delay_cycles_start): New.
2632         (delay_cycles_end): New.
2633         (delay_cycles_32): New.
2634         (delay_cycles_32x): New.
2635         (delay_cycles_16): New.
2636         (delay_cycles_16x): New.
2637         (delay_cycles_2): New.
2638         (delay_cycles_1): New.
2639         * doc/extend.texi: Document __delay_cycles().
2640
2641 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
2642
2643         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
2644         length attribute computation.
2645
2646 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
2647
2648         PR debug/61188
2649         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
2650
2651 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
2652
2653         PR target/61084
2654         * config/sparc/sparc.md: Fix types of low and high in DI constant
2655         splitter.  Use gen_int_mode in some other splitters.
2656
2657 2014-05-14  Martin Jambor  <mjambor@suse.cz>
2658
2659         PR ipa/60897
2660         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
2661
2662 2014-05-14  James Norris  <jnorris@codesourcery.com>
2663
2664         * omp-low.c (expand_parallel_call): Remove shadow variable.
2665         (expand_omp_taskreg): Likewise.
2666
2667 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
2668
2669         * common/config/i386/i386-common.c
2670         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
2671         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
2672         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
2673         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
2674         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
2675         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
2676         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
2677         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
2678         xsavecintrin.h, xsavesintrin.h.
2679         (x86_64-*-*): Ditto.
2680         * config/i386/clflushoptintrin.h: New.
2681         * config/i386/xsavecintrin.h: Ditto.
2682         * config/i386/xsavesintrin.h: Ditto.
2683         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
2684         (bit_XSAVES): Ditto.
2685         (bit_XSAVES): Ditto.
2686         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
2687         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
2688         -mno-clflushopt.
2689         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2690         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
2691         OPTION_MASK_ISA_XSAVES.
2692         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
2693         -mxsavec, -mxsaves.
2694         (PTA_CLFLUSHOPT) Define.
2695         (PTA_XSAVEC): Ditto.
2696         (PTA_XSAVES): Ditto.
2697         (ix86_option_override_internal): Handle new options.
2698         (ix86_valid_target_attribute_inner_p): Ditto.
2699         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
2700         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
2701         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
2702         (bdesc_special_args): Add __builtin_ia32_xsaves,
2703         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
2704         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
2705         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
2706         (ix86_expand_builtin): Handle new builtins.
2707         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
2708         (TARGET_CLFLUSHOPT_P): Ditto.
2709         (TARGET_XSAVEC): Ditto.
2710         (TARGET_XSAVEC_P): Ditto.
2711         (TARGET_XSAVES): Ditto.
2712         (TARGET_XSAVES_P): Ditto.
2713         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
2714         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
2715         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
2716         (ANY_XRSTOR): New.
2717         (ANY_XRSTOR64): Ditto.
2718         (xrstor): Ditto.
2719         (xrstor): Change into <xrstor>.
2720         (xrstor_rex64): Change into <xrstor>_rex64.
2721         (xrstor64): Change into <xrstor>64
2722         (clflushopt): New.
2723         * config/i386/i386.opt (mclflushopt): New.
2724         (mxsavec): Ditto.
2725         (mxsaves): Ditto.
2726         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
2727         xsavecintrin.h.
2728         * doc/invoke.texi: Document new options.
2729
2730 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
2731
2732         PR rtl-optimization/60866
2733         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
2734         Default it to -1.  Pass it down to init_simplejump_data.
2735         (init_simplejump_data): New parameter old_seqno.  Pass it down
2736         to get_seqno_for_a_jump.
2737         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
2738         initializing new jump seqno as a last resort.  Add comment.
2739         (sel_redirect_edge_and_branch): Save old seqno of the conditional
2740         jump and pass it down to sel_init_new_insn.
2741         (sel_redirect_edge_and_branch_force): Likewise.
2742
2743 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
2744
2745         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
2746         shifted values to avoid build warning.
2747
2748 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2749
2750         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
2751         * cfgrtl.c (rtl_merge_blocks): Fix comment.
2752         (cfg_layout_merge_blocks): Likewise.
2753         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
2754
2755 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
2756
2757         PR rtl-optimization/60901
2758         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
2759         bb predecessor belongs to the same scheduling region.  Adjust comment.
2760
2761 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
2762
2763         * doc/sourcebuild.texi: (dfp_hw): Document.
2764         (p8vector_hw): Likewise.
2765         (powerpc_eabi_ok): Likewise.
2766         (powerpc_elfv2): Likewise.
2767         (powerpc_htm_ok): Likewise.
2768         (ppc_recip_hw): Likewise.
2769         (vsx_hw): Likewise.
2770
2771 2014-05-13  Cary Coutant  <ccoutant@google.com>
2772
2773         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
2774
2775 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
2776
2777         * gengtype-parse.c (require3): Eliminate in favor of...
2778         (require4): New.
2779         (require_template_declaration): Update to support optional single *
2780         on a type.
2781
2782         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
2783         (create_user_defined_type): Handle a single level of explicit
2784         pointerness within template arguments.
2785         (struct write_types_data): Add field "kind".
2786         (filter_type_name): Handle "*" character.
2787         (write_user_func_for_structure_ptr): Require a write_types_data
2788         rather than just a prefix string, so that we can look up the kind
2789         of the wtd and use it as an index into wrote_user_func_for_ptr,
2790         ensuring that such functions are written at most once.  Support
2791         subclasses by invoking the marking function of the ultimate base class.
2792         (write_user_func_for_structure_body): Require a write_types_data
2793         rather than just a prefix string, so that we can pass this to
2794         write_user_func_for_structure_ptr.
2795         (write_func_for_structure): Likewise.
2796         (ggc_wtd): Add initializer of new "kind" field.
2797         (pch_wtd): Likewise.
2798
2799         * gengtype.h (enum write_types_kinds): New.
2800         (struct type): Add field wrote_user_func_for_ptr to the "s"
2801         union member.
2802
2803 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
2804
2805         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
2806         instead of const_binop.
2807         (fold_binary_loc): Likewise.
2808
2809 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
2810
2811         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
2812         calculation to match get_ref_base_and_extent.
2813
2814 2014-05-13  Catherine Moore  <clm@codesourcery.com>
2815             Sandra Loosemore  <sandra@codesourcery.com>
2816
2817         * configure.ac: Fix assembly for explicit JALR relocation check.
2818         * configure: Regenerate.
2819
2820 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2821
2822         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
2823         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
2824         Remove associated type declarations and initialisations.
2825         (arm_expand_neon_builtin): Likewise.
2826         (neon_emit_pair_result_insn): Delete.
2827         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
2828         * config/arm/neon.md (neon_vtrn<mode>): Delete.
2829         (neon_vzip<mode>): Likewise.
2830         (neon_vuzp<mode>): Likewise.
2831
2832 2014-05-13  Richard Biener  <rguenther@suse.de>
2833
2834         PR ipa/60973
2835         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
2836         it needs revisiting whether the call still may be tail-called.
2837
2838 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2839
2840         * rtl.def (SYMBOL_REF): Remove middle "0" field.
2841         * rtl.h (block_symbol): Reduce number of fields to 2.
2842         (rtx_def): Add u2.symbol_ref_flags.
2843         (SYMBOL_REF_FLAGS): Use it.
2844         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
2845         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
2846         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
2847         Lower index of SYMBOL_REF_DATA.
2848         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
2849         Print SYMBOL_REF_FLAGS at the same time.
2850         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
2851
2852 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2853
2854         * rtl.def (VAR_LOCATION): Remove "i" field.
2855         * rtl.h (rtx_def): Add u2.var_location_status.
2856         (PAT_VAR_LOCATION_STATUS): Use it.
2857         (gen_rtx_VAR_LOCATION): Declare.
2858         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
2859         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
2860         * var-tracking.c (emit_note_insn_var_location): Remove casts.
2861
2862 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2863
2864         * rtl.def (scratch): Fix outdated comment and remove "0" field.
2865         * gengtype.c (adjust_field_rtx_def): Update accordingly.
2866
2867 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2868
2869         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
2870         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
2871         * rtl.h (rtx_def): Add insn_uid to u2 field.
2872         (RTX_FLAG_CHECK8): Delete in favor of...
2873         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
2874         (INSN_DELETED_P): Update accordingly.
2875         (INSN_UID): Use u2.insn_uid.
2876         (INSN_CHAIN_CODE_P): Define.
2877         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
2878         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
2879         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
2880         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
2881         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
2882         indices accordingly.
2883         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
2884         Update indices for insn-chain rtxes.
2885         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
2886         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
2887         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
2888         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
2889         * combine.c (try_combine): Likewise.
2890         * ira.c (setup_prohibited_mode_move_regs): Likewise.
2891
2892 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2893
2894         * rtl.def (REG): Remove middle field.
2895         * rtl.h (rtx_def): Add orignal_regno to u2.
2896         (ORIGINAL_REGNO): Use it instead of field 1.
2897         (REG_ATTRS): Lower field index accordingly.
2898         * gengtype.c (adjust_field_rtx_def): Remove handling of
2899         ORIGINAL_REGNO.  Move REG_ATTRS index down.
2900         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
2901         code that prints the REGNO.
2902
2903 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2904
2905         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
2906         GENERATOR_FILE.
2907
2908 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
2909
2910         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
2911
2912 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
2913
2914         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
2915         (alloc_iv): Lower base expressions containing ADDR_EXPR.
2916
2917 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
2918
2919         * config/aarch64/aarch64-protos.h
2920         (aarch64_hard_regno_caller_save_mode): New prototype.
2921         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
2922         New function.
2923         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
2924
2925 2014-05-13  Christian Bruel  <christian.bruel@st.com>
2926
2927         * target.def (mode_switching): New hook vector.
2928         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
2929         (mode_exit, modepriority_to_mode): Likewise.
2930         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
2931         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
2932         * target.h: Include tm.h and hard-reg-set.h.
2933         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
2934         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
2935         * doc/tm.texi Regenerate.
2936         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
2937         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
2938         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
2939         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
2940         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
2941         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
2942         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
2943         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
2944         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
2945         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
2946         (ix86_emit_mode_set): Hookify.
2947         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
2948         Delete.
2949         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
2950         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
2951         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
2952         (epiphany_mode_priority_to_mode): Remove declaration.
2953         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
2954         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
2955         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
2956         Likewise.
2957         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
2958         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
2959         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
2960
2961 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
2962
2963         PR target/61060
2964         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
2965         is const0_rtx, return immediately.  Don't test count == 0 when
2966         it is always true.
2967
2968 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2969
2970         * Makefile.in: add shrink-wrap.o.
2971         * config/i386/i386.c: include "shrink-wrap.h"
2972         * function.c: Likewise.
2973         (requires_stack_frame_p, next_block_for_reg,
2974         move_insn_for_shrink_wrap, prepare_shrink_wrap,
2975         dup_block_and_redirect): Move to shrink-wrap.c
2976         (thread_prologue_and_epilogue_insns): Extract three code segments
2977         as functions in shrink-wrap.c
2978         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
2979         shrink-wrap.h
2980         * shrink-wrap.c: New file.
2981         * shrink-wrap.h: New file.
2982
2983 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
2984
2985         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
2986         reference to Solaris.
2987
2988 2014-05-12  Mike Stump  <mikestump@comcast.net>
2989
2990         PR other/31778
2991         * genattrtab.c (filename): Add.
2992         (convert_set_attr_alternative): Improve error message.
2993         (check_defs): Restore read_md_filename for error messages.
2994         (gen_insn): Save filename.
2995
2996 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
2997
2998         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
2999         -fno-local-ivars and -fivar-visibility.
3000         * c-family/c.opt: Make -Wshadow also implicitly enable
3001         -Wshadow-ivar.
3002
3003 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
3004
3005         * doc/tm.texi: Remove reference to deleted macro.
3006         * doc/tm.texi.in: Likewise.
3007
3008 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3009
3010         PR target/60991
3011         * config/avr/avr.c (avr_out_store_psi): Use correct constant
3012         to restore Y.
3013
3014 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
3015
3016         PR libgcc/61152
3017         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
3018         * config/arm/aout.h (License): Same.
3019         * config/arm/bpabi.h (License): Same.
3020         * config/arm/elf.h (License): Same.
3021         * config/arm/linux-elf.h (License): Same.
3022         * config/arm/linux-gas.h (License): Same.
3023         * config/arm/netbsd-elf.h (License): Same.
3024         * config/arm/uclinux-eabi.h (License): Same.
3025         * config/arm/uclinux-elf.h (License): Same.
3026         * config/arm/vxworks.h (License): Same.
3027
3028 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
3029
3030         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
3031         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
3032         number of operands to 3.
3033         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
3034         * tree-nested.c (convert_nonlocal_omp_clauses,
3035         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
3036         * gimplify.c (gimplify_scan_omp_clauses): Handle
3037         OMP_CLAUSE_LINEAR_STMT.
3038         * omp-low.c (lower_rec_input_clauses): Fix typo.
3039         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
3040         cast between Fortran boolean_type_node and C _Bool if
3041         needed.
3042
3043 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
3044
3045         PR tree-optimization/61136
3046         * wide-int.h (multiple_of_p): Define a version that doesn't return
3047         the quotient.
3048         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
3049         integer_zerop/const_binop pair.
3050         (multiple_of_p): Likewise, converting both operands to widest_int
3051         precision.
3052
3053 2014-05-09  Teresa Johnson  <tejohnson@google.com>
3054
3055         * cgraphunit.c (analyze_functions): Use correct dump file.
3056
3057 2014-05-09  Florian Weimer  <fweimer@redhat.com>
3058
3059         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
3060         expand_used_vars.
3061         (stack_protect_return_slot_p): New function.
3062         (expand_used_vars): Call stack_protect_decl_p and
3063         stack_protect_return_slot_p for -fstack-protector-strong.
3064
3065 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
3066         Andrew Haley <aph@redhat.com>
3067         Richard Sandiford <rdsandiford@googlemail.com>
3068
3069         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
3070         pages.
3071
3072 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
3073
3074         PR middle-end/61111
3075         * fold-const.c (fold_binary_loc): Changed width of mask.
3076
3077 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
3078
3079         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
3080         unsigned int initializers for regno_in, regno_out.
3081
3082 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
3083
3084         PR target/61055
3085         * config/avr/avr.md (cc): Add new attribute set_vzn.
3086         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
3087         Set cc insn attribute to set_vzn instead of set_zn for alternatives
3088         with INC, DEC or NEG.
3089         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
3090         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
3091         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
3092
3093 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3094
3095         Revert:
3096         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3097
3098         * wide-int.cc (UTItype): Define.
3099         (UDWtype): Define for appropriate W_TYPE_SIZE.
3100
3101 2014-05-09  Richard Biener  <rguenther@suse.de>
3102
3103         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
3104         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
3105         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
3106         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
3107         ssa_propagate): Adjust.
3108
3109 2014-05-08  Jeff Law  <law@redhat.com>
3110
3111         PR tree-optimization/61009
3112         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
3113         tri-state rather than a boolean.  When a block is too big to
3114         thread through, inform caller via negative return value.
3115         (thread_across_edge): If a block was too big for normal threading,
3116         then it's too big for a joiner too, so remove temporary equivalences
3117         and return immediately.
3118
3119 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3120             Matthias Klose  <doko@ubuntu.com>
3121
3122         PR driver/61106
3123         * optc-gen.awk: Fix option handling for -Wunused-parameter.
3124
3125 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
3126
3127         PR target/59952
3128         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
3129
3130 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
3131
3132         PR target/61092
3133         * config/alpha/alpha.c: Include gimple-iterator.h.
3134         (alpha_gimple_fold_builtin): New function.  Move
3135         ALPHA_BUILTIN_UMULH folding from ...
3136         (alpha_fold_builtin): ... here.
3137         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
3138
3139 2014-05-08  Wei Mi  <wmi@google.com>
3140
3141         PR target/58066
3142         * config/i386/i386.c (ix86_compute_frame_layout): Update
3143         preferred_stack_boundary for call, expanded from tls descriptor.
3144         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
3145         to depend on SP register.
3146         (*tls_local_dynamic_base_32_gnu): Ditto.
3147         (*tls_local_dynamic_32_once): Ditto.
3148         (tls_global_dynamic_64_<mode>): Set
3149         ix86_tls_descriptor_calls_expanded_in_cfun.
3150         (tls_local_dynamic_base_64_<mode>): Ditto.
3151         (tls_global_dynamic_32): Set
3152         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
3153         to depend on SP register.
3154         (tls_local_dynamic_base_32): Ditto.
3155
3156 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3157
3158         * config/arm/arm_neon.h: Update comment.
3159         * config/arm/neon-docgen.ml: Delete.
3160         * config/arm/neon-gen.ml: Delete.
3161         * doc/arm-neon-intrinsics.texi: Update comment.
3162
3163 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3164
3165         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
3166         and v4sf versions.
3167         (vand, vorr, veor, vorn, vbic): Remove.
3168         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
3169         iterator.
3170         (neon_vsub_unspec): Likewise.
3171         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
3172
3173 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3174
3175         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
3176         (vadd_s16): Likewise.
3177         (vadd_s32): Likewise.
3178         (vadd_f32): Likewise.
3179         (vadd_u8): Likewise.
3180         (vadd_u16): Likewise.
3181         (vadd_u32): Likewise.
3182         (vadd_s64): Likewise.
3183         (vadd_u64): Likewise.
3184         (vaddq_s8): Likewise.
3185         (vaddq_s16): Likewise.
3186         (vaddq_s32): Likewise.
3187         (vaddq_s64): Likewise.
3188         (vaddq_f32): Likewise.
3189         (vaddq_u8): Likewise.
3190         (vaddq_u16): Likewise.
3191         (vaddq_u32): Likewise.
3192         (vaddq_u64): Likewise.
3193         (vmul_s8): Likewise.
3194         (vmul_s16): Likewise.
3195         (vmul_s32): Likewise.
3196         (vmul_f32): Likewise.
3197         (vmul_u8): Likewise.
3198         (vmul_u16): Likewise.
3199         (vmul_u32): Likewise.
3200         (vmul_p8): Likewise.
3201         (vmulq_s8): Likewise.
3202         (vmulq_s16): Likewise.
3203         (vmulq_s32): Likewise.
3204         (vmulq_f32): Likewise.
3205         (vmulq_u8): Likewise.
3206         (vmulq_u16): Likewise.
3207         (vmulq_u32): Likewise.
3208         (vsub_s8): Likewise.
3209         (vsub_s16): Likewise.
3210         (vsub_s32): Likewise.
3211         (vsub_f32): Likewise.
3212         (vsub_u8): Likewise.
3213         (vsub_u16): Likewise.
3214         (vsub_u32): Likewise.
3215         (vsub_s64): Likewise.
3216         (vsub_u64): Likewise.
3217         (vsubq_s8): Likewise.
3218         (vsubq_s16): Likewise.
3219         (vsubq_s32): Likewise.
3220         (vsubq_s64): Likewise.
3221         (vsubq_f32): Likewise.
3222         (vsubq_u8): Likewise.
3223         (vsubq_u16): Likewise.
3224         (vsubq_u32): Likewise.
3225         (vsubq_u64): Likewise.
3226         (vand_s8): Likewise.
3227         (vand_s16): Likewise.
3228         (vand_s32): Likewise.
3229         (vand_u8): Likewise.
3230         (vand_u16): Likewise.
3231         (vand_u32): Likewise.
3232         (vand_s64): Likewise.
3233         (vand_u64): Likewise.
3234         (vandq_s8): Likewise.
3235         (vandq_s16): Likewise.
3236         (vandq_s32): Likewise.
3237         (vandq_s64): Likewise.
3238         (vandq_u8): Likewise.
3239         (vandq_u16): Likewise.
3240         (vandq_u32): Likewise.
3241         (vandq_u64): Likewise.
3242         (vorr_s8): Likewise.
3243         (vorr_s16): Likewise.
3244         (vorr_s32): Likewise.
3245         (vorr_u8): Likewise.
3246         (vorr_u16): Likewise.
3247         (vorr_u32): Likewise.
3248         (vorr_s64): Likewise.
3249         (vorr_u64): Likewise.
3250         (vorrq_s8): Likewise.
3251         (vorrq_s16): Likewise.
3252         (vorrq_s32): Likewise.
3253         (vorrq_s64): Likewise.
3254         (vorrq_u8): Likewise.
3255         (vorrq_u16): Likewise.
3256         (vorrq_u32): Likewise.
3257         (vorrq_u64): Likewise.
3258         (veor_s8): Likewise.
3259         (veor_s16): Likewise.
3260         (veor_s32): Likewise.
3261         (veor_u8): Likewise.
3262         (veor_u16): Likewise.
3263         (veor_u32): Likewise.
3264         (veor_s64): Likewise.
3265         (veor_u64): Likewise.
3266         (veorq_s8): Likewise.
3267         (veorq_s16): Likewise.
3268         (veorq_s32): Likewise.
3269         (veorq_s64): Likewise.
3270         (veorq_u8): Likewise.
3271         (veorq_u16): Likewise.
3272         (veorq_u32): Likewise.
3273         (veorq_u64): Likewise.
3274         (vbic_s8): Likewise.
3275         (vbic_s16): Likewise.
3276         (vbic_s32): Likewise.
3277         (vbic_u8): Likewise.
3278         (vbic_u16): Likewise.
3279         (vbic_u32): Likewise.
3280         (vbic_s64): Likewise.
3281         (vbic_u64): Likewise.
3282         (vbicq_s8): Likewise.
3283         (vbicq_s16): Likewise.
3284         (vbicq_s32): Likewise.
3285         (vbicq_s64): Likewise.
3286         (vbicq_u8): Likewise.
3287         (vbicq_u16): Likewise.
3288         (vbicq_u32): Likewise.
3289         (vbicq_u64): Likewise.
3290         (vorn_s8): Likewise.
3291         (vorn_s16): Likewise.
3292         (vorn_s32): Likewise.
3293         (vorn_u8): Likewise.
3294         (vorn_u16): Likewise.
3295         (vorn_u32): Likewise.
3296         (vorn_s64): Likewise.
3297         (vorn_u64): Likewise.
3298         (vornq_s8): Likewise.
3299         (vornq_s16): Likewise.
3300         (vornq_s32): Likewise.
3301         (vornq_s64): Likewise.
3302         (vornq_u8): Likewise.
3303         (vornq_u16): Likewise.
3304         (vornq_u32): Likewise.
3305         (vornq_u64): Likewise.
3306
3307 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3308
3309         * wide-int.cc (UTItype): Define.
3310         (UDWtype): Define for appropriate W_TYPE_SIZE.
3311
3312 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
3313
3314         PR tree-optimization/59100
3315         * tree-ssa-phiopt.c: Include tree-inline.h.
3316         (neutral_element_p, absorbing_element_p): New functions.
3317         (value_replacement): Handle conditional binary operations with a
3318         neutral or absorbing element.
3319
3320 2014-05-08  Richard Biener  <rguenther@suse.de>
3321
3322         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
3323         folding the expression.
3324         (valueize_expr): Remove.
3325         (visit_reference_op_load): Do not valueize the result of
3326         vn_get_expr_for.
3327         (simplify_binary_expression): Likewise.
3328         (simplify_unary_expression): Likewise.
3329
3330 2014-05-08  Richard Biener  <rguenther@suse.de>
3331
3332         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
3333         looking at TYPE_ARG_TYPES.
3334
3335 2014-05-08  Richard Biener  <rguenther@suse.de>
3336
3337         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
3338         pointer propagation special-case.
3339
3340 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
3341
3342         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
3343         core part of address expressions.
3344
3345 2014-05-08  Alan Modra  <amodra@gmail.com>
3346
3347         PR target/60737
3348         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
3349         loads and stores when -mno-strict-align at any alignment.
3350         (expand_block_clear): Similarly.  Also correct calculation of
3351         instruction count.
3352
3353 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3354
3355         PR middle-end/39246
3356         * tree-complex.c (expand_complex_move): Keep line info when expanding
3357         complex move.
3358         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
3359         of complex expression. Use new argument to display correct location
3360         for values coming from phi statement.
3361         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
3362         (warn_uninitialized_phi): Pass location of phi argument to
3363         warn_uninit.
3364         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
3365         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
3366
3367 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
3368
3369         * config/rs6000/predicates.md (indexed_address_mem): New.
3370         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
3371         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
3372         fpstore_ux, fpstore_u.
3373         (sign_extend, indexed, update): New.
3374         (cell_micro): Adjust.
3375         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
3376         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
3377         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
3378         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
3379         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
3380         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
3381         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
3382         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
3383         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
3384         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
3385         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
3386         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
3387         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
3388         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
3389         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
3390
3391         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
3392         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
3393         *vsx_extract_<mode>_store): Adjust.
3394         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
3395         is_cracked_insn, insn_must_be_first_in_group,
3396         insn_must_be_last_in_group): Adjust.
3397
3398         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
3399         Adjust.
3400         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
3401         ppc440-fpstore): Adjust.
3402         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
3403         ppc476-fpstore): Adjust.
3404         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
3405         ppc601-fpstore): Adjust.
3406         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
3407         Adjust.
3408         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
3409         Adjust.
3410         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
3411         ppc7450-fpstore): Adjust.
3412         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
3413         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
3414         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
3415         Adjust.
3416         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
3417         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
3418         cell-fpstore, cell-fpstore-update): Adjust.
3419         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
3420         ppce300c3_store, ppce300c3_fpstore): Adjust.
3421         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
3422         e500mc_fpstore): Adjust.
3423         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
3424         e500mc64_store, e500mc64_fpstore): Adjust.
3425         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
3426         e5500_fpstore): Adjust.
3427         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
3428         e6500_fpstore): Adjust.
3429         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
3430         Adjust.
3431         * config/rs6000/power4.md (power4-load, power4-load-ext,
3432         power4-load-ext-update, power4-load-ext-update-indexed,
3433         power4-load-update-indexed, power4-load-update, power4-fpload,
3434         power4-fpload-update, power4-store, power4-store-update,
3435         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
3436         Adjust.
3437         * config/rs6000/power5.md (power5-load, power5-load-ext,
3438         power5-load-ext-update, power5-load-ext-update-indexed,
3439         power5-load-update-indexed, power5-load-update, power5-fpload,
3440         power5-fpload-update, power5-store, power5-store-update,
3441         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
3442         Adjust.
3443         * config/rs6000/power6.md (power6-load, power6-load-ext,
3444         power6-load-update, power6-load-update-indexed,
3445         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
3446         power6-fpload-update, power6-store, power6-store-update,
3447         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
3448         Adjust.
3449         * config/rs6000/power7.md (power7-load, power7-load-ext,
3450         power7-load-update, power7-load-update-indexed,
3451         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
3452         power7-fpload-update, power7-store, power7-store-update,
3453         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
3454         Adjust.
3455         * config/rs6000/power8.md (power8-load, power8-load-update,
3456         power8-load-ext, power8-load-ext-update, power8-fpload,
3457         power8-fpload-update, power8-store, power8-store-update-indexed,
3458         power8-fpstore, power8-fpstore-update): Adjust.
3459         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
3460         Adjust.
3461         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
3462         titan_lsu_store, titan_lsu_fpstore): Adjust.
3463         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
3464
3465 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
3466
3467         PR target/60884
3468         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
3469         unrolled byte insns.  Emit address increments after move insns.
3470
3471 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
3472
3473         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
3474         const_gimple, rather than a gimple.
3475         (gimple_call_builtin_p): Likewise, for the three variants.
3476
3477         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
3478         (gimple_call_builtin_p): Likewise, for the three variants.
3479
3480 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
3481
3482         PR tree-optimization/61095
3483         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
3484
3485 2014-05-07  Richard Biener  <rguenther@suse.de>
3486
3487         PR tree-optimization/61034
3488         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
3489         (maybe_skip_until): Use translate to take into account
3490         lattices when trying to do disambiguations.
3491         (get_continuation_for_phi_1): Likewise.
3492         (get_continuation_for_phi): Adjust for added translate arguments.
3493         (walk_non_aliased_vuses): Likewise.
3494         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
3495         (walk_non_aliased_vuses): Likewise.
3496         (call_may_clobber_ref_p_1): Declare.
3497         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
3498         calls.  Stop early if we are only supposed to disambiguate.
3499         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
3500
3501 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
3502
3503         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
3504         Emit an error when the function has arguments.
3505
3506 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
3507
3508         * cfgloop.h (unswitch_loops): Remove.
3509         * doc/passes.texi: Remove references to loop-unswitch.c
3510         * timevar.def (TV_LOOP_UNSWITCH): Remove.
3511
3512 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
3513
3514         * tree-vect-data-refs.c (vect_grouped_load_supported): New
3515         check for loads group of length 3.
3516         (vect_permute_load_chain): New permutations for loads group of
3517         length 3.
3518         * tree-vect-stmts.c (vect_model_load_cost): Change cost
3519         of vec_perm_shuffle for the new permutations.
3520
3521 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
3522
3523         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
3524         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
3525         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
3526         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
3527         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
3528         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
3529         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
3530         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
3531
3532 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
3533
3534         * loop-unswitch.c: Delete.
3535
3536 2014-05-07  Richard Biener  <rguenther@suse.de>
3537
3538         * config.gcc: Always set need_64bit_hwint to yes.
3539
3540 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
3541
3542         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
3543         of using optimize_size.
3544
3545 2014-05-06  Mike Stump  <mikestump@comcast.net>
3546
3547         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
3548
3549 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
3550
3551         * config/i386/sse.md (*mov<mode>_internal)
3552         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
3553         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
3554         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
3555         (*<code><mode>3, *andnot<mode>3<mask_name>)
3556         (<mask_codefor><code><mode>3<mask_name>): Only consider
3557         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
3558
3559 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
3560
3561         Revert:
3562         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
3563
3564         * lra-constraints.c (valid_address_p): Move earlier in file.
3565         Add a constraint argument to the address_info version.
3566         (satisfies_memory_constraint_p): New function.
3567         (satisfies_address_constraint_p): Likewise.
3568         (process_alt_operands, curr_insn_transform): Use them.
3569         (process_address): Pass the constraint to valid_address_p when
3570         checking address operands.
3571
3572 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
3573
3574         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
3575         to their respective blocks.  Fix inadvertent use of "node".
3576
3577 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
3578
3579         * emit-rtl.c (init_derived_machine_modes): New functionm, split
3580         out from...
3581         (init_emit_once): ...here.
3582         * rtl.h (init_derived_machine_modes): Declare.
3583         * toplev.c (do_compile): Call it even if no_backend.
3584
3585 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
3586             Mike Stump  <mikestump@comcast.net>
3587             Richard Sandiford  <rdsandiford@googlemail.com>
3588             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3589
3590         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
3591         (rtx_equal_for_memref_p): Update comment.
3592         (adjust_offset_for_component_ref): Use wide-int interfaces.
3593         * builtins.c (get_object_alignment_2): Likewise.
3594         (c_readstr): Likewise.
3595         (target_char_cast): Add comment.
3596         (determine_block_size): Use wide-int interfaces.
3597         (expand_builtin_signbit): Likewise.
3598         (fold_builtin_int_roundingfn): Likewise.
3599         (fold_builtin_bitop): Likewise.
3600         (fold_builtin_bswap): Likewise.
3601         (fold_builtin_logarithm): Use signop.
3602         (fold_builtin_pow): Likewise.
3603         (fold_builtin_memory_op): Use wide-int interfaces.
3604         (fold_builtin_object_size): Likewise.
3605         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
3606         nb_iterations_estimate.
3607         (record_niter_bound): Use wide-int interfaces.
3608         (get_estimated_loop_iterations_int): Likewise.
3609         (get_estimated_loop_iterations): Likewise.
3610         (get_max_loop_iterations): Likewise.
3611         * cfgloop.h: Include wide-int.h.
3612         (struct nb_iter_bound): Change bound to widest_int.
3613         (struct loop): Change nb_iterations_upper_bound and
3614         nb_iterations_estimate to widest_int.
3615         (record_niter_bound): Switch to use widest_int.
3616         (get_estimated_loop_iterations): Likewise.
3617         (get_max_loop_iterations): Likewise.
3618         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
3619         update for wide-int.
3620         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
3621         * combine.c (try_combine): Likewise.
3622         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
3623         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
3624         interfaces.
3625         (aarch64_float_const_representable_p): Likewise.
3626         * config/arc/arc.c: Include wide-int.h.
3627         (arc_can_use_doloop_p): Use wide-int interfaces.
3628         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
3629         (vfp3_const_double_index): Likewise.
3630         * config/avr/avr.c (avr_out_round): Likewise.
3631         (avr_fold_builtin): Likewise.
3632         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
3633         (bfin_can_use_doloop_p): Likewise.
3634         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
3635         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
3636         * config/i386/i386.c: Include wide-int.h.
3637         (ix86_data_alignment): Use wide-int interfaces.
3638         (ix86_local_alignment): Likewise.
3639         (ix86_emit_swsqrtsf): Update real_from_integer.
3640         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
3641         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
3642         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
3643         (zero_constant): Likewise.
3644         (input_operand): Likewise.
3645         (splat_input_operand): Likewise.
3646         (non_logical_cint_operand): Change const_double to const_wide_int.
3647         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
3648         (easy_altivec_constant): Remove comment.
3649         (paired_expand_vector_init): Use CONSTANT_P.
3650         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
3651         (rs6000_emit_move): Update checks.
3652         (rs6000_aggregate_candidate): Use wide-int interfaces.
3653         (rs6000_expand_ternop_builtin): Likewise.
3654         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
3655         (rs6000_assemble_integer): Likewise.
3656         (rs6000_hash_constant): Likewise.
3657         (output_toc): Likewise.
3658         (rs6000_rtx_costs): Likewise.
3659         (rs6000_emit_swrsqrt); Update call to real_from_integer.
3660         * config/rs6000/rs6000-c.c: Include wide-int.h.
3661         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
3662         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
3663         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
3664         Handle CONST_WIDE_INT.
3665         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
3666         Use tree_fits_uhwi_p.
3667         * config/sparc/sparc.c: Include wide-int.h.
3668         (sparc_fold_builtin): Use wide-int interfaces.
3669         * config/vax/vax.c: Include wide-int.h.
3670         (vax_float_literal): Use real_from_integer.
3671         * coretypes.h (struct hwivec_def): New.
3672         (hwivec): New.
3673         (const_hwivec): New.
3674         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
3675         (equiv_constant): Handle CONST_WIDE_INT.
3676         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
3677         (cselib_hash_rtx): Handle CONST_WIDE_INT.
3678         * dbxout.c (stabstr_U): Use wide-int interfaces.
3679         (dbxout_type): Update to use cst_fits_shwi_p.
3680         * defaults.h (LOG2_BITS_PER_UNIT): Define.
3681         (TARGET_SUPPORTS_WIDE_INT): Add default.
3682         * dfp.c: Include wide-int.h.
3683         (decimal_real_to_integer2): Use wide-int interfaces and rename to
3684         decimal_real_to_integer.
3685         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
3686         decimal_real_to_integer.
3687         * doc/generic.texi (Constant expressions): Update for wide_int.
3688         * doc/rtl.texi (const_double): Likewise.
3689         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
3690         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
3691         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
3692         (REAL_VALUE_FROM_INT): Remove.
3693         (TARGET_SUPPORTS_WIDE_INT): New.
3694         * doc/tm.texi: Regenerate.
3695         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
3696         * double-int.h: Include wide-int.h.
3697         (struct wi::int_traits): New.
3698         * dwarf2out.c (get_full_len): New.
3699         (dw_val_equal_p): Add case dw_val_class_wide_int.
3700         (size_of_loc_descr): Likewise.
3701         (output_loc_operands): Likewise.
3702         (insert_double): Remove.
3703         (insert_wide_int): New.
3704         (add_AT_wide): New.
3705         (print_die): Add case dw_val_class_wide_int.
3706         (attr_checksum): Likewise.
3707         (attr_checksum_ordered): Likewise.
3708         (same_dw_val_p): Likewise.
3709         (size_of_die): Likewise.
3710         (value_format): Likewise.
3711         (output_die): Likewise.
3712         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
3713         Use wide-int.
3714         (clz_loc_descriptor): Use wide-int interfaces.
3715         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
3716         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
3717         (round_up_to_align): Use wide-int interfaces.
3718         (field_byte_offset): Likewise.
3719         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
3720         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
3721         CONST_DOUBLE handling.  Use wide-int interfaces.
3722         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
3723         (gen_enumeration_type_die): Use add_AT_wide.
3724         (hash_loc_operands): Add case dw_val_class_wide_int.
3725         (compare_loc_operands): Likewise.
3726         * dwarf2out.h: Include wide-int.h.
3727         (wide_int_ptr): New.
3728         (enum dw_val_class): Add dw_val_class_wide_int.
3729         (struct dw_val_struct): Add val_wide.
3730         * emit-rtl.c (const_wide_int_htab): New.
3731         (const_wide_int_htab_hash): New.
3732         (const_wide_int_htab_eq): New.
3733         (lookup_const_wide_int): New.
3734         (const_double_htab_hash): Use wide-int interfaces.
3735         (const_double_htab_eq): Likewise.
3736         (rtx_to_double_int): Conditionally compile for wide-int.
3737         (immed_double_int_const): Rename to immed_wide_int_const and
3738         update for wide-int.
3739         (immed_double_const): Conditionally compile for wide-int.
3740         (init_emit_once): Use wide-int interfaces.
3741         * explow.c (plus_constant): Likewise.
3742         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
3743         (lshift_value): Use wide-int interfaces.
3744         (expand_mult): Likewise.
3745         (choose_multiplier): Likewise.
3746         (expand_smod_pow2): Likewise.
3747         (make_tree): Likewise.
3748         * expr.c (convert_modes): Consolidate handling of constants.
3749         Use wide-int interfaces.
3750         (emit_group_load_1): Add note.
3751         (store_expr): Update comment.
3752         (get_inner_reference): Use wide-int interfaces.
3753         (expand_constructor): Update comment.
3754         (expand_expr_real_2): Use wide-int interfaces.
3755         (expand_expr_real_1): Likewise.
3756         (reduce_to_bit_field_precision): Likewise.
3757         (const_vector_from_tree): Likewise.
3758         * final.c: Include wide-int-print.h.
3759         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
3760         * fixed-value.c: Include wide-int.h.
3761         (fixed_from_string): Use wide-int interfaces.
3762         (fixed_to_decimal): Likewise.
3763         (fixed_convert_from_real): Likewise.
3764         (real_convert_from_fixed): Likewise.
3765         * fold-const.h (mem_ref_offset): Return an offset_int.
3766         (div_if_zero_remainder): Remove code parameter.
3767         * fold-const.c (div_if_zero_remainder): Remove code parameter.
3768         Use wide-int interfaces.
3769         (may_negate_without_overflow_p): Use wide-int interfaces.
3770         (negate_expr_p): Likewise.
3771         (fold_negate_expr): Likewise.
3772         (int_const_binop_1): Likewise.
3773         (const_binop): Likewise.
3774         (fold_convert_const_int_from_int): Likewise.
3775         (fold_convert_const_int_from_real): Likewise.
3776         (fold_convert_const_int_from_fixed): Likewise.
3777         (fold_convert_const_fixed_from_int): Likewise.
3778         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
3779         (sign_bit_p): Use wide-int interfaces.
3780         (make_range_step): Likewise.
3781         (build_range_check): Likewise.  Pass an integer of the correct type
3782         instead of using integer_one_node.
3783         (range_predecessor): Pass an integer of the correct type instead
3784         of using integer_one_node.
3785         (range_successor): Likewise.
3786         (merge_ranges): Likewise.
3787         (unextend): Use wide-int interfaces.
3788         (extract_muldiv_1): Likewise.
3789         (fold_div_compare): Likewise.
3790         (fold_single_bit_test): Likewise.
3791         (fold_sign_changed_comparison): Likewise.
3792         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
3793         (fold_plusminus_mult_expr): Use wide-int interfaces.
3794         (native_encode_int): Likewise.
3795         (native_interpret_int): Likewise.
3796         (fold_unary_loc): Likewise.
3797         (pointer_may_wrap_p): Likewise.
3798         (size_low_cst): Likewise.
3799         (mask_with_tz): Likewise.
3800         (fold_binary_loc): Likewise.
3801         (fold_ternary_loc): Likewise.
3802         (multiple_of_p): Likewise.
3803         (tree_call_nonnegative_warnv_p): Update calls to
3804         tree_int_cst_min_precision and real_from_integer.
3805         (fold_negate_const): Use wide-int interfaces.
3806         (fold_abs_const): Likewise.
3807         (fold_relational_const): Use tree_int_cst_lt.
3808         (round_up_loc): Use wide-int interfaces.
3809         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
3810         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
3811         * gengtype.c: Remove include of double-int.h.
3812         (do_typedef): Use wide-int interfaces.
3813         (open_base_files): Add wide-int.h.
3814         (main): Add offset_int and widest_int typedefs.
3815         * gengtype-lex.l: Handle "^".
3816         (CXX_KEYWORD): Add "static".
3817         * gengtype-parse.c (require3): New.
3818         (require_template_declaration): Handle constant template arguments
3819         and nested templates.
3820         * gengtype-state.c: Don't include "double-int.h".
3821         * genpreds.c (write_one_predicate_function): Update comment.
3822         (write_tm_constrs_h): Add check for hval and lval use in
3823         CONST_WIDE_INT.
3824         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
3825         (add_to_sequence): Likewise.
3826         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
3827         and const_double_operand.
3828         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
3829         interfaces.
3830         * gimple-fold.c (get_base_constructor): Likewise.
3831         (fold_array_ctor_reference): Likewise.
3832         (fold_nonarray_ctor_reference): Likewise.
3833         (fold_const_aggregate_ref_1): Likewise.
3834         (gimple_val_nonnegative_real_p): Likewise.
3835         (gimple_fold_indirect_ref): Likewise.
3836         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
3837         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
3838         (struct slsr_cand_d): Change index to be widest_int.
3839         (struct incr_info_d): Change incr to be widest_int.
3840         (alloc_cand_and_find_basis): Use wide-int interfaces.
3841         (slsr_process_phi): Likewise.
3842         (backtrace_base_for_ref): Likewise.  Return a widest_int.
3843         (restructure_reference): Take a widest_int instead of a double_int.
3844         (slsr_process_ref): Use wide-int interfaces.
3845         (create_mul_ssa_cand): Likewise.
3846         (create_mul_imm_cand): Likewise.
3847         (create_add_ssa_cand): Likewise.
3848         (create_add_imm_cand): Take a widest_int instead of a double_int.
3849         (slsr_process_add): Use wide-int interfaces.
3850         (slsr_process_cast): Likewise.
3851         (slsr_process_copy): Likewise.
3852         (dump_candidate): Likewise.
3853         (dump_incr_vec): Likewise.
3854         (replace_ref): Likewise.
3855         (cand_increment): Likewise.  Return a widest_int.
3856         (cand_abs_increment): Likewise.
3857         (replace_mult_candidate): Take a widest_int instead of a double_int.
3858         (replace_unconditional_candidate): Use wide-int interfaces.
3859         (incr_vec_index): Take a widest_int instead of a double_int.
3860         (create_add_on_incoming_edge): Likewise.
3861         (create_phi_basis): Use wide-int interfaces.
3862         (replace_conditional_candidate): Likewise.
3863         (record_increment): Take a widest_int instead of a double_int.
3864         (record_phi_increments): Use wide-int interfaces.
3865         (phi_incr_cost): Take a widest_int instead of a double_int.
3866         (lowest_cost_path): Likewise.
3867         (total_savings): Likewise.
3868         (analyze_increments): Use wide-int interfaces.
3869         (ncd_with_phi): Take a widest_int instead of a double_int.
3870         (ncd_of_cand_and_phis): Likewise.
3871         (nearest_common_dominator_for_cands): Likewise.
3872         (insert_initializers): Use wide-int interfaces.
3873         (all_phi_incrs_profitable): Likewise.
3874         (replace_one_candidate): Likewise.
3875         (replace_profitable_candidates): Likewise.
3876         * godump.c: Include wide-int-print.h.
3877         (go_output_typedef): Use wide-int interfaces.
3878         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
3879         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
3880         (build_loop_iteration_domains): Likewise.
3881         * hooks.h: Include wide-int.h rather than double-int.h.
3882         (hook_bool_dint_dint_uint_bool_true): Delete.
3883         (hook_bool_wint_wint_uint_bool_true): Declare.
3884         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
3885         (hook_bool_wint_wint_uint_bool_true): New.
3886         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
3887         interfaces.
3888         (ubsan_expand_si_overflow_mul_check): Likewise.
3889         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
3890         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
3891         (get_ancestor_addr_info): Likewise.
3892         (ipa_modify_call_arguments): Likewise.
3893         * loop-doloop.c (doloop_modify): Likewise.
3894         (doloop_optimize): Likewise.
3895         * loop-iv.c (iv_number_of_iterations): Likewise.
3896         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
3897         (unroll_loop_constant_iterations): Likewise.
3898         (decide_unroll_runtime_iterations): Likewise.
3899         (unroll_loop_runtime_iterations): Likewise.
3900         (decide_peel_simple): Likewise.
3901         (decide_unroll_stupid): Likewise.
3902         * lto-streamer-in.c (streamer_read_wi): Add.
3903         (input_cfg): Use wide-int interfaces.
3904         (lto_input_tree_1): Likewise.
3905         * lto-streamer-out.c (streamer_write_wi): Add.
3906         (hash_tree): Use wide-int interfaces.
3907         (output_cfg): Likewise.
3908         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
3909         (GTFILES): Add wide-int.h and signop.h.
3910         (TAGS): Look for .cc files too.
3911         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
3912         * optabs.c (expand_subword_shift): Likewise.
3913         (expand_doubleword_shift): Likewise.
3914         (expand_absneg_bit): Likewise.
3915         (expand_copysign_absneg): Likewise.
3916         (expand_copysign_bit): Likewise.
3917         * postreload.c (reload_cse_simplify_set): Likewise.
3918         * predict.c (predict_iv_comparison): Likewise.
3919         * pretty-print.h: Include wide-int-print.h.
3920         (pp_wide_int) New.
3921         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
3922         * print-tree.c: Include wide-int-print.h.
3923         (print_node_brief): Use wide-int interfaces.
3924         (print_node): Likewise.
3925         * read-rtl.c (validate_const_wide_int): New.
3926         (read_rtx_code): Add CONST_WIDE_INT case.
3927         * real.c: Include wide-int.h.
3928         (real_to_integer2): Delete.
3929         (real_to_integer): New function, returning a wide_int.
3930         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
3931         (ten_to_ptwo): Update call to real_from_integer.
3932         (real_digit): Likewise.
3933         * real.h: Include signop.h, wide-int.h and insn-modes.h.
3934         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
3935         (REAL_VALUE_TO_INT): Delete.
3936         (real_to_integer): Declare a wide-int form.
3937         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
3938         * recog.c (const_int_operand): Improve comment.
3939         (const_scalar_int_operand): New.
3940         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
3941         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
3942         (split_double): Likewise.
3943         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
3944         (rtx_size): Likewise.
3945         (rtx_alloc_stat_v): New.
3946         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
3947         (cwi_output_hex): New.
3948         (iterative_hash_rtx): Handle CONST_WIDE_INT.
3949         (cwi_check_failed_bounds): New.
3950         * rtl.def (CONST_WIDE_INT): New.
3951         * rtl.h: Include <utility> and wide-int.h.
3952         (struct hwivec_def): New.
3953         (CWI_GET_NUM_ELEM): New.
3954         (CWI_PUT_NUM_ELEM): New.
3955         (struct rtx_def): Add num_elem and hwiv.
3956         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
3957         (CASE_CONST_UNIQUE): Likewise.
3958         (CASE_CONST_ANY): Likewise.
3959         (CONST_SCALAR_INT_P): Likewise.
3960         (CONST_WIDE_INT_P): New.
3961         (CWI_ELT): New.
3962         (HWIVEC_CHECK): New.
3963         (cwi_check_failed_bounds): New.
3964         (CWI_ELT): New.
3965         (HWIVEC_CHECK): New.
3966         (CONST_WIDE_INT_VEC) New.
3967         (CONST_WIDE_INT_NUNITS) New.
3968         (CONST_WIDE_INT_ELT) New.
3969         (rtx_mode_t): New type.
3970         (wi::int_traits <rtx_mode_t>): New.
3971         (wi::shwi): New.
3972         (wi::min_value): New.
3973         (wi::max_value): New.
3974         (rtx_alloc_v) New.
3975         (const_wide_int_alloc): New.
3976         (immed_wide_int_const): New.
3977         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
3978         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
3979         * signop.h: New file.
3980         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
3981         (simplify_const_unary_operation): Use wide-int interfaces.
3982         (simplify_binary_operation_1): Likewise.
3983         (simplify_const_binary_operation): Likewise.
3984         (simplify_const_relational_operation): Likewise.
3985         (simplify_immed_subreg): Likewise.
3986         * stmt.c (expand_case): Likewise.
3987         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
3988         signop rather than a bool.
3989         * stor-layout.c (layout_type): Use wide-int interfaces.
3990         (initialize_sizetypes): Update calls to
3991         set_min_and_max_values_for_integral_type.
3992         (set_min_and_max_values_for_integral_type): Take a signop rather
3993         than a bool.  Use wide-int interfaces.
3994         (fixup_signed_type): Update accordingly.  Remove
3995         HOST_BITS_PER_DOUBLE_INT limit.
3996         (fixup_unsigned_type): Likewise.
3997         * system.h (STATIC_CONSTANT_P): New.
3998         (STATIC_ASSERT): New.
3999         * target.def (can_use_doloop_p): Take widest_ints rather than
4000         double_ints.
4001         * target.h: Include wide-int.h rather than double-int.h.
4002         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
4003         than double_ints.
4004         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
4005         rather than INT_CST_LT_UNSIGNED.
4006         (can_use_doloop_if_innermost): Take widest_ints rather than
4007         double_ints.
4008         * tree-affine.c: Include wide-int-print.h.
4009         (double_int_ext_for_comb): Delete.
4010         (wide_int_ext_for_comb): New.
4011         (aff_combination_zero): Use wide-int interfaces.
4012         (aff_combination_const): Take a widest_int instead of a double_int.
4013         (aff_combination_elt): Use wide-int interfaces.
4014         (aff_combination_scale): Take a widest_int instead of a double_int.
4015         (aff_combination_add_elt): Likewise.
4016         (aff_combination_add_cst): Likewise.
4017         (aff_combination_add): Use wide-int interfaces.
4018         (aff_combination_convert): Likewise.
4019         (tree_to_aff_combination): Likewise.
4020         (add_elt_to_tree): Take a widest_int instead of a double_int.
4021         (aff_combination_to_tree): Use wide-int interfaces.
4022         (aff_combination_remove_elt): Likewise.
4023         (aff_combination_add_product): Take a widest_int instead of
4024         a double_int.
4025         (aff_combination_mult): Use wide-int interfaces.
4026         (aff_combination_expand): Likewise.
4027         (double_int_constant_multiple_p): Delete.
4028         (wide_int_constant_multiple_p): New.
4029         (aff_combination_constant_multiple_p): Take a widest_int pointer
4030         instead of a double_int pointer.
4031         (print_aff): Use wide-int interfaces.
4032         (get_inner_reference_aff): Take a widest_int pointer
4033         instead of a double_int pointer.
4034         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
4035         * tree-affine.h: Include wide-int.h.
4036         (struct aff_comb_elt): Change type of coef to widest_int.
4037         (struct affine_tree_combination): Change type of offset to widest_int.
4038         (double_int_ext_for_comb): Delete.
4039         (wide_int_ext_for_comb): New.
4040         (aff_combination_const): Use widest_int instead of double_int.
4041         (aff_combination_scale): Likewise.
4042         (aff_combination_add_elt): Likewise.
4043         (aff_combination_constant_multiple_p): Likewise.
4044         (get_inner_reference_aff): Likewise.
4045         (aff_comb_cannot_overlap_p): Likewise.
4046         (aff_combination_zero_p): Use wide-int interfaces.
4047         * tree.c: Include tree.h.
4048         (init_ttree): Use make_int_cst.
4049         (tree_code_size): Removed code for INTEGER_CST case.
4050         (tree_size): Add INTEGER_CST case.
4051         (make_node_stat): Update comment.
4052         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
4053         (build_int_cst_type): Use wide-int interfaces.
4054         (double_int_to_tree): Likewise.
4055         (double_int_fits_to_tree_p): Delete.
4056         (force_fit_type_double): Delete.
4057         (force_fit_type): New.
4058         (int_cst_hash_hash): Use wide-int interfaces.
4059         (int_cst_hash_eq): Likewise.
4060         (build_int_cst_wide): Delete.
4061         (wide_int_to_tree): New.
4062         (cache_integer_cst): Use wide-int interfaces.
4063         (build_low_bits_mask): Likewise.
4064         (cst_and_fits_in_hwi): Likewise.
4065         (real_value_from_int_cst): Likewise.
4066         (make_int_cst_stat): New.
4067         (integer_zerop): Use wide_int interfaces.
4068         (integer_onep): Likewise.
4069         (integer_all_onesp): Likewise.
4070         (integer_pow2p): Likewise.
4071         (integer_nonzerop): Likewise.
4072         (tree_log2): Likewise.
4073         (tree_floor_log2): Likewise.
4074         (tree_ctz): Likewise.
4075         (int_size_in_bytes): Likewise.
4076         (mem_ref_offset): Return an offset_int rather than a double_int.
4077         (build_type_attribute_qual_variant): Use wide_int interfaces.
4078         (type_hash_eq): Likewise
4079         (tree_int_cst_equal): Likewise.
4080         (tree_int_cst_lt): Delete.
4081         (tree_int_cst_compare): Likewise.
4082         (tree_fits_shwi_p): Use wide_int interfaces.
4083         (tree_fits_uhwi_p): Likewise.
4084         (tree_int_cst_sign_bit): Likewise.
4085         (tree_int_cst_sgn): Likewise.
4086         (tree_int_cst_min_precision): Take a signop rather than a bool.
4087         (simple_cst_equal): Use wide_int interfaces.
4088         (compare_tree_int): Likewise.
4089         (iterative_hash_expr): Likewise.
4090         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
4091         INT_CST_LT.
4092         (get_type_static_bounds): Use wide_int interfaces.
4093         (tree_int_cst_elt_check_failed): New.
4094         (build_common_tree_nodes): Reordered to set prec before filling in
4095         value.
4096         (int_cst_value): Check cst_and_fits_in_hwi.
4097         (widest_int_cst_value): Use wide_int interfaces.
4098         (upper_bound_in_type): Likewise.
4099         (lower_bound_in_type): Likewise.
4100         (num_ending_zeros): Likewise.
4101         (drop_tree_overflow): Likewise.
4102         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
4103         (gen_conditions_for_pow_cst_base): Likewise.
4104         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
4105         (group_case_labels_stmt): Use wide-int interfaces.
4106         (verify_gimple_assign_binary): Likewise.
4107         (print_loop): Likewise.
4108         * tree-chrec.c (tree_fold_binomial): Likewise.
4109         * tree-core.h (struct tree_base): Add int_length.
4110         (struct tree_int_cst): Change rep of value.
4111         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
4112         (dr_may_alias_p): Likewise.
4113         (max_stmt_executions_tree): Likewise.
4114         * tree.def (INTEGER_CST): Update comment.
4115         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
4116         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
4117         * tree-dump.c: Include wide-int.h and wide-int-print.h.
4118         (dequeue_and_dump): Use wide-int interfaces.
4119         * tree.h: Include wide-int.h.
4120         (NULL_TREE): Moved to earlier loc in file.
4121         (TREE_INT_CST_ELT_CHECK): New.
4122         (tree_int_cst_elt_check_failed): New.
4123         (TYPE_SIGN): New.
4124         (TREE_INT_CST): Delete.
4125         (TREE_INT_CST_LOW): Use wide-int interfaces.
4126         (TREE_INT_CST_HIGH): Delete.
4127         (TREE_INT_CST_NUNITS): New.
4128         (TREE_INT_CST_EXT_NUNITS): Likewise.
4129         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
4130         (TREE_INT_CST_ELT): Likewise.
4131         (INT_CST_LT): Delete.
4132         (tree_int_cst_elt_check): New (two forms).
4133         (type_code_size): Update comment.
4134         (make_int_cst_stat, make_int_cst): New.
4135         (tree_to_double_int): Delete.
4136         (double_int_fits_to_tree_p): Delete.
4137         (force_fit_type_double): Delete.
4138         (build_int_cstu): Replace with out-of-line function.
4139         (build_int_cst_wide): Delete.
4140         (tree_int_cst_lt): Define inline.
4141         (tree_int_cst_le): New.
4142         (tree_int_cst_compare): Define inline.
4143         (tree_int_cst_min_precision): Take a signop rather than a bool.
4144         (wi::int_traits <const_tree>): New.
4145         (wi::int_traits <tree>): New.
4146         (wi::extended_tree): New.
4147         (wi::int_traits <wi::extended_tree>): New.
4148         (wi::to_widest): New.
4149         (wi::to_offset): New.
4150         (wi::fits_to_tree_p): New.
4151         (wi::min_value): New.
4152         (wi::max_value): New.
4153         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
4154         (copy_tree_body_r): Likewise.
4155         * tree-object-size.c (compute_object_offset): Likewise.
4156         (addr_object_size): Likewise.
4157         * tree-predcom.c: Include wide-int-print.h.
4158         (struct dref_d): Change type of offset to widest_int.
4159         (dump_dref): Call wide-int printer.
4160         (aff_combination_dr_offset): Use wide-int interfaces.
4161         (determine_offset): Take a widest_int pointer rather than a
4162         double_int pointer.
4163         (split_data_refs_to_components): Use wide-int interfaces.
4164         (suitable_component_p): Likewise.
4165         (order_drefs): Likewise.
4166         (add_ref_to_chain): Likewise.
4167         (valid_initializer_p): Likewise.
4168         (determine_roots_comp): Likewise.
4169         * tree-pretty-print.c: Include wide-int-print.h.
4170         (dump_generic_node): Use wide-int interfaces.
4171         * tree-sra.c (sra_ipa_modify_expr): Likewise.
4172         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
4173         (move_fixed_address_to_symbol): Likewise.
4174         (move_hint_to_base): Likewise.
4175         (move_pointer_to_base): Likewise.
4176         (move_variant_to_index): Likewise.
4177         (most_expensive_mult_to_index): Likewise.
4178         (addr_to_parts): Likewise.
4179         (copy_ref_info): Likewise.
4180         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4181         (indirect_refs_may_alias_p): Likewise.
4182         (stmt_kills_ref_p_1): Likewise.
4183         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
4184         * tree-ssa-ccp.c: Update comment at top of file.  Include
4185         wide-int-print.h.
4186         (struct prop_value_d): Change type of mask to widest_int.
4187         (extend_mask): New function.
4188         (dump_lattice_value): Use wide-int interfaces.
4189         (get_default_value): Likewise.
4190         (set_constant_value): Likewise.
4191         (set_value_varying): Likewise.
4192         (valid_lattice_transition): Likewise.
4193         (set_lattice_value): Likewise.
4194         (value_to_double_int): Delete.
4195         (value_to_wide_int): New.
4196         (get_value_from_alignment): Use wide-int interfaces.
4197         (get_value_for_expr): Likewise.
4198         (do_dbg_cnt): Likewise.
4199         (ccp_finalize): Likewise.
4200         (ccp_lattice_meet): Likewise.
4201         (bit_value_unop_1): Use widest_ints rather than double_ints.
4202         (bit_value_binop_1): Likewise.
4203         (bit_value_unop): Use wide-int interfaces.
4204         (bit_value_binop): Likewise.
4205         (bit_value_assume_aligned): Likewise.
4206         (evaluate_stmt): Likewise.
4207         (ccp_fold_stmt): Likewise.
4208         (visit_cond_stmt): Likewise.
4209         (ccp_visit_stmt): Likewise.
4210         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
4211         (constant_pointer_difference): Likewise.
4212         (associate_pointerplus): Likewise.
4213         (combine_conversions): Likewise.
4214         * tree-ssa-loop.h: Include wide-int.h.
4215         (struct tree_niter_desc): Change type of max to widest_int.
4216         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
4217         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
4218         (remove_redundant_iv_tests): Likewise.
4219         (canonicalize_loop_induction_variables): Likewise.
4220         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
4221         (constant_multiple_of): Take a widest_int pointer instead of
4222         a double_int pointer.
4223         (get_computation_aff): Use wide-int interfaces.
4224         (ptr_difference_cost): Likewise.
4225         (difference_cost): Likewise.
4226         (get_loop_invariant_expr_id): Likewise.
4227         (get_computation_cost_at): Likewise.
4228         (iv_elimination_compare_lt): Likewise.
4229         (may_eliminate_iv): Likewise.
4230         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
4231         instead of double_int.
4232         (max_loop_iterations): Likewise.
4233         (max_stmt_executions): Likewise.
4234         (estimated_stmt_executions): Likewise.
4235         * tree-ssa-loop-niter.c: Include wide-int-print.h.
4236         (split_to_var_and_offset): Use wide-int interfaces.
4237         (determine_value_range): Likewise.
4238         (bound_difference_of_offsetted_base): Likewise.
4239         (bounds_add): Take a widest_int instead of a double_int.
4240         (number_of_iterations_ne_max): Use wide-int interfaces.
4241         (number_of_iterations_ne): Likewise.
4242         (number_of_iterations_lt_to_ne): Likewise.
4243         (assert_loop_rolls_lt): Likewise.
4244         (number_of_iterations_lt): Likewise.
4245         (number_of_iterations_le): Likewise.
4246         (number_of_iterations_cond): Likewise.
4247         (number_of_iterations_exit): Likewise.
4248         (finite_loop_p): Likewise.
4249         (derive_constant_upper_bound_assign): Likewise.
4250         (derive_constant_upper_bound): Return a widest_int.
4251         (derive_constant_upper_bound_ops): Likewise.
4252         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
4253         (record_estimate): Take a widest_int rather than a double_int.
4254         (record_nonwrapping_iv): Use wide-int interfaces.
4255         (double_int_cmp): Delete.
4256         (wide_int_cmp): New.
4257         (bound_index): Take a widest_int rather than a double_int.
4258         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
4259         (maybe_lower_iteration_bound): Likewise.
4260         (estimate_numbers_of_iterations_loop): Likewise.
4261         (estimated_loop_iterations): Take a widest_int pointer than than
4262         a double_int pointer.
4263         (estimated_loop_iterations_int): Use wide-int interfaces.
4264         (max_loop_iterations): Take a widest_int pointer than than
4265         a double_int pointer.
4266         (max_loop_iterations_int): Use wide-int interfaces.
4267         (max_stmt_executions): Take a widest_int pointer than than
4268         a double_int pointer.
4269         (estimated_stmt_executions): Likewise.
4270         (n_of_executions_at_most): Use wide-int interfaces.
4271         (scev_probably_wraps_p): Likewise.
4272         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
4273         to real_to_integer.
4274         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
4275         interfaces.
4276         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
4277         double_ints.  Adjust for trailing_wide_ints <3> representation.
4278         (set_nonzero_bits): Likewise.
4279         (get_range_info): Return wide_ints rather than double_ints.
4280         Adjust for trailing_wide_ints <3> representation.
4281         (get_nonzero_bits): Likewise.
4282         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
4283         representation.
4284         * tree-ssanames.h (struct range_info_def): Replace min, max and
4285         nonzero_bits with a trailing_wide_ints <3>.
4286         (set_range_info): Use wide_int_refs rather than double_ints.
4287         (set_nonzero_bits): Likewise.
4288         (get_range_info): Return wide_ints rather than double_ints.
4289         (get_nonzero_bits): Likewise.
4290         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
4291         * tree-ssa-pre.c (phi_translate_1): Likewise.
4292         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
4293         (acceptable_pow_call): Likewise.
4294         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
4295         interfaces.
4296         (vn_reference_fold_indirect): Likewise.
4297         (vn_reference_maybe_forwprop_address): Likewise.
4298         (valueize_refs_1): Likewise.
4299         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
4300         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
4301         tree_int_cst_lt and tree_int_cst_le.
4302         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
4303         interfaces.
4304         (streamer_alloc_tree): Likewise.
4305         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
4306         (streamer_write_tree_header): Likewise.
4307         (streamer_write_integer_cst): Likewise.
4308         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
4309         (build_constructors): Likewise.
4310         (array_value_type): Likewise.
4311         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
4312         (vect_check_gather): Likewise.
4313         * tree-vect-generic.c (build_replicated_const): Likewise.
4314         (expand_vector_divmod): Likewise.
4315         * tree-vect-loop.c (vect_transform_loop): Likewise.
4316         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
4317         (vect_do_peeling_for_alignment): Likewise.
4318         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
4319         * tree-vrp.c: Include wide-int.h.
4320         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
4321         (extract_range_from_assert): Use wide-int interfaces.
4322         (vrp_int_const_binop): Likewise.
4323         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
4324         double_int pointers.
4325         (ranges_from_anti_range): Use wide-int interfaces.
4326         (quad_int_cmp): Delete.
4327         (quad_int_pair_sort): Likewise.
4328         (extract_range_from_binary_expr_1): Use wide-int interfaces.
4329         (extract_range_from_unary_expr_1): Likewise.
4330         (adjust_range_with_scev): Likewise.
4331         (masked_increment): Take and return wide_ints rather than double_ints.
4332         (register_edge_assert_for_2): Use wide-int interfaces.
4333         (check_array_ref): Likewise.
4334         (search_for_addr_array): Likewise.
4335         (maybe_set_nonzero_bits): Likewise.
4336         (union_ranges): Pass an integer of the correct type instead of
4337         using integer_one_node.
4338         (intersect_ranges): Likewise.
4339         (simplify_truth_ops_using_ranges): Likewise.
4340         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
4341         (range_fits_type_p): Likewise.
4342         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
4343         a bool.
4344         (simplify_conversion_using_ranges): Use wide-int interfaces.
4345         (simplify_float_conversion_using_ranges): Likewise.
4346         (vrp_finalize): Likewise.
4347         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
4348         (gimple_stringops_transform): Likewise.
4349         * varasm.c (decode_addr_const): Likewise.
4350         (const_hash_1): Likewise.
4351         (const_rtx_hash_1): Likewise
4352         (output_constant): Likewise.
4353         (array_size_for_constructor): Likewise.
4354         (output_constructor_regular_field): Likewise.
4355         (output_constructor_bitfield): Likewise.
4356         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
4357         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
4358         GENERATOR_FILEs.
4359         * gencheck.c: Define BITS_PER_UNIT.
4360         * wide-int.cc: New.
4361         * wide-int.h: New.
4362         * wide-int-print.cc: New.
4363         * wide-int-print.h: New.
4364
4365 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4366
4367         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
4368
4369 2014-05-06  Richard Biener  <rguenther@suse.de>
4370
4371         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
4372         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
4373         (TODO_verify_all): Adjust.
4374         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
4375         TODO_verify_stmts and TODO_verify_rtl_sharing.
4376         * bb-reorder.c: Likewise.
4377         * cfgexpand.c: Likewise.
4378         * cprop.c: Likewise.
4379         * cse.c: Likewise.
4380         * function.c: Likewise.
4381         * fwprop.c: Likewise.
4382         * gcse.c: Likewise.
4383         * gimple-ssa-isolate-paths.c: Likewise.
4384         * gimple-ssa-strength-reduction.c: Likewise.
4385         * ipa-split.c: Likewise.
4386         * loop-init.c: Likewise.
4387         * loop-unroll.c: Likewise.
4388         * lower-subreg.c: Likewise.
4389         * modulo-sched.c: Likewise.
4390         * postreload-gcse.c: Likewise.
4391         * predict.c: Likewise.
4392         * recog.c: Likewise.
4393         * sched-rgn.c: Likewise.
4394         * store-motion.c: Likewise.
4395         * tracer.c: Likewise.
4396         * trans-mem.c: Likewise.
4397         * tree-call-cdce.c: Likewise.
4398         * tree-cfg.c: Likewise.
4399         * tree-cfgcleanup.c: Likewise.
4400         * tree-complex.c: Likewise.
4401         * tree-eh.c: Likewise.
4402         * tree-emutls.c: Likewise.
4403         * tree-if-conv.c: Likewise.
4404         * tree-into-ssa.c: Likewise.
4405         * tree-loop-distribution.c: Likewise.
4406         * tree-object-size.c: Likewise.
4407         * tree-parloops.c: Likewise.
4408         * tree-pass.h: Likewise.
4409         * tree-sra.c: Likewise.
4410         * tree-ssa-ccp.c: Likewise.
4411         * tree-ssa-copy.c: Likewise.
4412         * tree-ssa-copyrename.c: Likewise.
4413         * tree-ssa-dce.c: Likewise.
4414         * tree-ssa-dom.c: Likewise.
4415         * tree-ssa-dse.c: Likewise.
4416         * tree-ssa-forwprop.c: Likewise.
4417         * tree-ssa-ifcombine.c: Likewise.
4418         * tree-ssa-loop-ch.c: Likewise.
4419         * tree-ssa-loop-ivcanon.c: Likewise.
4420         * tree-ssa-loop.c: Likewise.
4421         * tree-ssa-math-opts.c: Likewise.
4422         * tree-ssa-phiopt.c: Likewise.
4423         * tree-ssa-phiprop.c: Likewise.
4424         * tree-ssa-pre.c: Likewise.
4425         * tree-ssa-reassoc.c: Likewise.
4426         * tree-ssa-sink.c: Likewise.
4427         * tree-ssa-strlen.c: Likewise.
4428         * tree-ssa-tail-merge.c: Likewise.
4429         * tree-ssa-uncprop.c: Likewise.
4430         * tree-switch-conversion.c: Likewise.
4431         * tree-tailcall.c: Likewise.
4432         * tree-vect-generic.c: Likewise.
4433         * tree-vectorizer.c: Likewise.
4434         * tree-vrp.c: Likewise.
4435         * tsan.c: Likewise.
4436         * var-tracking.c: Likewise.
4437         * bt-load.c: Likewise.
4438         * cfgcleanup.c: Likewise.
4439         * combine-stack-adj.c: Likewise.
4440         * combine.c: Likewise.
4441         * compare-elim.c: Likewise.
4442         * config/epiphany/resolve-sw-modes.c: Likewise.
4443         * config/i386/i386.c: Likewise.
4444         * config/mips/mips.c: Likewise.
4445         * config/s390/s390.c: Likewise.
4446         * config/sh/sh_treg_combine.cc: Likewise.
4447         * config/sparc/sparc.c: Likewise.
4448         * dce.c: Likewise.
4449         * dse.c: Likewise.
4450         * final.c: Likewise.
4451         * ifcvt.c: Likewise.
4452         * mode-switching.c: Likewise.
4453         * passes.c: Likewise.
4454         * postreload.c: Likewise.
4455         * ree.c: Likewise.
4456         * reg-stack.c: Likewise.
4457         * regcprop.c: Likewise.
4458         * regrename.c: Likewise.
4459         * web.c: Likewise.
4460
4461 2014-05-06  Richard Biener  <rguenther@suse.de>
4462
4463         PR middle-end/61070
4464         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
4465         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
4466
4467 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
4468
4469         PR ipa/60965
4470         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
4471
4472 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
4473             Tom de Vries  <tom@codesourcery.com>
4474
4475         * target.def (call_fusage_contains_non_callee_clobbers): New
4476         DEFHOOKPOD.
4477         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
4478         Hooks to @menu.
4479         (@node Miscellaneous Register Hooks): New node.
4480         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
4481         * doc/tm.texi: Regenerate.
4482
4483 2014-05-05  Marek Polacek  <polacek@redhat.com>
4484
4485         PR driver/61065
4486         * opts.c (common_handle_option): Call error_at instead of warning_at.
4487
4488 2014-05-05  Richard Biener  <rguenther@suse.de>
4489
4490         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
4491         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
4492         under the TODO_verify_il umbrella.
4493
4494 2014-05-05  Richard Biener  <rguenther@suse.de>
4495
4496         * passes.c (execute_function_todo): Move TODO_verify_flow under
4497         the TODO_verify_ul umbrella.
4498
4499 2014-05-05  Richard Biener  <rguenther@suse.de>
4500
4501         PR middle-end/61010
4502         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
4503         X & CST away from a CST that is the mask of a mode.
4504
4505 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4506
4507         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
4508         int argument to enum machine_mode.
4509         (picochip_class_max_nregs): Ditto.
4510         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
4511         (picochip_class_max_nregs): Ditto.
4512
4513 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4514
4515         * target.def: Add new target hook.
4516         * doc/tm.texi: Regenerate.
4517         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
4518         * targhooks.c (default_keep_leaf_when_profiled): New function.
4519
4520         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
4521         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
4522
4523 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
4524
4525         PR tree-optimization/60363
4526         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
4527         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
4528         (update_destination_phis): New parameter.
4529         (create_edge_and_update_destination_phis): Ditto.
4530         (ssa_fix_duplicate_block_edges): Pass new arguments.
4531         (thread_single_edge): Ditto.
4532
4533 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
4534
4535         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
4536         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
4537         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
4538         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
4539         Use RS6000_BTM_HARD_FLOAT.
4540         (BU_MISC_2): Likewise.
4541         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4542         RS6000_BTM_HARD_FLOAT.
4543         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
4544         is explicitly used.
4545         (rs6000_invalid_builtin): Add hard floating builtin support.
4546         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
4547         hard float builtins.
4548         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
4549
4550 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4551
4552         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
4553         Add missing function* argument.
4554
4555 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
4556
4557         * lra-constraints.c (valid_address_p): Move earlier in file.
4558         Add a constraint argument to the address_info version.
4559         (satisfies_memory_constraint_p): New function.
4560         (satisfies_address_constraint_p): Likewise.
4561         (process_alt_operands, curr_insn_transform): Use them.
4562         (process_address): Pass the constraint to valid_address_p when
4563         checking address operands.
4564
4565 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
4566
4567         * config/mips/mips.c (mips_isa_rev): New variable.
4568         (mips_set_architecture): Set it.
4569         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
4570         from mips_isa_rev.
4571         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
4572         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
4573         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
4574         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
4575         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
4576         conditions in terms of mips_isa_rev.
4577         (mips_isa_rev): Declare.
4578
4579 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4580
4581         * config/sh/sh-mem.cc: Use tabs instead of spaces.
4582         (prob_unlikely, prob_likely): Make variables const.
4583
4584 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
4585
4586         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
4587
4588 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4589
4590         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
4591
4592 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4593
4594         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
4595         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
4596         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
4597         functions.
4598         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
4599         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
4600         sh_pass_in_reg_p.
4601         Replace usage of ROUND_REG with sh_round_reg.
4602         Use CEIL instead of ROUND_ADVANCE.
4603
4604 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4605
4606         PR target/61026
4607         * config/sh/sh.c: Include stdlib headers before everything else.
4608
4609 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
4610
4611         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
4612         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
4613         (gimplify_adjust_omp_clauses): Simd region is never
4614         directly nested in combined parallel.  Instead, for linear
4615         with copyin/copyout, if in combined for simd loop, make decl
4616         firstprivate/lastprivate on OMP_FOR.
4617         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4618         expand_omp_for_static_chunk): When setting endvar, also set
4619         fd->loop.v to the same value.
4620
4621 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
4622
4623         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
4624
4625 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
4626
4627         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
4628         expression.
4629
4630 2014-05-02  Marek Polacek  <polacek@redhat.com>
4631
4632         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
4633
4634 2014-05-02  Kito Cheng  <kito@0xlab.org>
4635
4636         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
4637         to a C expression marco.
4638         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
4639         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
4640         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
4641         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
4642         HONOR_REG_ALLOC_ORDER.
4643         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
4644
4645 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4646
4647         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
4648
4649 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4650
4651         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
4652
4653 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
4654
4655         * tree-if-conv.c (is_cond_scalar_reduction): New function.
4656         (convert_scalar_cond_reduction): Likewise.
4657         (predicate_scalar_phi): Add recognition and transformation
4658         of simple conditioanl reduction to be vectorizable.
4659
4660 2014-05-01  Marek Polacek  <polacek@redhat.com>
4661
4662         PR c/43245
4663         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
4664
4665 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
4666
4667         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
4668         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
4669         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
4670         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
4671         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
4672         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
4673         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
4674         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
4675
4676 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
4677
4678         * config/arc/arc.opt (mlra): Move comment above option name
4679         to avoid mis-parsing as language options.
4680
4681 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4682
4683         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
4684         * config/sol2.h: ... here.
4685         * config/sol2-10.h: Remove.
4686
4687         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
4688         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
4689         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
4690         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
4691         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
4692         * config/sol2.h: ... here.
4693         (SECTION_NAME_FORMAT): Don't redefine.
4694         (STARTFILE_ARCH32_SPEC): Rename to ...
4695         (STARTFILE_ARCH_SPEC): ... this.
4696         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
4697         * config/sparc/sol2.h: ... here.
4698         (SECTION_NAME_FORMAT): Don't undef.
4699         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
4700         (SUBTARGET_EXTRA_SPECS): Remove.
4701         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
4702
4703         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
4704         (MD_STARTFILE_PREFIX): Remove.
4705         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
4706         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
4707         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
4708         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
4709         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
4710         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
4711         * config/i386/sol2.h: ... here.
4712         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
4713         * config/i386/sol2-bi.h: Remove.
4714         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
4715         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
4716
4717         * config/i386/t-sol2-64: Rename to ...
4718         * config/i386/t-sol2: ... this.
4719         * config/sparc/t-sol2-64: Rename to ...
4720         * config/sparc/t-sol2: ... this.
4721
4722         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
4723         sol2_tm_file_head, sol2_tm_file_tail.
4724         Include ${cpu_type}/sol2.h before sol2.h.
4725         Remove sol2-10.h.
4726         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
4727         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
4728         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
4729         Reflect i386/t-sol2-64 renaming.
4730         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
4731         Reflect sparc/t-sol2-64 renaming.
4732
4733 2014-04-30  Richard Biener  <rguenther@suse.de>
4734
4735         * passes.c (execute_function_todo): Move TODO_verify_stmts
4736         and TODO_verify_ssa under the TODO_verify_il umbrella.
4737         * tree-ssa.h (verify_ssa): Adjust prototype.
4738         * tree-ssa.c (verify_ssa): Add parameter to tell whether
4739         we should verify SSA operands.
4740         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
4741         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
4742         whether we should verify whether not throwing stmts have EH info.
4743         * graphite-scop-detection.c (create_sese_edges): Adjust.
4744         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
4745         * tree-eh.c (lower_try_finally_switch): Do not add the
4746         default case label twice.
4747
4748 2014-04-30  Marek Polacek  <polacek@redhat.com>
4749
4750         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
4751         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
4752         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
4753         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
4754
4755 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
4756
4757         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
4758         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
4759         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
4760         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
4761         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
4762         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
4763         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
4764         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
4765
4766 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
4767
4768         * tree-cfg.c (dump_function_to_file): Dump the return type of
4769         functions, in a line to itself before the function body, mimicking
4770         the layout of a C function.
4771
4772 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
4773
4774         PR tree-optimization/60971
4775         * tree-tailcall.c (process_assignment): Reject conversions which
4776         reduce precision.
4777
4778 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
4779
4780         * calls.c (initialize_argument_information): Always treat
4781         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
4782         (expand_call): Likewise.
4783         (emit_library_call_calue_1): Likewise.
4784         * expr.c (PUSH_ARGS_REVERSED): Do not define.
4785         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
4786         code accordingly.
4787
4788 2014-04-29  Nick Clifton  <nickc@redhat.com>
4789
4790         * config/msp430/msp430.md (umulsidi): Fix typo.
4791         (mulhisi3): Enable even inside interrupt handlers.
4792         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
4793         bigger return address pushed in large mode.
4794
4795 2014-04-29  Nick Clifton  <nickc@redhat.com>
4796
4797         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
4798         (arc_init_reg_tables): Use a machine_mode enum to iterate over
4799         available modes.
4800         * config/m32r/m32r.c (init_reg_tables): Likewise.
4801         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
4802         enum to hold the modes.
4803
4804 2014-04-29  Richard Biener  <rguenther@suse.de>
4805
4806         * dominance.c (free_dominance_info): Add overload with
4807         function parameter.
4808         (dom_info_state): Likewise.
4809         (dom_info_available_p): Likewise.
4810         * basic-block.h (free_dominance_info, dom_info_state,
4811         dom_info_available_p): Declare overloads.
4812         * passes.c (execute_function_todo): Verify that verifiers
4813         don't change dominator info state.  Drop dominator info
4814         for IPA pass invocations.
4815         * cgraph.c (release_function_body): Restore asserts that
4816         dominator information is released.
4817
4818 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
4819
4820         * doc/invoke.texi: Fix typo.
4821         * tree-vrp.c: Fix typos.
4822         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
4823
4824 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4825
4826         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
4827
4828 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
4829
4830         * config/aarch64/aarch64-builtins.c
4831         (aarch64_types_storestruct_lane_qualifiers): New.
4832         (TYPES_STORESTRUCT_LANE): Likewise.
4833         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
4834         (st3_lane): Likewise.
4835         (st4_lane): Likewise.
4836         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
4837         (vec_store_lanesci_lane<mode>): Likewise.
4838         (vec_store_lanesxi_lane<mode>): Likewise.
4839         (aarch64_st2_lane<VQ:mode>): Likewise.
4840         (aarch64_st3_lane<VQ:mode>): Likewise.
4841         (aarch64_st4_lane<VQ:mode>): Likewise.
4842         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
4843         * config/aarch64/arm_neon.h
4844         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
4845         use new macro arguments.
4846         (__ST3_LANE_FUNC): Likewise.
4847         (__ST4_LANE_FUNC): Likewise.
4848         * config/aarch64/iterators.md (V_TWO_ELEM): New.
4849         (V_THREE_ELEM): Likewise.
4850         (V_FOUR_ELEM): Likewise.
4851
4852 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
4853
4854         * doc/gimple.texi: Replace the description of the now-defunct
4855         union gimple_statement_d with a diagram showing the
4856         gimple_statement_base class hierarchy and its relationships to
4857         the GSS_ and GIMPLE_ enums.
4858
4859 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
4860
4861         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
4862         * config/aarch64/aarch64.c
4863         (aarch64_cannot_change_mode_class): Weaken conditions.
4864         (aarch64_modes_tieable_p): New.
4865         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
4866
4867 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
4868
4869         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4870         (loadsync_<mode>): Change mode.
4871         (load_quadpti, store_quadpti): New.
4872         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4873         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4874
4875 2014-04-28  Martin Jambor  <mjambor@suse.cz>
4876
4877         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
4878         same alias type as the original statement.
4879         (subreplacement_assignment_data): New type.
4880         (handle_unscalarized_data_in_subtree): New type of parameter,
4881         generate new memory accesses with same alias type as the original
4882         statement.
4883         (load_assign_lhs_subreplacements): Likewise.
4884         (sra_modify_constructor_assign): Generate new memory accesses with
4885         same alias type as the original statement.
4886
4887 2014-04-28  Richard Biener  <rguenther@suse.de>
4888
4889         * tree-pass.h (TODO_verify_il): Define.
4890         (TODO_verify_all): Complete properly.
4891         * passes.c (execute_function_todo): Move existing loop-closed
4892         SSA verification under TODO_verify_il.
4893         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
4894         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
4895         Fix tree sharing issue.
4896
4897 2014-04-28  Richard Biener  <rguenther@suse.de>
4898
4899         PR middle-end/60092
4900         * builtins.def (DEF_C11_BUILTIN): Add.
4901         (BUILT_IN_ALIGNED_ALLOC): Likewise.
4902         * coretypes.h (enum function_class): Add function_c11_misc.
4903         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4904         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
4905         (call_may_clobber_ref_p_1): Likewise.
4906         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4907         (mark_all_reaching_defs_necessary_1): Likewise.
4908         (propagate_necessity): Likewise.
4909         (eliminate_unnecessary_stmts): Likewise.
4910         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
4911
4912 2014-04-28  Richard Biener  <rguenther@suse.de>
4913
4914         * tree-vrp.c (vrp_var_may_overflow): Remove.
4915         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
4916         with overflow immediately bump to one before that value and
4917         let iteration figure out overflow status.
4918
4919 2014-04-28  Richard Biener  <rguenther@suse.de>
4920
4921         * configure.ac: Do valgrind header checks unconditionally.
4922         Add --enable-valgrind-annotations.
4923         * system.h: Guard valgrind header inclusion with
4924         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
4925         * alloc-pool.c (pool_alloc, pool_free): Use
4926         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
4927         to guard possibly dead code.
4928         * config.in: Regenerated.
4929         * configure: Likewise.
4930
4931 2014-04-28  Jeff Law  <law@redhat.com>
4932
4933         PR tree-optimization/60902
4934         * tree-ssa-threadedge.c
4935         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
4936         over real defs when invalidating outputs from statements that do not
4937         produce useful outputs for threading.
4938
4939 2014-04-28  Richard Biener  <rguenther@suse.de>
4940
4941         PR tree-optimization/60979
4942         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
4943         SCOPs that end in a block with a successor with abnormal
4944         predecessors.
4945
4946 2014-04-28  Richard Biener  <rguenther@suse.de>
4947
4948         * tree-pass.h (execute_pass_list): Adjust prototype.
4949         * passes.c (pass_manager::execute_early_local_passes): Adjust.
4950         (do_per_function): Change callback signature, push all actual
4951         work to the callbals.
4952         (do_per_function_toporder): Likewise.
4953         (execute_function_dump): Adjust.
4954         (execute_function_todo): Likewise.
4955         (clear_last_verified): Likewise.
4956         (verify_curr_properties): Likewise.
4957         (update_properties_after_pass): Likewise.
4958         (execute_pass_list_1): Split out from ...
4959         (execute_pass_list): ... here.  Adjust.
4960         (execute_ipa_pass_list): Likewise.
4961         * cgraphunit.c (cgraph_add_new_function): Adjust.
4962         (analyze_function): Likewise.
4963         (expand_function): Likewise.
4964         * cgraph.c (release_function_body): Free dominance info
4965         here instead of asserting it was magically freed elsewhere.
4966
4967 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4968
4969         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
4970         * configure: Regenerate.
4971         * config/sparc/sparc.opt (muser-mode): New option.
4972         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
4973         for LEON3.
4974         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
4975         * doc/invoke.texi (SPARC options): Document -muser-mode.
4976
4977 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
4978
4979         * cselib.c (find_slot_memmode): Delete.
4980         (cselib_hasher): Change compare_type to a struct.
4981         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
4982         constants.
4983         (preserve_constants_and_equivs): Adjust for new compare_type.
4984         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
4985         (wrap_constant): Delete.
4986         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
4987
4988 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
4989
4990         * doc/install.texi (Building with profile feedback): Remove
4991         outdated sentence.
4992
4993 2014-04-26  Tom de Vries  <tom@codesourcery.com>
4994
4995         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
4996         array accesses.
4997
4998 2014-04-25  Cary Coutant  <ccoutant@google.com>
4999
5000         PR debug/60929
5001         * dwarf2out.c (should_move_die_to_comdat): A type definition
5002         can contain a subprogram definition, but don't move it to a
5003         comdat unit.
5004         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
5005         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
5006         from original DIE.
5007         (clone_tree_hash): Rename to...
5008         (clone_tree_partial): ...this; change callers.  Copy
5009         DW_TAG_subprogram DIEs as declarations.
5010         (copy_decls_walk): Don't copy children of a declaration into a
5011         type unit.
5012
5013 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
5014
5015         PR target/60969
5016         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
5017         alternative 12.
5018
5019 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
5020
5021         * config/arm/predicates.md (call_insn_operand): Add long_call check.
5022         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
5023         reg for long_call.
5024         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
5025         restriction.
5026
5027 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5028
5029         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
5030
5031 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5032
5033         PR tree-optimization/60930
5034         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
5035         creating a multiply candidate by folding two constant
5036         multiplicands when the result overflows.
5037
5038 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
5039
5040         PR tree-optimization/60960
5041         * tree-vect-generic.c (expand_vector_operation): Only call
5042         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
5043
5044 2014-04-25  Tom de Vries  <tom@codesourcery.com>
5045
5046         * expr.c (clobber_reg_mode): New function.
5047         * expr.h (clobber_reg): New function.
5048
5049 2014-04-25  Tom de Vries  <tom@codesourcery.com>
5050
5051         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
5052         clobbers.
5053
5054 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
5055             Tom de Vries  <tom@codesourcery.com>
5056
5057         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
5058         handle.
5059         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
5060         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
5061         new argument to find_all_hard_reg_sets call.
5062
5063 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5064
5065         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
5066         Use HOST_WIDE_INT_C for mask literal.
5067         (aarch_rev16_shleft_mask_imm_p): Likewise.
5068
5069 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
5070
5071         PR target/60941
5072         * config/sparc/sparc.md (ashlsi3_extend): Delete.
5073
5074 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
5075
5076         PR preprocessor/56540
5077         * config/i386/i386-c.c (ix86_target_macros): Define
5078         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
5079
5080 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5081
5082         * configure.ac (tga_func): Remove.
5083         (LIB_TLS_SPEC): Remove.
5084         * configure: Regenerate.
5085         * config.in: Regenerate.
5086         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
5087
5088 2014-04-25  Richard Biener  <rguenther@suse.de>
5089
5090         PR ipa/60912
5091         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
5092         call stmt use/clobber sets during stmt walk instead of
5093         walking the possibly incomplete set of caller edges.
5094
5095 2014-04-25  Richard Biener  <rguenther@suse.de>
5096
5097         PR ipa/60911
5098         * passes.c (apply_ipa_transforms): Inline into only caller ...
5099         (execute_one_pass): ... here.  Properly bring in function
5100         bodies for nodes we want to apply IPA transforms to.
5101
5102 2014-04-24  Cong Hou  <congh@google.com>
5103
5104         PR tree-optimization/60896
5105         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
5106         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
5107         (vect_mark_pattern_stmts): Set the def type of all statements in
5108         PATTERN_DEF_SEQ as vect_internal_def.
5109
5110 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
5111
5112         * doc/extend.texi (PowerPC Built-in Functions): Document new
5113         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
5114         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
5115
5116         * config/rs6000/predicates.md (const_0_to_3_operand): New
5117         predicate to match 0..3 integer constants.
5118
5119         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
5120         to support adding miscellaneous builtin functions.
5121         (BU_DFP_MISC_2): Likewise.
5122         (BU_P7_MISC_1): Likewise.
5123         (BU_P7_MISC_2): Likewise.
5124         (BU_P8V_MISC_3): Likewise.
5125         (BU_MISC_1): Likewise.
5126         (BU_MISC_2): Likewise.
5127         (DIVWE): Add extended divide builtin functions.
5128         (DIVWEO): Likewise.
5129         (DIVWEU): Likewise.
5130         (DIVWEUO): Likewise.
5131         (DIVDE): Likewise.
5132         (DIVDEO): Likewise.
5133         (DIVDEU): Likewise.
5134         (DIVDEUO): Likewise.
5135         (DXEX): Add decimal floating-point builtin functions.
5136         (DXEXQ): Likewise.
5137         (DDEDPD): Likewise.
5138         (DDEDPDQ): Likewise.
5139         (DENBCD): Likewise.
5140         (DENBCDQ): Likewise.
5141         (DIEX): Likewise.
5142         (DIEXQ): Likewise.
5143         (DSCLI): Likewise.
5144         (DSCLIQ): Likewise.
5145         (DSCRI): Likewise.
5146         (DSCRIQ): Likewise.
5147         (CDTBCD): Add new BCD builtin functions.
5148         (CBCDTD): Likewise.
5149         (ADDG6S): Likewise.
5150         (BCDADD): Likewise.
5151         (BCDADD_LT): Likewise.
5152         (BCDADD_EQ): Likewise.
5153         (BCDADD_GT): Likewise.
5154         (BCDADD_OV): Likewise.
5155         (BCDSUB): Likewise.
5156         (BCDSUB_LT): Likewise.
5157         (BCDSUB_EQ): Likewise.
5158         (BCDSUB_GT): Likewise.
5159         (BCDSUB_OV): Likewise.
5160         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
5161         (UNPACK_TD): Likewise.
5162         (PACK_TF): Likewise.
5163         (UNPACK_TF): Likewise.
5164         (UNPACK_TF_0): Likewise.
5165         (UNPACK_TF_1): Likewise.
5166         (PACK_V1TI): Likewise.
5167         (UNPACK_V1TI): Likewise.
5168
5169         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
5170         support for decimal floating point builtin functions.
5171         (rs6000_expand_ternop_builtin): Add checks for the new builtin
5172         functions that take constant arguments.
5173         (rs6000_invalid_builtin): Add decimal floating point builtin support.
5174         (rs6000_init_builtins): Setup long double, _Decimal64, and
5175         _Decimal128 types for new builtin functions.
5176         (builtin_function_type): Set the unsigned flags appropriately for
5177         the new builtin functions.
5178         (rs6000_opt_masks): Add support for decimal floating point builtin
5179         functions.
5180
5181         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
5182         floating point builtin functions.
5183         (RS6000_BTM_COMMON): Likewise.
5184         (RS6000_BTI_long_double): Likewise.
5185         (RS6000_BTI_dfloat64): Likewise.
5186         (RS6000_BTI_dfloat128): Likewise.
5187         (long_double_type_internal_node): Likewise.
5188         (dfloat64_type_internal_node): Likewise.
5189         (dfloat128_type_internal_node): Likewise.
5190
5191         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
5192         2.07 bcd arithmetic instructions.
5193         (UNSPEC_BCDSUB): Likewise.
5194         (UNSPEC_BCD_OVERFLOW): Likewise.
5195         (UNSPEC_BCD_ADD_SUB): Likewise.
5196         (bcd_add_sub): Likewise.
5197         (BCD_TEST): Likewise.
5198         (bcd<bcd_add_sub>): Likewise.
5199         (bcd<bcd_add_sub>_test): Likewise.
5200         (bcd<bcd_add_sub>_test2): Likewise.
5201         (bcd<bcd_add_sub>_<code>): Likewise.
5202         (peephole2 for combined bcd ops): Likewise.
5203
5204         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
5205         decimal floating point builtin functions.
5206         (UNSPEC_DENBCD): Likewise.
5207         (UNSPEC_DXEX): Likewise.
5208         (UNSPEC_DIEX): Likewise.
5209         (UNSPEC_DSCLI): Likewise.
5210         (UNSPEC_DSCRI): Likewise.
5211         (D64_D128): Likewise.
5212         (dfp_suffix): Likewise.
5213         (dfp_ddedpd_<mode>): Likewise.
5214         (dfp_denbcd_<mode>): Likewise.
5215         (dfp_dxex_<mode>): Likewise.
5216         (dfp_diex_<mode>): Likewise.
5217         (dfp_dscli_<mode>): Likewise.
5218         (dfp_dscri_<mode>): Likewise.
5219
5220         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
5221         builtin functions.
5222         (UNSPEC_CDTBCD): Likewise.
5223         (UNSPEC_CBCDTD): Likewise.
5224         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
5225         (UNSPEC_DIVEO): Likewise.
5226         (UNSPEC_DIVEU): Likewise.
5227         (UNSPEC_DIVEUO): Likewise.
5228         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
5229         pack/unpack 128-bit types.
5230         (UNSPEC_PACK_128BIT): Likewise.
5231         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
5232         (udiv<mode>3): Use idiv_ldiv mode attribute.
5233         (div<mode>3): Likewise.
5234         (addg6s): Add new BCD builtin functions.
5235         (cdtbcd): Likewise.
5236         (cbcdtd): Likewise.
5237         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
5238         (div_extend): Likewise.
5239         (div<div_extend>_<mode>"): Likewise.
5240         (FP128_64): Add support for new builtin functions to pack/unpack
5241         128-bit types.
5242         (unpack<mode>): Likewise.
5243         (unpacktf_0): Likewise.
5244         (unpacktf_1): Likewise.
5245         (unpack<mode>_dm): Likewise.
5246         (unpack<mode>_nodm): Likewise.
5247         (pack<mode>): Likewise.
5248         (unpackv1ti): Likewise.
5249         (packv1ti): Likewise.
5250
5251 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
5252
5253         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
5254         is disabled.
5255
5256 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
5257
5258         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
5259         * gimplify.c (omp_is_private): Change last argument's type to int.
5260         Only diagnose lastprivate if the simd argument is 1, only diagnose
5261         linear if the simd argument is 2.
5262         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
5263         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
5264         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
5265         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
5266         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
5267         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5268         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
5269         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
5270         * tree-nested.c (convert_nonlocal_omp_clauses,
5271         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
5272
5273 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
5274
5275         PR target/60822
5276         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
5277         operand 1.
5278
5279 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
5280
5281         * flag-types.h (enum ivar_visibility): Add.
5282
5283 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
5284
5285         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
5286         function * argument.
5287
5288 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
5289
5290         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
5291
5292 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
5293             Tom de Vries  <tom@codesourcery.com>
5294
5295         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
5296         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
5297         reg-note.
5298         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
5299         * emit-rtl.c (try_split): Same.
5300
5301 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
5302             Tom de Vries  <tom@codesourcery.com>
5303
5304         * common.opt (fuse-caller-save): New option.
5305
5306 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
5307
5308         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
5309         elements for big-endian.
5310
5311 2014-04-24  Richard Biener  <rguenther@suse.de>
5312
5313         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
5314         during TER and instead use the sepops interface for expanding
5315         non-GIMPLE_SINGLE_RHS.
5316
5317 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5318
5319         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
5320         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
5321
5322 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5323
5324         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
5325         assembler 64-bit option.
5326         * configure: Regenerate.
5327
5328 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5329
5330         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
5331         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
5332         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
5333         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
5334         (TARGET_CRYPTO): Take TARGET_SIMD into account.
5335
5336 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5337
5338         * config/aarch64/aarch64-builtins.c
5339         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
5340         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
5341         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
5342         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
5343         builtins.
5344         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
5345         (Vrevsuff): New mode attribute.
5346
5347 2014-04-24  Terry Guo  <terry.guo@arm.com>
5348
5349         * config/arm/arm.h (machine_function): Define variable
5350         after_arm_reorg here.
5351         * config/arm/arm.c (after_arm_reorg): Remove the definition.
5352         (arm_split_constant): Update the way to access variable
5353         after_arm_reorg.
5354         (arm_reorg): Ditto.
5355         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
5356
5357 2014-04-23  Tom de Vries  <tom@codesourcery.com>
5358
5359         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
5360
5361 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
5362
5363         * is-a.h: Update comments to reflect the following changes to the
5364         "pointerness" of the API, making the template parameter match the
5365         return type, allowing use of is-a.h with typedefs of pointers.
5366         (is_a_helper::cast): Return a T rather then a pointer to a T, so
5367         that the return type matches the parameter to the is_a_helper.
5368         (as_a): Likewise.
5369         (dyn_cast): Likewise.
5370
5371         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
5372         pointer from the is-a.h API.
5373
5374         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
5375         (is_a_helper <cgraph_node *>::test): ...this, matching change to
5376         is-a.h API.
5377         (is_a_helper <varpool_node>::test): Likewise, convert to...
5378         (is_a_helper <varpool_node *>::test): ...this.
5379
5380         (varpool_first_variable): Update for removal of implicit pointer
5381         from the is-a.h API.
5382         (varpool_next_variable): Likewise.
5383         (varpool_first_static_initializer): Likewise.
5384         (varpool_next_static_initializer): Likewise.
5385         (varpool_first_defined_variable): Likewise.
5386         (varpool_next_defined_variable): Likewise.
5387         (cgraph_first_defined_function): Likewise.
5388         (cgraph_next_defined_function): Likewise.
5389         (cgraph_first_function): Likewise.
5390         (cgraph_next_function): Likewise.
5391         (cgraph_first_function_with_gimple_body): Likewise.
5392         (cgraph_next_function_with_gimple_body): Likewise.
5393         (cgraph_alias_target): Likewise.
5394         (varpool_alias_target): Likewise.
5395         (cgraph_function_or_thunk_node): Likewise.
5396         (varpool_variable_node): Likewise.
5397         (symtab_real_symbol_p): Likewise.
5398         * cgraphunit.c (referred_to_p): Likewise.
5399         (analyze_functions): Likewise.
5400         (handle_alias_pairs): Likewise.
5401         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
5402         * gimple-ssa.h (gimple_vuse_op): Likewise.
5403         (gimple_vdef_op): Likewise.
5404         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
5405         * gimple.c (gimple_build_asm_1): Likewise.
5406         (gimple_build_try): Likewise.
5407         (gimple_build_resx): Likewise.
5408         (gimple_build_eh_dispatch): Likewise.
5409         (gimple_build_omp_for): Likewise.
5410         (gimple_omp_for_set_clauses): Likewise.
5411
5412         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
5413         (is_a_helper <gimple_statement_asm *>::test): ...this.
5414         (is_a_helper <gimple_statement_bind>::test): Convert to...
5415         (is_a_helper <gimple_statement_bind *>::test): ...this.
5416         (is_a_helper <gimple_statement_call>::test): Convert to...
5417         (is_a_helper <gimple_statement_call *>::test): ...this.
5418         (is_a_helper <gimple_statement_catch>::test): Convert to...
5419         (is_a_helper <gimple_statement_catch *>::test): ...this.
5420         (is_a_helper <gimple_statement_resx>::test): Convert to...
5421         (is_a_helper <gimple_statement_resx *>::test): ...this.
5422         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
5423         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
5424         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
5425         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
5426         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
5427         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
5428         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
5429         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
5430         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
5431         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
5432         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
5433         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
5434         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
5435         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
5436         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
5437         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
5438         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
5439         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
5440         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
5441         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
5442         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
5443         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
5444         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
5445         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
5446         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
5447         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
5448         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
5449         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
5450         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
5451         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
5452         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
5453         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
5454         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
5455         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
5456         (is_a_helper <gimple_statement_phi>::test): Convert to...
5457         (is_a_helper <gimple_statement_phi *>::test): ...this.
5458         (is_a_helper <gimple_statement_transaction>::test): Convert to...
5459         (is_a_helper <gimple_statement_transaction *>::test): ...this.
5460         (is_a_helper <gimple_statement_try>::test): Convert to...
5461         (is_a_helper <gimple_statement_try *>::test): ...this.
5462         (is_a_helper <gimple_statement_wce>::test): Convert to...
5463         (is_a_helper <gimple_statement_wce *>::test): ...this.
5464         (is_a_helper <const gimple_statement_asm>::test): Convert to...
5465         (is_a_helper <const gimple_statement_asm *>::test): ...this.
5466         (is_a_helper <const gimple_statement_bind>::test): Convert to...
5467         (is_a_helper <const gimple_statement_bind *>::test): ...this.
5468         (is_a_helper <const gimple_statement_call>::test): Convert to...
5469         (is_a_helper <const gimple_statement_call *>::test): ...this.
5470         (is_a_helper <const gimple_statement_catch>::test): Convert to...
5471         (is_a_helper <const gimple_statement_catch *>::test): ...this.
5472         (is_a_helper <const gimple_statement_resx>::test): Convert to...
5473         (is_a_helper <const gimple_statement_resx *>::test): ...this.
5474         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
5475         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
5476         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
5477         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
5478         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
5479         Convert to...
5480         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
5481         ...this.
5482         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
5483         Convert to...
5484         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
5485         ...this.
5486         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
5487         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
5488         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
5489         to...
5490         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
5491         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
5492         to...
5493         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
5494         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
5495         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
5496         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
5497         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
5498         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
5499         to...
5500         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
5501         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
5502         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
5503         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
5504         to...
5505         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
5506         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
5507         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
5508         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
5509         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
5510         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
5511         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
5512         (is_a_helper <const gimple_statement_phi>::test): Convert to...
5513         (is_a_helper <const gimple_statement_phi *>::test): ...this.
5514         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
5515         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
5516         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
5517         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
5518         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
5519         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
5520         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
5521         to...
5522         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
5523         ...this.
5524         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
5525         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
5526
5527         (gimple_use_ops): Update for removal of implicit pointer from the
5528         is-a.h API.
5529         (gimple_set_use_ops): Likewise.
5530         (gimple_vuse): Likewise.
5531         (gimple_vdef): Likewise.
5532         (gimple_vuse_ptr): Likewise.
5533         (gimple_vdef_ptr): Likewise.
5534         (gimple_set_vuse): Likewise.
5535         (gimple_set_vdef): Likewise.
5536         (gimple_omp_return_set_lhs): Likewise.
5537         (gimple_omp_return_lhs): Likewise.
5538         (gimple_omp_return_lhs_ptr): Likewise.
5539         (gimple_call_fntype): Likewise.
5540         (gimple_call_set_fntype): Likewise.
5541         (gimple_call_set_internal_fn): Likewise.
5542         (gimple_call_use_set): Likewise.
5543         (gimple_call_clobber_set): Likewise.
5544         (gimple_bind_vars): Likewise.
5545         (gimple_bind_set_vars): Likewise.
5546         (gimple_bind_body_ptr): Likewise.
5547         (gimple_bind_set_body): Likewise.
5548         (gimple_bind_add_stmt): Likewise.
5549         (gimple_bind_block): Likewise.
5550         (gimple_bind_set_block): Likewise.
5551         (gimple_asm_ninputs): Likewise.
5552         (gimple_asm_noutputs): Likewise.
5553         (gimple_asm_nclobbers): Likewise.
5554         (gimple_asm_nlabels): Likewise.
5555         (gimple_asm_input_op): Likewise.
5556         (gimple_asm_input_op_ptr): Likewise.
5557         (gimple_asm_output_op): Likewise.
5558         (gimple_asm_output_op_ptr): Likewise.
5559         (gimple_asm_set_output_op): Likewise.
5560         (gimple_asm_clobber_op): Likewise.
5561         (gimple_asm_set_clobber_op): Likewise.
5562         (gimple_asm_label_op): Likewise.
5563         (gimple_asm_set_label_op): Likewise.
5564         (gimple_asm_string): Likewise.
5565         (gimple_catch_types): Likewise.
5566         (gimple_catch_types_ptr): Likewise.
5567         (gimple_catch_handler_ptr): Likewise.
5568         (gimple_catch_set_types): Likewise.
5569         (gimple_catch_set_handler): Likewise.
5570         (gimple_eh_filter_types): Likewise.
5571         (gimple_eh_filter_types_ptr): Likewise.
5572         (gimple_eh_filter_failure_ptr): Likewise.
5573         (gimple_eh_filter_set_types): Likewise.
5574         (gimple_eh_filter_set_failure): Likewise.
5575         (gimple_eh_must_not_throw_fndecl): Likewise.
5576         (gimple_eh_must_not_throw_set_fndecl): Likewise.
5577         (gimple_eh_else_n_body_ptr): Likewise.
5578         (gimple_eh_else_e_body_ptr): Likewise.
5579         (gimple_eh_else_set_n_body): Likewise.
5580         (gimple_eh_else_set_e_body): Likewise.
5581         (gimple_try_eval_ptr): Likewise.
5582         (gimple_try_cleanup_ptr): Likewise.
5583         (gimple_try_set_eval): Likewise.
5584         (gimple_try_set_cleanup): Likewise.
5585         (gimple_wce_cleanup_ptr): Likewise.
5586         (gimple_wce_set_cleanup): Likewise.
5587         (gimple_phi_capacity): Likewise.
5588         (gimple_phi_num_args): Likewise.
5589         (gimple_phi_result): Likewise.
5590         (gimple_phi_result_ptr): Likewise.
5591         (gimple_phi_set_result): Likewise.
5592         (gimple_phi_arg): Likewise.
5593         (gimple_phi_set_arg): Likewise.
5594         (gimple_resx_region): Likewise.
5595         (gimple_resx_set_region): Likewise.
5596         (gimple_eh_dispatch_region): Likewise.
5597         (gimple_eh_dispatch_set_region): Likewise.
5598         (gimple_omp_critical_name): Likewise.
5599         (gimple_omp_critical_name_ptr): Likewise.
5600         (gimple_omp_critical_set_name): Likewise.
5601         (gimple_omp_for_clauses): Likewise.
5602         (gimple_omp_for_clauses_ptr): Likewise.
5603         (gimple_omp_for_set_clauses): Likewise.
5604         (gimple_omp_for_collapse): Likewise.
5605         (gimple_omp_for_index): Likewise.
5606         (gimple_omp_for_index_ptr): Likewise.
5607         (gimple_omp_for_set_index): Likewise.
5608         (gimple_omp_for_initial): Likewise.
5609         (gimple_omp_for_initial_ptr): Likewise.
5610         (gimple_omp_for_set_initial): Likewise.
5611         (gimple_omp_for_final): Likewise.
5612         (gimple_omp_for_final_ptr): Likewise.
5613         (gimple_omp_for_set_final): Likewise.
5614         (gimple_omp_for_incr): Likewise.
5615         (gimple_omp_for_incr_ptr): Likewise.
5616         (gimple_omp_for_set_incr): Likewise.
5617         (gimple_omp_for_pre_body_ptr): Likewise.
5618         (gimple_omp_for_set_pre_body): Likewise.
5619         (gimple_omp_parallel_clauses): Likewise.
5620         (gimple_omp_parallel_clauses_ptr): Likewise.
5621         (gimple_omp_parallel_set_clauses): Likewise.
5622         (gimple_omp_parallel_child_fn): Likewise.
5623         (gimple_omp_parallel_child_fn_ptr): Likewise.
5624         (gimple_omp_parallel_set_child_fn): Likewise.
5625         (gimple_omp_parallel_data_arg): Likewise.
5626         (gimple_omp_parallel_data_arg_ptr): Likewise.
5627         (gimple_omp_parallel_set_data_arg): Likewise.
5628         (gimple_omp_task_clauses): Likewise.
5629         (gimple_omp_task_clauses_ptr): Likewise.
5630         (gimple_omp_task_set_clauses): Likewise.
5631         (gimple_omp_task_child_fn): Likewise.
5632         (gimple_omp_task_child_fn_ptr): Likewise.
5633         (gimple_omp_task_set_child_fn): Likewise.
5634         (gimple_omp_task_data_arg): Likewise.
5635         (gimple_omp_task_data_arg_ptr): Likewise.
5636         (gimple_omp_task_set_data_arg): Likewise.
5637         (gimple_omp_taskreg_clauses): Likewise.
5638         (gimple_omp_taskreg_clauses_ptr): Likewise.
5639         (gimple_omp_taskreg_set_clauses): Likewise.
5640         (gimple_omp_taskreg_child_fn): Likewise.
5641         (gimple_omp_taskreg_child_fn_ptr): Likewise.
5642         (gimple_omp_taskreg_set_child_fn): Likewise.
5643         (gimple_omp_taskreg_data_arg): Likewise.
5644         (gimple_omp_taskreg_data_arg_ptr): Likewise.
5645         (gimple_omp_taskreg_set_data_arg): Likewise.
5646         (gimple_omp_task_copy_fn): Likewise.
5647         (gimple_omp_task_copy_fn_ptr): Likewise.
5648         (gimple_omp_task_set_copy_fn): Likewise.
5649         (gimple_omp_task_arg_size): Likewise.
5650         (gimple_omp_task_arg_size_ptr): Likewise.
5651         (gimple_omp_task_set_arg_size): Likewise.
5652         (gimple_omp_task_arg_align): Likewise.
5653         (gimple_omp_task_arg_align_ptr): Likewise.
5654         (gimple_omp_task_set_arg_align): Likewise.
5655         (gimple_omp_single_clauses): Likewise.
5656         (gimple_omp_single_clauses_ptr): Likewise.
5657         (gimple_omp_single_set_clauses): Likewise.
5658         (gimple_omp_target_clauses): Likewise.
5659         (gimple_omp_target_clauses_ptr): Likewise.
5660         (gimple_omp_target_set_clauses): Likewise.
5661         (gimple_omp_target_child_fn): Likewise.
5662         (gimple_omp_target_child_fn_ptr): Likewise.
5663         (gimple_omp_target_set_child_fn): Likewise.
5664         (gimple_omp_target_data_arg): Likewise.
5665         (gimple_omp_target_data_arg_ptr): Likewise.
5666         (gimple_omp_target_set_data_arg): Likewise.
5667         (gimple_omp_teams_clauses): Likewise.
5668         (gimple_omp_teams_clauses_ptr): Likewise.
5669         (gimple_omp_teams_set_clauses): Likewise.
5670         (gimple_omp_sections_clauses): Likewise.
5671         (gimple_omp_sections_clauses_ptr): Likewise.
5672         (gimple_omp_sections_set_clauses): Likewise.
5673         (gimple_omp_sections_control): Likewise.
5674         (gimple_omp_sections_control_ptr): Likewise.
5675         (gimple_omp_sections_set_control): Likewise.
5676         (gimple_omp_for_set_cond): Likewise.
5677         (gimple_omp_for_cond): Likewise.
5678         (gimple_omp_atomic_store_set_val): Likewise.
5679         (gimple_omp_atomic_store_val): Likewise.
5680         (gimple_omp_atomic_store_val_ptr): Likewise.
5681         (gimple_omp_atomic_load_set_lhs): Likewise.
5682         (gimple_omp_atomic_load_lhs): Likewise.
5683         (gimple_omp_atomic_load_lhs_ptr): Likewise.
5684         (gimple_omp_atomic_load_set_rhs): Likewise.
5685         (gimple_omp_atomic_load_rhs): Likewise.
5686         (gimple_omp_atomic_load_rhs_ptr): Likewise.
5687         (gimple_omp_continue_control_def): Likewise.
5688         (gimple_omp_continue_control_def_ptr): Likewise.
5689         (gimple_omp_continue_set_control_def): Likewise.
5690         (gimple_omp_continue_control_use): Likewise.
5691         (gimple_omp_continue_control_use_ptr): Likewise.
5692         (gimple_omp_continue_set_control_use): Likewise.
5693         (gimple_transaction_body_ptr): Likewise.
5694         (gimple_transaction_label): Likewise.
5695         (gimple_transaction_label_ptr): Likewise.
5696         (gimple_transaction_set_body): Likewise.
5697         (gimple_transaction_set_label): Likewise.
5698
5699         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
5700         * ipa-inline-analysis.c (inline_write_summary): Likewise.
5701         * ipa-ref.c (ipa_record_reference): Likewise.
5702         * ipa-reference.c (analyze_function): Likewise.
5703         (ipa_reference_write_optimization_summary): Likewise.
5704         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
5705         (address_taken_from_non_vtable_p): Likewise.
5706         (comdat_can_be_unshared_p_1): Likewise.
5707         * lto-cgraph.c (lto_output_ref): Likewise.
5708         (add_references): Likewise.
5709         (compute_ltrans_boundary): Likewise.
5710         (output_symtab): Likewise.
5711         (input_ref): Likewise.
5712         (input_cgraph_1): Likewise.
5713         (output_cgraph_opt_summary): Likewise.
5714         * lto-streamer-out.c (lto_output): Likewise.
5715         (output_symbol_p): Likewise.
5716         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
5717         (lsei_start_function_in_partition): Likewise.
5718         (lsei_next_variable_in_partition): Likewise.
5719         (lsei_start_variable_in_partition): Likewise.
5720         * symtab.c (insert_to_assembler_name_hash): Likewise.
5721         (unlink_from_assembler_name_hash): Likewise.
5722         (symtab_unregister_node): Likewise.
5723         (symtab_remove_node): Likewise.
5724         (dump_symtab_node): Likewise.
5725         (verify_symtab_base): Likewise.
5726         (verify_symtab_node): Likewise.
5727         (symtab_make_decl_local): Likewise.
5728         (symtab_alias_ultimate_target): Likewise.
5729         (symtab_resolve_alias): Likewise.
5730         (symtab_get_symbol_partitioning_class): Likewise.
5731         * tree-phinodes.c (allocate_phi_node): Likewise.
5732         (reserve_phi_args_for_new_edge): Likewise.
5733         (remove_phi_args): Likewise.
5734         * varpool.c (varpool_node_for_asm): Likewise.
5735         (varpool_remove_unreferenced_decls): Likewise.
5736
5737 2014-04-23  Jeff Law  <law@redhat.com>
5738
5739         PR tree-optimization/60902
5740         * tree-ssa-threadedge.c
5741         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
5742         invalidate outputs from statements that do not produce useful
5743         outputs for threading.
5744
5745 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
5746
5747         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
5748         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
5749         machine descriptions for Stack Smashing Protector.
5750
5751 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
5752
5753         * aarch64.md (<optab>_rol<mode>3): New pattern.
5754         (<optab>_rolsi3_uxtw): Likewise.
5755         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
5756
5757 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
5758
5759         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
5760         (arm_cortex_a12_tune): Likewise.
5761
5762 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5763
5764         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
5765
5766 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5767
5768         * config/arm/arm.md (arm_rev16si2): New pattern.
5769         (arm_rev16si2_alt): Likewise.
5770         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
5771
5772 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5773
5774         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
5775         (rev16<mode>2_alt): Likewise.
5776         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
5777         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
5778         (aarch_rev16_shleft_mask_imm_p): Likewise.
5779         (aarch_rev16_p_1): Likewise.
5780         (aarch_rev16_p): Likewise.
5781         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
5782         (aarch_rev16_shright_mask_imm_p): Likewise.
5783         (aarch_rev16_shleft_mask_imm_p): Likewise.
5784
5785 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5786
5787         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
5788         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
5789         rev cost.
5790         (cortex_a53_extra_costs): Likewise.
5791         (cortex_a57_extra_costs): Likewise.
5792         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
5793         (cortexa7_extra_costs): Likewise.
5794         (cortexa8_extra_costs): Likewise.
5795         (cortexa12_extra_costs): Likewise.
5796         (cortexa15_extra_costs): Likewise.
5797         (v7m_extra_costs): Likewise.
5798         (arm_new_rtx_costs): Handle BSWAP.
5799
5800 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5801
5802         * config/arm/arm.c (cortexa8_extra_costs): New table.
5803         (arm_cortex_a8_tune): New tuning struct.
5804         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
5805
5806 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5807
5808         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
5809
5810 2014-04-23  Richard Biener  <rguenther@suse.de>
5811
5812         * Makefile.in (OBJS): Remove loop-unswitch.o.
5813         * tree-pass.h (make_pass_rtl_unswitch): Remove.
5814         * passes.def (pass_rtl_unswitch): Likewise.
5815         * loop-init.c (gate_rtl_unswitch): Likewise.
5816         (rtl_unswitch): Likewise.
5817         (pass_data_rtl_unswitch): Likewise.
5818         (pass_rtl_unswitch): Likewise.
5819         (make_pass_rtl_unswitch): Likewise.
5820         * rtl.h (reversed_condition): Likewise.
5821         (compare_and_jump_seq): Likewise.
5822         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
5823         and make static.
5824         * loop-unroll.c (compare_and_jump_seq): Likewise.
5825
5826 2014-04-23  Richard Biener  <rguenther@suse.de>
5827
5828         PR tree-optimization/60903
5829         * tree-ssa-loop-im.c (analyze_memory_references): Remove
5830         commented code block.
5831         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
5832         loop flags to newly created BBs and edges.
5833
5834 2014-04-23  Nick Clifton  <nickc@redhat.com>
5835
5836         * config/msp430/msp430.c (msp430_handle_option): Move function
5837         to msp430-common.c
5838         (msp430_option_override): Simplify mcu and mcpu option handling.
5839         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
5840         support for -mhwmult command line option.
5841         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
5842         -mhwmult command line option.
5843         (msp430_hwmult_enabled): Delete.
5844         (msp43o_output_labelref): Add support for -mhwmult command line option.
5845         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
5846         (umulsidi3): Likewise.
5847         * config/msp430/msp430.opt (mmcu): Add Report attribute.
5848         (mcpu, mlarge, msmall): Likewise.
5849         (mhwmult): New option.
5850         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
5851         prototype.
5852         (msp430_is_f5_mcu): Remove prototype.
5853         (msp430_use_f5_series_hwmult): Add prototype.
5854         * config/msp430/msp430-opts.h: New file.
5855         * common/config/msp430: New directory.
5856         * common/config/msp430/msp430-common.c: New file.
5857         * config.gcc (msp430): Remove target_has_targetm_common.
5858         * doc/invoke.texi: Document -mhwmult command line option.
5859
5860 2014-04-23  Nick Clifton  <nickc@redhat.com>
5861
5862         * config/i386/cygwin.h (ENDFILE_SPEC): Include
5863         default-manifest.o if it can be found in the search path.
5864         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
5865
5866 2014-04-23  Terry Guo  <terry.guo@arm.com>
5867
5868         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
5869
5870 2014-04-23  Richard Biener  <rguenther@suse.de>
5871
5872         PR middle-end/60895
5873         * tree-inline.c (declare_return_variable): Use mark_addressable.
5874
5875 2014-04-23  Richard Biener  <rguenther@suse.de>
5876
5877         PR middle-end/60891
5878         * loop-init.c (loop_optimizer_init): Make sure to apply
5879         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
5880
5881 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
5882
5883         PR sanitizer/60275
5884         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
5885         New options.
5886         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
5887         if flag_sanitize_undefined_trap_on_error.
5888         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
5889         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
5890         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
5891         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
5892         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
5893         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
5894         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
5895         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
5896         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
5897         * ubsan.c (ubsan_instrument_unreachable): Return
5898         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
5899         (ubsan_expand_null_ifn): Emit __builtin_trap ()
5900         if flag_sanitize_undefined_trap_on_error and
5901         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
5902         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
5903         instrument_bool_enum_load): Emit __builtin_trap () if
5904         flag_sanitize_undefined_trap_on_error and
5905         __builtin_handle_*_abort () if !flag_sanitize_recover.
5906         * doc/invoke.texi (-fsanitize-recover,
5907         -fsanitize-undefined-trap-on-error): Document.
5908
5909 2014-04-22  Christian Bruel  <christian.bruel@st.com>
5910
5911         * config/sh/sh.md (mov<mode>): Replace movQIHI.
5912          Force immediates to SImode.
5913
5914 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
5915
5916         * config/nios2/nios2.md (UNSPEC_ROUND): New.
5917         (lroundsfsi2): New.
5918         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
5919         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
5920         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
5921         (nios2_fpu_insn): Add entry for round.
5922         (N2FPU_NO_ERRNO_P): Define.
5923         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
5924         flag_errno_math.
5925         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
5926
5927 2014-04-22  Richard Henderson  <rth@redhat.com>
5928
5929         * config/aarch64/aarch64 (addti3, subti3): New expanders.
5930         (add<GPI>3_compare0): Remove leading * from name.
5931         (add<GPI>3_carryin): Likewise.
5932         (sub<GPI>3_compare0): Likewise.
5933         (sub<GPI>3_carryin): Likewise.
5934         (<su_optab>mulditi3): New expander.
5935         (multi3): New expander.
5936         (madd<GPI>): Remove leading * from name.
5937
5938 2014-04-22  Martin Jambor  <mjambor@suse.cz>
5939
5940         * cgraphclones.c (cgraph_function_versioning): Copy
5941         ipa_transforms_to_apply instead of asserting it is empty.
5942
5943 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
5944
5945         PR target/60868
5946         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
5947         on count_exp to get mode.
5948
5949 2014-04-22  Andrew Pinski  <apinski@cavium.com>
5950
5951         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
5952         Handle TLS for ILP32.
5953         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
5954         (tlsie_small_<mode>): this and handle PTR.
5955         (tlsie_small_sidi): New pattern.
5956         (tlsle_small): Change to an expand to handle ILP32.
5957         (tlsle_small_<mode>): New pattern.
5958         (tlsdesc_small): Rename to ...
5959         (tlsdesc_small_<mode>): this and handle PTR.
5960
5961 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5962
5963         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
5964
5965 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
5966
5967         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
5968         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
5969         (aarch64_types_signed_poly_qualifiers): Likewise.
5970         (aarch64_types_unsigned_signed_qualifiers): Likewise.
5971         (aarch64_types_poly_signed_qualifiers): Likewise.
5972         (TYPES_REINTERP_SS): Type macro added.
5973         (TYPES_REINTERP_SU): Likewise.
5974         (TYPES_REINTERP_SP): Likewise.
5975         (TYPES_REINTERP_US): Likewise.
5976         (TYPES_REINTERP_PS): Likewise.
5977         (aarch64_fold_builtin): New expression folding added.
5978         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
5979         Declarations removed.
5980         (REINTERP_SS): Declarations added.
5981         (REINTERP_US): Likewise.
5982         (REINTERP_PS): Likewise.
5983         (REINTERP_SU): Likewise.
5984         (REINTERP_SP): Likewise.
5985         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
5986         (vreinterpretq_p8_f64): Likewise.
5987         (vreinterpret_p16_f64): Likewise.
5988         (vreinterpretq_p16_f64): Likewise.
5989         (vreinterpret_f32_f64): Likewise.
5990         (vreinterpretq_f32_f64): Likewise.
5991         (vreinterpret_f64_f32): Likewise.
5992         (vreinterpret_f64_p8): Likewise.
5993         (vreinterpret_f64_p16): Likewise.
5994         (vreinterpret_f64_s8): Likewise.
5995         (vreinterpret_f64_s16): Likewise.
5996         (vreinterpret_f64_s32): Likewise.
5997         (vreinterpret_f64_s64): Likewise.
5998         (vreinterpret_f64_u8): Likewise.
5999         (vreinterpret_f64_u16): Likewise.
6000         (vreinterpret_f64_u32): Likewise.
6001         (vreinterpret_f64_u64): Likewise.
6002         (vreinterpretq_f64_f32): Likewise.
6003         (vreinterpretq_f64_p8): Likewise.
6004         (vreinterpretq_f64_p16): Likewise.
6005         (vreinterpretq_f64_s8): Likewise.
6006         (vreinterpretq_f64_s16): Likewise.
6007         (vreinterpretq_f64_s32): Likewise.
6008         (vreinterpretq_f64_s64): Likewise.
6009         (vreinterpretq_f64_u8): Likewise.
6010         (vreinterpretq_f64_u16): Likewise.
6011         (vreinterpretq_f64_u32): Likewise.
6012         (vreinterpretq_f64_u64): Likewise.
6013         (vreinterpret_s64_f64): Likewise.
6014         (vreinterpretq_s64_f64): Likewise.
6015         (vreinterpret_u64_f64): Likewise.
6016         (vreinterpretq_u64_f64): Likewise.
6017         (vreinterpret_s8_f64): Likewise.
6018         (vreinterpretq_s8_f64): Likewise.
6019         (vreinterpret_s16_f64): Likewise.
6020         (vreinterpretq_s16_f64): Likewise.
6021         (vreinterpret_s32_f64): Likewise.
6022         (vreinterpretq_s32_f64): Likewise.
6023         (vreinterpret_u8_f64): Likewise.
6024         (vreinterpretq_u8_f64): Likewise.
6025         (vreinterpret_u16_f64): Likewise.
6026         (vreinterpretq_u16_f64): Likewise.
6027         (vreinterpret_u32_f64): Likewise.
6028         (vreinterpretq_u32_f64): Likewise.
6029
6030 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
6031
6032         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
6033         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
6034         (vreinterpret_p8_s8): Likewise.
6035         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
6036         (vreinterpret_p8_s16): Likewise.
6037         (vreinterpret_p8_s32): Likewise.
6038         (vreinterpret_p8_s64): Likewise.
6039         (vreinterpret_p8_f32): Likewise.
6040         (vreinterpret_p8_u8): Likewise.
6041         (vreinterpret_p8_u16): Likewise.
6042         (vreinterpret_p8_u32): Likewise.
6043         (vreinterpret_p8_u64): Likewise.
6044         (vreinterpret_p8_p16): Likewise.
6045         (vreinterpretq_p8_s8): Likewise.
6046         (vreinterpretq_p8_s16): Likewise.
6047         (vreinterpretq_p8_s32): Likewise.
6048         (vreinterpretq_p8_s64): Likewise.
6049         (vreinterpretq_p8_f32): Likewise.
6050         (vreinterpretq_p8_u8): Likewise.
6051         (vreinterpretq_p8_u16): Likewise.
6052         (vreinterpretq_p8_u32): Likewise.
6053         (vreinterpretq_p8_u64): Likewise.
6054         (vreinterpretq_p8_p16): Likewise.
6055         (vreinterpret_p16_s8): Likewise.
6056         (vreinterpret_p16_s16): Likewise.
6057         (vreinterpret_p16_s32): Likewise.
6058         (vreinterpret_p16_s64): Likewise.
6059         (vreinterpret_p16_f32): Likewise.
6060         (vreinterpret_p16_u8): Likewise.
6061         (vreinterpret_p16_u16): Likewise.
6062         (vreinterpret_p16_u32): Likewise.
6063         (vreinterpret_p16_u64): Likewise.
6064         (vreinterpret_p16_p8): Likewise.
6065         (vreinterpretq_p16_s8): Likewise.
6066         (vreinterpretq_p16_s16): Likewise.
6067         (vreinterpretq_p16_s32): Likewise.
6068         (vreinterpretq_p16_s64): Likewise.
6069         (vreinterpretq_p16_f32): Likewise.
6070         (vreinterpretq_p16_u8): Likewise.
6071         (vreinterpretq_p16_u16): Likewise.
6072         (vreinterpretq_p16_u32): Likewise.
6073         (vreinterpretq_p16_u64): Likewise.
6074         (vreinterpretq_p16_p8): Likewise.
6075         (vreinterpret_f32_s8): Likewise.
6076         (vreinterpret_f32_s16): Likewise.
6077         (vreinterpret_f32_s32): Likewise.
6078         (vreinterpret_f32_s64): Likewise.
6079         (vreinterpret_f32_u8): Likewise.
6080         (vreinterpret_f32_u16): Likewise.
6081         (vreinterpret_f32_u32): Likewise.
6082         (vreinterpret_f32_u64): Likewise.
6083         (vreinterpret_f32_p8): Likewise.
6084         (vreinterpret_f32_p16): Likewise.
6085         (vreinterpretq_f32_s8): Likewise.
6086         (vreinterpretq_f32_s16): Likewise.
6087         (vreinterpretq_f32_s32): Likewise.
6088         (vreinterpretq_f32_s64): Likewise.
6089         (vreinterpretq_f32_u8): Likewise.
6090         (vreinterpretq_f32_u16): Likewise.
6091         (vreinterpretq_f32_u32): Likewise.
6092         (vreinterpretq_f32_u64): Likewise.
6093         (vreinterpretq_f32_p8): Likewise.
6094         (vreinterpretq_f32_p16): Likewise.
6095         (vreinterpret_s64_s8): Likewise.
6096         (vreinterpret_s64_s16): Likewise.
6097         (vreinterpret_s64_s32): Likewise.
6098         (vreinterpret_s64_f32): Likewise.
6099         (vreinterpret_s64_u8): Likewise.
6100         (vreinterpret_s64_u16): Likewise.
6101         (vreinterpret_s64_u32): Likewise.
6102         (vreinterpret_s64_u64): Likewise.
6103         (vreinterpret_s64_p8): Likewise.
6104         (vreinterpret_s64_p16): Likewise.
6105         (vreinterpretq_s64_s8): Likewise.
6106         (vreinterpretq_s64_s16): Likewise.
6107         (vreinterpretq_s64_s32): Likewise.
6108         (vreinterpretq_s64_f32): Likewise.
6109         (vreinterpretq_s64_u8): Likewise.
6110         (vreinterpretq_s64_u16): Likewise.
6111         (vreinterpretq_s64_u32): Likewise.
6112         (vreinterpretq_s64_u64): Likewise.
6113         (vreinterpretq_s64_p8): Likewise.
6114         (vreinterpretq_s64_p16): Likewise.
6115         (vreinterpret_u64_s8): Likewise.
6116         (vreinterpret_u64_s16): Likewise.
6117         (vreinterpret_u64_s32): Likewise.
6118         (vreinterpret_u64_s64): Likewise.
6119         (vreinterpret_u64_f32): Likewise.
6120         (vreinterpret_u64_u8): Likewise.
6121         (vreinterpret_u64_u16): Likewise.
6122         (vreinterpret_u64_u32): Likewise.
6123         (vreinterpret_u64_p8): Likewise.
6124         (vreinterpret_u64_p16): Likewise.
6125         (vreinterpretq_u64_s8): Likewise.
6126         (vreinterpretq_u64_s16): Likewise.
6127         (vreinterpretq_u64_s32): Likewise.
6128         (vreinterpretq_u64_s64): Likewise.
6129         (vreinterpretq_u64_f32): Likewise.
6130         (vreinterpretq_u64_u8): Likewise.
6131         (vreinterpretq_u64_u16): Likewise.
6132         (vreinterpretq_u64_u32): Likewise.
6133         (vreinterpretq_u64_p8): Likewise.
6134         (vreinterpretq_u64_p16): Likewise.
6135         (vreinterpret_s8_s16): Likewise.
6136         (vreinterpret_s8_s32): Likewise.
6137         (vreinterpret_s8_s64): Likewise.
6138         (vreinterpret_s8_f32): Likewise.
6139         (vreinterpret_s8_u8): Likewise.
6140         (vreinterpret_s8_u16): Likewise.
6141         (vreinterpret_s8_u32): Likewise.
6142         (vreinterpret_s8_u64): Likewise.
6143         (vreinterpret_s8_p8): Likewise.
6144         (vreinterpret_s8_p16): Likewise.
6145         (vreinterpretq_s8_s16): Likewise.
6146         (vreinterpretq_s8_s32): Likewise.
6147         (vreinterpretq_s8_s64): Likewise.
6148         (vreinterpretq_s8_f32): Likewise.
6149         (vreinterpretq_s8_u8): Likewise.
6150         (vreinterpretq_s8_u16): Likewise.
6151         (vreinterpretq_s8_u32): Likewise.
6152         (vreinterpretq_s8_u64): Likewise.
6153         (vreinterpretq_s8_p8): Likewise.
6154         (vreinterpretq_s8_p16): Likewise.
6155         (vreinterpret_s16_s8): Likewise.
6156         (vreinterpret_s16_s32): Likewise.
6157         (vreinterpret_s16_s64): Likewise.
6158         (vreinterpret_s16_f32): Likewise.
6159         (vreinterpret_s16_u8): Likewise.
6160         (vreinterpret_s16_u16): Likewise.
6161         (vreinterpret_s16_u32): Likewise.
6162         (vreinterpret_s16_u64): Likewise.
6163         (vreinterpret_s16_p8): Likewise.
6164         (vreinterpret_s16_p16): Likewise.
6165         (vreinterpretq_s16_s8): Likewise.
6166         (vreinterpretq_s16_s32): Likewise.
6167         (vreinterpretq_s16_s64): Likewise.
6168         (vreinterpretq_s16_f32): Likewise.
6169         (vreinterpretq_s16_u8): Likewise.
6170         (vreinterpretq_s16_u16): Likewise.
6171         (vreinterpretq_s16_u32): Likewise.
6172         (vreinterpretq_s16_u64): Likewise.
6173         (vreinterpretq_s16_p8): Likewise.
6174         (vreinterpretq_s16_p16): Likewise.
6175         (vreinterpret_s32_s8): Likewise.
6176         (vreinterpret_s32_s16): Likewise.
6177         (vreinterpret_s32_s64): Likewise.
6178         (vreinterpret_s32_f32): Likewise.
6179         (vreinterpret_s32_u8): Likewise.
6180         (vreinterpret_s32_u16): Likewise.
6181         (vreinterpret_s32_u32): Likewise.
6182         (vreinterpret_s32_u64): Likewise.
6183         (vreinterpret_s32_p8): Likewise.
6184         (vreinterpret_s32_p16): Likewise.
6185         (vreinterpretq_s32_s8): Likewise.
6186         (vreinterpretq_s32_s16): Likewise.
6187         (vreinterpretq_s32_s64): Likewise.
6188         (vreinterpretq_s32_f32): Likewise.
6189         (vreinterpretq_s32_u8): Likewise.
6190         (vreinterpretq_s32_u16): Likewise.
6191         (vreinterpretq_s32_u32): Likewise.
6192         (vreinterpretq_s32_u64): Likewise.
6193         (vreinterpretq_s32_p8): Likewise.
6194         (vreinterpretq_s32_p16): Likewise.
6195         (vreinterpret_u8_s8): Likewise.
6196         (vreinterpret_u8_s16): Likewise.
6197         (vreinterpret_u8_s32): Likewise.
6198         (vreinterpret_u8_s64): Likewise.
6199         (vreinterpret_u8_f32): Likewise.
6200         (vreinterpret_u8_u16): Likewise.
6201         (vreinterpret_u8_u32): Likewise.
6202         (vreinterpret_u8_u64): Likewise.
6203         (vreinterpret_u8_p8): Likewise.
6204         (vreinterpret_u8_p16): Likewise.
6205         (vreinterpretq_u8_s8): Likewise.
6206         (vreinterpretq_u8_s16): Likewise.
6207         (vreinterpretq_u8_s32): Likewise.
6208         (vreinterpretq_u8_s64): Likewise.
6209         (vreinterpretq_u8_f32): Likewise.
6210         (vreinterpretq_u8_u16): Likewise.
6211         (vreinterpretq_u8_u32): Likewise.
6212         (vreinterpretq_u8_u64): Likewise.
6213         (vreinterpretq_u8_p8): Likewise.
6214         (vreinterpretq_u8_p16): Likewise.
6215         (vreinterpret_u16_s8): Likewise.
6216         (vreinterpret_u16_s16): Likewise.
6217         (vreinterpret_u16_s32): Likewise.
6218         (vreinterpret_u16_s64): Likewise.
6219         (vreinterpret_u16_f32): Likewise.
6220         (vreinterpret_u16_u8): Likewise.
6221         (vreinterpret_u16_u32): Likewise.
6222         (vreinterpret_u16_u64): Likewise.
6223         (vreinterpret_u16_p8): Likewise.
6224         (vreinterpret_u16_p16): Likewise.
6225         (vreinterpretq_u16_s8): Likewise.
6226         (vreinterpretq_u16_s16): Likewise.
6227         (vreinterpretq_u16_s32): Likewise.
6228         (vreinterpretq_u16_s64): Likewise.
6229         (vreinterpretq_u16_f32): Likewise.
6230         (vreinterpretq_u16_u8): Likewise.
6231         (vreinterpretq_u16_u32): Likewise.
6232         (vreinterpretq_u16_u64): Likewise.
6233         (vreinterpretq_u16_p8): Likewise.
6234         (vreinterpretq_u16_p16): Likewise.
6235         (vreinterpret_u32_s8): Likewise.
6236         (vreinterpret_u32_s16): Likewise.
6237         (vreinterpret_u32_s32): Likewise.
6238         (vreinterpret_u32_s64): Likewise.
6239         (vreinterpret_u32_f32): Likewise.
6240         (vreinterpret_u32_u8): Likewise.
6241         (vreinterpret_u32_u16): Likewise.
6242         (vreinterpret_u32_u64): Likewise.
6243         (vreinterpret_u32_p8): Likewise.
6244         (vreinterpret_u32_p16): Likewise.
6245         (vreinterpretq_u32_s8): Likewise.
6246         (vreinterpretq_u32_s16): Likewise.
6247         (vreinterpretq_u32_s32): Likewise.
6248         (vreinterpretq_u32_s64): Likewise.
6249         (vreinterpretq_u32_f32): Likewise.
6250         (vreinterpretq_u32_u8): Likewise.
6251         (vreinterpretq_u32_u16): Likewise.
6252         (vreinterpretq_u32_u64): Likewise.
6253         (vreinterpretq_u32_p8): Likewise.
6254         (vreinterpretq_u32_p16): Likewise.
6255
6256 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
6257
6258         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
6259         Pattern extended.
6260         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
6261         (sqabs): Likewise.
6262         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
6263         (vqnegd_s64): Likewise.
6264         (vqabs_s64): Likewise.
6265         (vqabsd_s64): Likewise.
6266
6267 2014-04-22  Richard Henderson  <rth@redhat.com>
6268
6269         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
6270         computation to the top of the loop.
6271
6272 2014-04-22  Renlin  <renlin.li@arm.com>
6273             Jiong Wang  <jiong.wang@arm.com>
6274
6275         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
6276         * config/aarch64/aarch64.c (aarch64_layout_frame)
6277         (aarch64_initial_elimination_offset): Likewise.
6278
6279 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6280
6281         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
6282         Fix indentation.
6283
6284 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
6285
6286         * machmode.h (bitwise_mode_for_mode): Declare.
6287         * stor-layout.h (bitwise_type_for_mode): Likewise.
6288         * stor-layout.c (bitwise_mode_for_mode): New function.
6289         (bitwise_type_for_mode): Likewise.
6290         * builtins.c (fold_builtin_memory_op): Use it instead of
6291         int_mode_for_mode and build_nonstandard_integer_type.
6292
6293 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6294
6295         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
6296         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
6297         (*-*-solaris2*): Simplify.
6298         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
6299         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
6300         *-*-solaris2.9* handling.
6301
6302         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
6303         as bug.
6304         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
6305         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
6306         handling, simplify.
6307         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
6308         * configure: Regenerate.
6309
6310         * config/i386/sol2-9.h: Remove.
6311
6312         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
6313         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
6314         Remove Solaris 9 references.
6315
6316 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
6317
6318         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
6319         (floatuns<GPI:mode><GPF:mode>2): Remove.
6320         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
6321         and floatuns conversions.
6322         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
6323         and floatuns conversions.
6324         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
6325         (w1,w2): New mode attributes for inequal width conversions.
6326
6327 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
6328
6329         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
6330         the output asm format.
6331
6332 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
6333
6334         * config/aarch64/aarch64-simd.md
6335         (aarch64_cm<optab>di): Always split.
6336         (*aarch64_cm<optab>di): New.
6337         (aarch64_cmtstdi): Always split.
6338         (*aarch64_cmtstdi): New.
6339
6340 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
6341
6342         PR tree-optimization/60823
6343         * omp-low.c (ipa_simd_modify_function_body): Go through
6344         all SSA_NAMEs and for those refering to vector arguments
6345         which are going to be replaced adjust SSA_NAME_VAR and,
6346         if it is a default definition, change it into a non-default
6347         definition assigned at the beginning of function from new_decl.
6348         (ipa_simd_modify_stmt_ops): Rewritten.
6349         * tree-dfa.c (set_ssa_default_def): When removing default def,
6350         check for NULL loc instead of NULL *loc.
6351
6352 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6353
6354         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
6355         restrictions on core registers for DImode values in Thumb2.
6356
6357 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
6358
6359         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
6360         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
6361
6362 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
6363
6364         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
6365         (*iordi_notzesidi_di): Likewise.
6366         (*iordi_notsesidi_di): Likewise.
6367
6368 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
6369
6370         * config/arm/arm-protos.h (tune_params): New struct members.
6371         * config/arm/arm.c: Initialise tune_params per processor.
6372         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
6373         for speed, based on new tune_params.
6374
6375 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
6376
6377         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
6378         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
6379         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
6380         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
6381         * config/aarch64/arm_neon.h (vrnd_f64): Added.
6382         (vrnda_f64): Likewise.
6383         (vrndi_f64): Likewise.
6384         (vrndm_f64): Likewise.
6385         (vrndn_f64): Likewise.
6386         (vrndp_f64): Likewise.
6387         (vrndx_f64): Likewise.
6388
6389 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6390
6391         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
6392         GET_MODE_SIZE argument is enum machine_mode.
6393
6394 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
6395
6396         PR target/60910
6397         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
6398         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
6399
6400 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
6401
6402         PR middle-end/60281
6403         * asan.c (asan_emit_stack_protection): Force the base to align to
6404         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
6405         appropriate bits if STRICT_ALIGNMENT.
6406         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
6407         when asan is on.
6408         (expand_used_vars): Leave a space in the stack frame for alignment
6409         if STRICT_ALIGNMENT.
6410
6411 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
6412
6413         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
6414         than a gimple.
6415         (gimple_store_p): Likewise.
6416         (gimple_assign_load_p): Likewise.
6417         (gimple_assign_cast_p): Likewise.
6418         (gimple_clobber_p): Likewise.
6419
6420         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
6421         rather than a gimple.
6422         (gimple_assign_cast_p): Likewise.
6423
6424 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
6425
6426         PR target/60735
6427         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
6428         If mode is DDmode and TARGET_E500_DOUBLE allow move.
6429
6430         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
6431         more debug information for E500 if -mdebug=reg.
6432
6433 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
6434
6435         PR target/60909
6436         * config/i386/i386.c (ix86_expand_builtin)
6437         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
6438         register for target RTX.
6439         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
6440
6441 2014-04-18  Cong Hou  <congh@google.com>
6442
6443         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
6444         the widen-mult pattern by handling two operands with different sizes,
6445         and operands whose size is smaller than half of the result type.
6446
6447 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
6448
6449         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
6450         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
6451         (do_estimate_edge_time): Compute it.
6452         * ipa-inline.c (want_inline_small_function_p): Bypass
6453         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
6454
6455 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
6456
6457         * ipa-inline.c (spec_rem): New static variable.
6458         (dump_overall_stats): New function.
6459         (dump_inline_stats): New function.
6460
6461 2014-04-18  Richard Henderson  <rth@redhat.com>
6462
6463         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
6464         to GET_MODE_SIZE, not a reg_class_t.
6465
6466 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6467
6468         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
6469         (vsx_xxmrglw_<mode>): Likewise.
6470
6471 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
6472
6473         PR target/60876
6474         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
6475         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
6476         (rs6000_init_hard_regno_mode_ok): Likewise.
6477
6478 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
6479
6480         * ipa-inline.c (inline_small_functions): Account only non-cold
6481         functions.
6482         * doc/invoke.texi (inline-unit-growth): Update documentation.
6483
6484 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
6485
6486         * config/rs6000/rs6000.md (addti3, subti3): New.
6487
6488 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6489
6490         PR target/60863
6491         * config/i386/i386.c (ix86_expand_clear): Remove outdated
6492         comment.  Check optimize_insn_for_size_p instead of
6493         optimize_insn_for_speed_p.
6494
6495 2014-04-17  Martin Jambor  <mjambor@suse.cz>
6496
6497         * gimple-iterator.c (gsi_start_edge): New function.
6498         * gimple-iterator.h (gsi_start_edge): Declare.
6499         * tree-sra.c (single_non_eh_succ): New function.
6500         (disqualify_ops_if_throwing_stmt): Renamed to
6501         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
6502         having one non-EH successor BB.
6503         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
6504         generate loads into replacements.
6505         (sra_modify_assign): Likewise and and also use the simple path for
6506         such statements.
6507         (sra_modify_function_body): Commit statements on edges.
6508
6509 2014-04-17  Richard Biener  <rguenther@suse.de>
6510
6511         PR middle-end/60849
6512         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
6513         comparison results and add clarifying comment.
6514
6515 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
6516
6517         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
6518         (blank_mode): Initialize it.
6519         (emit_mode_size_inline, emit_mode_nunits_inline,
6520         emit_mode_inner_inline): New functions.
6521         (emit_insn_modes_h): Call them and surround their output with
6522         #if GCC_VERSION >= 4001 ... #endif.
6523         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
6524         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
6525         mode_* arrays if the argument is __builtin_constant_p.
6526         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
6527         is enum machine_mode.
6528
6529 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
6530
6531         * passes.c (opt_pass::execute): Adjust.
6532         (pass_manager::execute_pass_mode_switching): Likewise.
6533         (early_local_passes::execute): Likewise.
6534         (execute_one_pass): Pass cfun to the pass's execute method.
6535         * tree-pass.h (opt_pass::execute): Add function * argument.
6536         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
6537         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
6538         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
6539         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
6540         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
6541         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
6542         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
6543         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
6544         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
6545         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
6546         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
6547         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
6548         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
6549         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
6550         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
6551         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
6552         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
6553         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
6554         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
6555         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
6556         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
6557         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
6558         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
6559         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
6560         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
6561         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
6562         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
6563         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
6564         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
6565         Adjust.
6566
6567 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
6568
6569         * passes.c (opt_pass::gate): Take function * argument.
6570         (gate_all_early_local_passes): Merge into
6571         (early_local_passes::gate): this.
6572         (gate_all_early_optimizations): Merge into
6573         (all_early_optimizations::gate): this.
6574         (gate_all_optimizations): Mege into
6575         (all_optimizations::gate): this.
6576         (gate_all_optimizations_g): Merge into
6577         (all_optimizations_g::gate): this.
6578         (gate_rest_of_compilation): Mege into
6579         (rest_of_compilation::gate): this.
6580         (gate_postreload): Merge into
6581         (postreload::gate): this.
6582         (dump_one_pass): Pass cfun to the pass's gate method.
6583         (execute_ipa_summary_passes): Likewise.
6584         (execute_one_pass): Likewise.
6585         (ipa_write_summaries_2): Likewise.
6586         (ipa_write_optimization_summaries_1): Likewise.
6587         (ipa_read_summaries_1): Likewise.
6588         (ipa_read_optimization_summaries_1): Likewise.
6589         (execute_ipa_stmt_fixups): Likewise.
6590         * tree-pass.h (opt_pass::gate): Add function * argument.
6591         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
6592         combine-stack-adj.c, combine.c, compare-elim.c,
6593         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
6594         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
6595         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
6596         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
6597         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
6598         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
6599         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
6600         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
6601         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
6602         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
6603         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
6604         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
6605         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
6606         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
6607         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
6608         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
6609         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
6610         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
6611         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
6612         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
6613         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
6614         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
6615         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
6616         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
6617         var-tracking.c, vtable-verify.c, web.c: Adjust.
6618
6619 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
6620
6621         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
6622         * configure: Regenerate.
6623
6624 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
6625
6626         * passes.c (dump_one_pass): don't check pass->has_gate.
6627         (execute_ipa_summary_passes): Likewise.
6628         (execute_one_pass): Likewise.
6629         (ipa_write_summaries_2): Likewise.
6630         (ipa_write_optimization_summaries_1): Likewise.
6631         (ipa_read_optimization_summaries_1): Likewise.
6632         (execute_ipa_stmt_fixups): Likewise.
6633         * tree-pass.h (pass_data::has_gate): Remove.
6634         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
6635         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
6636         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
6637         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
6638         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
6639         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
6640         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
6641         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
6642         gimple-low.c, gimple-ssa-isolate-paths.c,
6643         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
6644         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
6645         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
6646         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
6647         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
6648         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
6649         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
6650         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
6651         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
6652         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
6653         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
6654         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
6655         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
6656         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
6657         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
6658         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
6659         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
6660         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
6661         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
6662         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
6663         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
6664         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
6665         Adjust.
6666
6667 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
6668
6669         * pass_manager.h (pass_manager::register_dump_files_1): Remove
6670         declaration.
6671         * passes.c (pass_manager::register_dump_files_1): Merge into
6672         (pass_manager::register_dump_files): this, and remove its handling of
6673         properties since the pass always has the properties anyway.
6674         (pass_manager::pass_manager): Adjust.
6675
6676 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
6677
6678         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
6679         * passes.c (pass_manager::register_dump_files_1): Remove dead code
6680         dealing with properties.
6681         (pass_manager::register_dump_files): Adjust.
6682
6683 2014-03-20  Mark Wielaard  <mjw@redhat.com>
6684
6685         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
6686         then represent the bound as normal constant value.
6687
6688 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
6689
6690         PR target/60847
6691         Forward port from 4.8 branch
6692         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
6693
6694         * config/i386/bmiintrin.h (_blsi_u32): New.
6695         (_blsi_u64): Ditto.
6696         (_blsr_u32): Ditto.
6697         (_blsr_u64): Ditto.
6698         (_blsmsk_u32): Ditto.
6699         (_blsmsk_u64): Ditto.
6700         (_tzcnt_u32): Ditto.
6701         (_tzcnt_u64): Ditto.
6702
6703 2014-04-17  Kito Cheng  <kito@0xlab.org>
6704
6705         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
6706
6707 2014-04-17  Richard Biener  <rguenther@suse.de>
6708
6709         PR middle-end/60849
6710         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
6711         boolean results for comparisons.
6712
6713 2014-04-17  Richard Biener  <rguenther@suse.de>
6714
6715         PR tree-optimization/60836
6716         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
6717         initial PHI args to be gimple values.
6718
6719 2014-04-17  Richard Biener  <rguenther@suse.de>
6720
6721         PR tree-optimization/60841
6722         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
6723         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
6724         of stmts to SLP build.
6725         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
6726         (vect_analyze_slp): Likewise.
6727         (vect_analyze_slp_instance): Likewise.
6728         (vect_build_slp_tree): Limit overall SLP tree growth.
6729         * tree-vectorizer.h (vect_analyze_data_refs,
6730         vect_analyze_slp): Adjust prototypes.
6731
6732 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
6733
6734         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
6735         Silvermont.
6736
6737 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
6738
6739         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
6740         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
6741         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
6742         for TARGET_SLOW_PSHUFB
6743
6744 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
6745
6746         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
6747         * config/i386/i386.c (intel_cost): Ditto.
6748
6749 2014-04-17  Joey Ye  <joey.ye@arm.com>
6750
6751         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
6752
6753 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
6754
6755         * opts.c (common_handle_option): Disable -fipa-reference coorectly
6756         with -fuse-profile.
6757
6758 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
6759
6760         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
6761         (type_all_derivations_known_p): New predicate.
6762         (type_all_ctors_visible_p): New predicate.
6763         (type_possibly_instantiated_p): New predicate.
6764         (get_odr_type): Compute all_derivations_known.
6765         (dump_odr_type): Dump the flag.
6766         (maybe_record_type): Cleanup.
6767         (record_target_from_binfo): Add bases_to_consider array;
6768         record bases for types w/o instances and skip CXX destructor.
6769         (possible_polymorphic_call_targets_1): Add bases_to_consider
6770         and consider_construction parameters; check if type may have instance.
6771         (get_polymorphic_call_info): Set maybe_in_construction to true
6772         when we know nothing.
6773         (record_targets_from_bases): Skip CXX destructors; they are
6774         never called for types in construction.
6775         (possible_polymorphic_call_targets): Do not record target when
6776         type may not have instance.
6777
6778 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
6779
6780         PR ipa/60854
6781         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
6782         external aliases alive, too.
6783
6784 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
6785
6786         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
6787         definition.
6788
6789 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
6790
6791         * final.c (compute_alignments): Do not apply loop alignment to a block
6792         falling through to the exit.
6793
6794 2014-04-16  Catherine Moore  <clm@codesourcery.com>
6795
6796         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
6797         Adjust constraints for microMIPS store patterns.
6798
6799 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
6800
6801         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
6802
6803 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
6804
6805         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
6806         (append_use): Run at -O0.
6807         (append_vdef): Likewise.
6808         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
6809         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
6810
6811 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
6812
6813         PR tree-optimization/60844
6814         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
6815         (propagate_op_to_single_use, remove_visited_stmt_chain,
6816         linearize_expr, repropagate_negates, reassociate_bb): Use it
6817         instead of gsi_remove.
6818
6819 2014-04-16  Martin Jambor  <mjambor@suse.cz>
6820
6821         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
6822         ipa_transforms_to_apply.
6823         (cgraph_function_versioning): Assert that old_node has empty
6824         ipa_transforms_to_apply.
6825         * trans-mem.c (ipa_tm_create_version): Likewise.
6826         * tree-inline.c (tree_function_versioning): Do not duplicate
6827         ipa_transforms_to_apply.
6828
6829 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6830
6831         PR target/60817
6832         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
6833         x86_64-*-* cases.
6834         Pass necessary as flags on 64-bit Solaris/x86.
6835         Use lowercase relocs for x86_64-*-*.
6836         * configure: Regenerate.
6837
6838 2014-04-15  Jan Hubicka  <jh@suse.cz>
6839
6840         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
6841         (maybe_record_node, likely_target_p): Use it.
6842
6843 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6844
6845         PR target/60839
6846         Revert following patch
6847
6848         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6849
6850         PR target/60735
6851         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
6852         software floating point or no floating point registers, do not
6853         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
6854         in GPRs that occurs after we tested for GPRs that would never be
6855         true.
6856
6857         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
6858         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
6859         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
6860         specifically allow DDmode, since that does not use the SPE SIMD
6861         instructions.
6862
6863 2014-03-21  Mark Wielaard  <mjw@redhat.com>
6864
6865         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
6866         as unsigned or int depending on type and value used.
6867
6868 2014-04-15  Richard Biener  <rguenther@suse.de>
6869
6870         PR rtl-optimization/56965
6871         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
6872         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
6873         ... here.
6874         * alias.c (true_dependence_1): Do not call
6875         nonoverlapping_component_refs_p.
6876         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
6877         nonoverlapping_component_refs_p.
6878         (indirect_refs_may_alias_p): Likewise.
6879
6880 2014-04-15  Teresa Johnson  <tejohnson@google.com>
6881
6882         * cfg.c (dump_bb_info): Fix flags check.
6883         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
6884
6885 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6886
6887         PR rtl-optimization/60663
6888         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
6889         avoid 0 cost.
6890
6891 2014-04-15  Richard Biener  <rguenther@suse.de>
6892
6893         * lto-streamer.h (LTO_major_version): Bump to 4.
6894
6895 2014-04-15  Richard Biener  <rguenther@suse.de>
6896
6897         * common.opt (lto_partition_model): New enum.
6898         (flto-partition=): Merge separate options with a single with argument,
6899         add -flto-partition=one support.
6900         * flag-types.h (enum lto_partition_model): Declare.
6901         * opts.c (finish_options): Remove duplicate -flto-partition=
6902         option check.
6903         * lto-wrapper.c (run_gcc): Adjust.
6904
6905 2014-04-15  Richard Biener  <rguenther@suse.de>
6906
6907         * alias.c (ncr_compar): New function.
6908         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
6909
6910 2014-04-15  Richard Biener  <rguenther@suse.de>
6911
6912         * alias.c (record_component_aliases): Do not walk BINFOs.
6913
6914 2014-04-15  Richard Biener  <rguenther@suse.de>
6915
6916         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6917         Add struct function argument and adjust.
6918         (find_func_aliases_for_call): Likewise.
6919         (find_func_aliases): Likewise.
6920         (find_func_clobbers): Likewise.
6921         (intra_create_variable_infos): Likewise.
6922         (compute_points_to_sets): Likewise.
6923         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
6924
6925 2014-04-15  Richard Biener  <rguenther@suse.de>
6926
6927         * tree.c (iterative_hash_expr): Use enum tree_code_class
6928         to store TREE_CODE_CLASS.
6929         (tree_block): Likewise.
6930         (tree_set_block): Likewise.
6931         * tree.h (fold_build_pointer_plus_loc): Use
6932         convert_to_ptrofftype_loc.
6933
6934 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
6935
6936         PR plugins/59335
6937         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
6938         added in 4.9.
6939
6940 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6941
6942         * cfgloop.h (struct loop): Move force_vectorize down.
6943         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
6944         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
6945         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
6946         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
6947         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
6948         * tree-core.h (enum annot_expr_kind): Add new kind values.
6949         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
6950         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
6951         kinds.
6952         * tree.def (ANNOTATE_EXPR): Tweak comment.
6953
6954 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
6955
6956         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
6957         cxa_pure_virtual).
6958
6959 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
6960
6961         * tree.h (TYPE_IDENTIFIER): Declare.
6962         * tree.c (subrange_type_for_debug_p): Use it.
6963         * godump.c (go_format_type): Likewise.
6964         * dwarf2out.c (is_cxx_auto, modified_type_die,
6965         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
6966         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
6967
6968 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
6969
6970         PR lto/60820
6971         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
6972
6973 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
6974
6975         * config/i386/i386.c (examine_argument): Return bool.  Return true if
6976         parameter should be passed in memory.
6977         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
6978         (construct_container): Update calls to examine_argument.
6979         (function_arg_advance_64): Ditto.
6980         (return_in_memory_32): Merge with ix86_return_in_memory.
6981         (return_in_memory_64): Ditto.
6982         (return_in_memory_ms_64): Ditto.
6983
6984 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
6985
6986         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
6987         * coverage.c (coverage_compute_profile_id): Handle externally visible
6988         symbols.
6989
6990 2014-04-14  Martin Jambor  <mjambor@suse.cz>
6991
6992         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
6993         DECL_DISREGARD_INLINE_LIMITS functions.
6994
6995 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
6996
6997         PR target/60827
6998         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
6999
7000 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
7001
7002         PR target/60827
7003         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
7004         optimize_insn_for_speed_p instead of
7005         optimize_function_for_speed_p.
7006
7007 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
7008
7009         * doc/invoke.texi (free): Document AArch64.
7010
7011 2014-04-14  Richard Biener  <rguenther@suse.de>
7012
7013         PR tree-optimization/60042
7014         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
7015         (insert_into_preds_of_block): Do not prevent PHI insertion
7016         for REFERENCE exprs here ...
7017         (eliminate_dom_walker::before_dom_children): ... but prevent
7018         their use here under similar conditions when applied to the
7019         IL after PRE optimizations.
7020
7021 2014-04-14  Richard Biener  <rguenther@suse.de>
7022
7023         * passes.def: Move early points-to after early SRA.
7024
7025 2014-04-14  Richard Biener  <rguenther@suse.de>
7026
7027         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
7028         check for which sign-changes we allow when forwarding
7029         a converted value into a switch.
7030
7031 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
7032
7033         * stor-layout.c (place_field): Finalize non-constant offset for the
7034         field, if any.
7035
7036 2014-04-14  Richard Biener  <rguenther@suse.de>
7037
7038         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
7039         as argument.
7040         (expand_switch_using_bit_tests_p): Likewise.
7041         (process_switch): Compute and pass on speed_p based on the
7042         switch stmt.
7043         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
7044         optimize_bb_for_speed_p.
7045
7046 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
7047
7048         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
7049         * function.h (struct function): Rename has_force_vect_loops into
7050         has_force_vectorize_loops.
7051         * lto-streamer-in.c (input_cfg): Adjust for renaming.
7052         (input_struct_function_base): Likewise.
7053         * lto-streamer-out.c (output_cfg): Likewise.
7054         (output_struct_function_base): Likewise.
7055         * omp-low.c (expand_omp_simd): Likewise.
7056         * tree-cfg.c (move_sese_region_to_fn): Likewise.
7057         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
7058         (version_loop_for_if_conversion): Likewise.
7059         (tree_if_conversion): Likewise.
7060         (main_tree_if_conversion): Likewise.
7061         (gate_tree_if_conversion): Likewise.
7062         * tree-inline.c (copy_loops): Likewise.
7063         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
7064         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
7065         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
7066         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
7067         * tree-vectorizer.c (vectorize_loops): Likewise.
7068         * tree-vectorizer.h (unlimited_cost_model): Likewise.
7069
7070 2014-04-14  Richard Biener  <rguenther@suse.de>
7071
7072         PR lto/60720
7073         * lto-streamer-out.c (wrap_refs): New function.
7074         (lto_output): Wrap symbol references in global initializes in
7075         type-preserving MEM_REFs.
7076
7077 2014-04-14  Christian Bruel  <christian.bruel@st.com>
7078
7079         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
7080
7081 2014-04-14  Christian Bruel  <christian.bruel@st.com>
7082
7083         * config/sh/sh.md (setmemqi): New expand pattern.
7084         * config/sh/sh.h (CLEAR_RATIO): Define.
7085         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
7086         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
7087
7088 2014-04-14  Richard Biener  <rguenther@suse.de>
7089
7090         PR middle-end/55022
7091         * fold-const.c (negate_expr_p): Don't negate directional rounding
7092         division.
7093         (fold_negate_expr): Likewise.
7094
7095 2014-04-14  Richard Biener  <rguenther@suse.de>
7096
7097         PR tree-optimization/59817
7098         PR tree-optimization/60453
7099         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
7100         recursion to catch all CHRECs in the scalar evolution and restrict
7101         the predicate for the remains appropriately.
7102
7103 2014-04-12  Catherine Moore  <clm@codesourcery.com>
7104
7105         * config/mips/constraints.md: Add new register constraint "kb".
7106         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
7107         (*movhi_internal): Likewise.
7108         (*movqi_internal): Likewise.
7109         * config/mips/mips.h (M16_STORE_REGS): New register class.
7110         (REG_CLASS_NAMES): Add M16_STORE_REGS.
7111         (REG_CLASS_CONTENTS): Likewise.
7112         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
7113
7114 2014-04-11  Tobias Burnus  <burnus@net-b.de>
7115
7116         PR c/60194
7117         * doc/invoke.texi (-Wformat-signedness): Document it.
7118         (Wformat=2): Mention that this enables -Wformat-signedness.
7119
7120 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
7121
7122         * common/config/epiphany/epiphany-common.c
7123         (epiphany_option_optimization_table): Enable section anchors by
7124         default at -O1 or higher.
7125         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
7126         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
7127         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
7128         carries no extra cost.
7129         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
7130         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
7131         * config/epiphany/predicates.md (memclob_operand): New predicate.
7132         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
7133         Use memclob_operand predicate and X constraint for operand 3.
7134
7135 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
7136
7137         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
7138         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
7139         its operands.
7140
7141 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
7142
7143         PR rtl-optimization/60651
7144         * mode-switching.c (optimize_mode_switching): Make sure to emit
7145         sets of a lower numbered entity before sets of a higher numbered
7146         entity to a mode of the same or lower priority.
7147         When creating a seginfo for a basic block that starts with a code
7148         label, move the insertion point past the code label.
7149         (new_seginfo): Document and enforce requirement that
7150         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
7151         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
7152         * doc/tm.texi: Regenerate.
7153
7154 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
7155
7156         PR target/60811
7157         * config/arc/arc.c (arc_save_restore): Fix assert typo.
7158
7159 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
7160
7161         * BASE-VER: Set to 4.10.0.
7162
7163 2014-04-11  Tobias Burnus  <burnus@net-b.de>
7164
7165         PR other/59055
7166         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
7167         * doc/gcc.texi (Service): Update description in the @menu
7168         * doc/invoke.texi (Option Summary): Remove misplaced and
7169         duplicated @menu.
7170
7171 2014-04-11  Steve Ellcey  <sellcey@mips.com>
7172             Jakub Jelinek  <jakub@redhat.com>
7173
7174         PR middle-end/60556
7175         * expr.c (convert_move): Use emit_store_flag_force instead of
7176         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
7177         argument to it.
7178
7179 2014-04-11  Richard Biener  <rguenther@suse.de>
7180
7181         PR middle-end/60797
7182         * varasm.c (assemble_alias): Avoid endless error reporting
7183         recursion by setting TREE_ASM_WRITTEN.
7184
7185 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7186
7187         * config/s390/s390.md: Add a splitter for NOT rtx.
7188
7189 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
7190
7191         PR rtl-optimization/60663
7192         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
7193
7194 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
7195             Jakub Jelinek  <jakub@redhat.com>
7196
7197         PR lto/60567
7198         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
7199         flag from decl_node to node.
7200
7201 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7202
7203         PR debug/60655
7204         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
7205         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
7206         ameliorating the cases where it can be.
7207
7208 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
7209
7210         Revert
7211         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
7212
7213         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
7214         (loadsync_<mode>): Change mode.
7215         (load_quadpti, store_quadpti): New.
7216         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
7217         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
7218         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
7219
7220 2014-04-09  Cong Hou  <congh@google.com>
7221
7222         PR testsuite/60773
7223         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
7224         documentation.
7225
7226 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7227
7228         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
7229         instead of vnor to exploit possible fusion opportunity in the
7230         future.
7231         (altivec_expand_vec_perm_const_le): Likewise.
7232
7233 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
7234
7235         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
7236         (loadsync_<mode>): Change mode.
7237         (load_quadpti, store_quadpti): New.
7238         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
7239         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
7240
7241 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
7242
7243         PR target/60763
7244         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
7245         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
7246         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
7247
7248 2014-04-08  Richard Biener  <rguenther@suse.de>
7249
7250         PR middle-end/60706
7251         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
7252         a 64bit widest int print double-int similar to on HWI64 hosts.
7253
7254 2014-04-08  Richard Biener  <rguenther@suse.de>
7255
7256         PR tree-optimization/60785
7257         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
7258         default defs properly.
7259
7260 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
7261
7262         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
7263         (Weffc++): Likewise.
7264
7265 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
7266
7267         * ipa-devirt.c (maybe_record_node): When node is not recorded,
7268         set completep to false rather than true.
7269
7270 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
7271
7272         PR target/60504
7273         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
7274         ARM_TARGET2_DWARF_FORMAT.
7275
7276 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
7277
7278         PR target/60609
7279         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
7280         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
7281         ADDR_DIFF_VEC.
7282
7283 2014-04-07  Richard Biener  <rguenther@suse.de>
7284
7285         PR tree-optimization/60766
7286         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
7287         (may_eliminate_iv): Convert cand_value_at result to desired type.
7288
7289 2014-04-07  Jason Merrill  <jason@redhat.com>
7290
7291         PR c++/60731
7292         * common.opt (-fno-gnu-unique): Add.
7293         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
7294
7295 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7296
7297         * haifa-sched.c: Fix outdated function reference and minor
7298         grammar errors in introductory comment.
7299
7300 2014-04-07  Richard Biener  <rguenther@suse.de>
7301
7302         PR middle-end/60750
7303         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
7304         for noreturn calls.
7305         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
7306
7307 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
7308
7309         PR debug/55794
7310         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
7311         size accounting for thunks.
7312         (pa_asm_output_mi_thunk): Use final_start_function() and
7313         final_end_function() to output function start and end directives.
7314
7315 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
7316
7317         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
7318         device specific ISA/ feature information. Remove short_sp and
7319         errata_skip ds.  Add avr_device_specific_features enum to have device
7320         specific info.
7321         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
7322         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
7323         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
7324         updated device specific info.
7325         * config/avr/avr-mcus.def: Merge device specific details to
7326         dev_attribute field.
7327         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
7328         errata_skip.
7329         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
7330         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
7331         assembler if RMW isa supported by current device.
7332         * config/avr/genmultilib.awk: Update as device info structure changed.
7333         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
7334
7335 2014-04-04  Cong Hou  <congh@google.com>
7336
7337         PR tree-optimization/60656
7338         * tree-vect-stmts.c (supportable_widening_operation):
7339         Fix a bug that elements in a vector with vect_used_by_reduction
7340         property are incorrectly reordered when the operation on it is not
7341         consistant with the one in reduction operation.
7342
7343 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
7344
7345         PR rtl-optimization/60155
7346         * gcse.c (record_set_data): New function.
7347         (single_set_gcse): New function.
7348         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
7349         (hoist_code): Likewise.
7350         (get_pressure_class_and_nregs): Likewise.
7351
7352 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
7353
7354         * explow.c (probe_stack_range): Emit a final optimization blockage.
7355
7356 2014-04-04  Anthony Green  <green@moxielogic.com>
7357
7358         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
7359         typos.
7360
7361 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
7362
7363         PR ipa/59626
7364         * lto-cgraph.c (input_overwrite_node): Check that partitioning
7365         flags are set only during streaming.
7366         * ipa.c (process_references, walk_polymorphic_call_targets,
7367         symtab_remove_unreachable_nodes): Drop bodies of always inline
7368         after early inlining.
7369         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
7370
7371 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
7372         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7373
7374         PR debug/60655
7375         * dwarf2out.c (const_ok_for_output_1): Reject expressions
7376         containing a NOT.
7377
7378 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7379
7380         PR bootstrap/60743
7381         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
7382         duration.
7383         (cortex_a53_fdivd): Likewise.
7384
7385 2014-04-04  Martin Jambor  <mjambor@suse.cz>
7386
7387         PR ipa/60640
7388         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
7389         Adjust all callers.
7390         * cgraph.c (clone_of_p): Also return true if thunks match.
7391         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
7392         cgraph_function_or_thunk_node and an obsolete comment.
7393         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
7394         file.
7395         (build_function_decl_skip_args): Likewise.
7396         (set_new_clone_decl_and_node_flags): New function.
7397         (duplicate_thunk_for_node): Likewise.
7398         (redirect_edge_duplicating_thunks): Likewise.
7399         (cgraph_clone_node): New parameter args_to_skip, pass it to
7400         redirect_edge_duplicating_thunks which is called instead of
7401         cgraph_redirect_edge_callee.
7402         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
7403         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
7404
7405 2014-04-04  Jeff Law  <law@redhat.com>
7406
7407         PR target/60657
7408         * config/arm/predicates.md (const_int_I_operand): New predicate.
7409         (const_int_M_operand): Similarly.
7410         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
7411         const_int_operand.
7412         (insv_t2, extv_reg, extzv_t2): Likewise.
7413         (load_multiple_with_writeback): Similarly for const_int_I_operand.
7414         (pop_multiple_with_writeback_and_return): Likewise.
7415         (vfp_pop_multiple_with_writeback): Likewise
7416
7417 2014-04-04  Richard Biener  <rguenther@suse.de>
7418
7419         PR ipa/60746
7420         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
7421         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
7422         non-GIMPLE_LABELs.
7423         * gimplify.h (gimple_add_tmp_var_fn): Declare.
7424         * gimplify.c (gimple_add_tmp_var_fn): New function.
7425         * gimple-expr.h (create_tmp_reg_fn): Declare.
7426         * gimple-expr.c (create_tmp_reg_fn): New function.
7427         * gimple-low.c (record_vars_into): Don't change cfun.
7428         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
7429         code generation without cfun.
7430
7431 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
7432
7433         PR bootstrap/60719
7434         * Makefile.in (install-driver): Fix shell scripting.
7435
7436 2014-04-03  Cong Hou  <congh@google.com>
7437
7438         PR tree-optimization/60505
7439         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
7440         threshold of number of iterations below which no vectorization
7441         will be done.
7442         * tree-vect-loop.c (new_loop_vec_info):
7443         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
7444         * tree-vect-loop.c (vect_analyze_loop_operations):
7445         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
7446         * tree-vect-loop.c (vect_transform_loop):
7447         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
7448         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
7449         of iterations of the loop and see if we should build the epilogue.
7450
7451 2014-04-03  Richard Biener  <rguenther@suse.de>
7452
7453         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
7454         (streamer_tree_cache_create): Adjust.
7455         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
7456         to allow optional nodes array.
7457         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
7458         (streamer_tree_cache_append): Likewise.
7459         (streamer_tree_cache_create): Create nodes array optionally
7460         as specified by parameter.
7461         * lto-streamer-out.c (create_output_block): Avoid maintaining
7462         the node array in the writer cache.
7463         (DFS_write_tree): Remove assertion.
7464         (produce_asm_for_decls): Free the out decl state hash table early.
7465         * lto-streamer-in.c (lto_data_in_create): Adjust for
7466         streamer_tree_cache_create prototype change.
7467
7468 2014-04-03  Richard Biener  <rguenther@suse.de>
7469
7470         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
7471         set TREE_CHAIN to NULL_TREE.
7472
7473 2014-04-03  Richard Biener  <rguenther@suse.de>
7474
7475         PR tree-optimization/60740
7476         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
7477         over all GIMPLE_COND operands.
7478
7479 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
7480
7481         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
7482         (Weffc++): Remove Scott's numbering, merge lists and reference
7483         Wnon-virtual-dtor.
7484
7485 2014-04-03  Nick Clifton  <nickc@redhat.com>
7486
7487         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
7488         properly.
7489
7490 2014-04-03  Martin Jambor  <mjambor@suse.cz>
7491
7492         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
7493         mention gcc_unreachable before failing.
7494         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
7495         removed symbols.
7496
7497 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
7498
7499         PR ipa/60659
7500         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
7501         inconsistent code and instead mark the context inconsistent.
7502         (possible_polymorphic_call_targets): For inconsistent contexts
7503         return empty complete list.
7504
7505 2014-04-02  Anthony Green  <green@moxielogic.com>
7506
7507         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
7508         (extendqisi2, extendhisi2): Define.
7509         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
7510         (WCHAR_TYPE): Change to unsigned int.
7511
7512 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7513
7514         PR tree-optimization/60733
7515         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
7516         insertion point for PHI candidates to be the end of the feeding
7517         block for the PHI argument.
7518
7519 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7520
7521         PR rtl-optimization/60650
7522         * lra-constraints.c (process_alt_operands): Decrease reject for
7523         earlyclobber matching.
7524
7525 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7526
7527         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
7528
7529 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7530
7531         * config/spu/spu.c (pad_bb): Do not crash when the last
7532         insn is CODE_FOR_blockage.
7533
7534 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7535
7536         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
7537         lies outside the target mode.
7538
7539 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7540
7541         PR target/60735
7542         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
7543         software floating point or no floating point registers, do not
7544         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
7545         in GPRs that occurs after we tested for GPRs that would never be
7546         true.
7547
7548         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
7549         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
7550         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
7551         specifically allow DDmode, since that does not use the SPE SIMD
7552         instructions.
7553
7554 2014-04-02  Richard Biener  <rguenther@suse.de>
7555
7556         PR middle-end/60729
7557         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
7558         MODE_INTs.  Properly use negv_optab.
7559         (expand_abs): Likewise.
7560
7561 2014-04-02  Richard Biener  <rguenther@suse.de>
7562
7563         PR bootstrap/60719
7564         * Makefile.in (install-driver): Guard extra installs with special
7565         names properly.
7566
7567 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7568
7569         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7570         Document vec_vgbbd.
7571
7572 2014-04-01  Richard Henderson  <rth@redhat.com>
7573
7574         PR target/60704
7575         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
7576         alternative enabled before register allocation.
7577
7578 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
7579
7580         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
7581         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
7582         typo.
7583         (nios2_large_got_address): Remove unneeded 'sym' parameter.
7584         (nios2_got_address): Update nios2_large_got_address call site.
7585         (nios2_delegitimize_address): New function.
7586         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
7587         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
7588         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
7589
7590 2014-04-01  Martin Husemann  <martin@duskware.de>
7591
7592         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
7593         for -mabi=32.
7594
7595 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
7596
7597         PR rtl-optimization/60604
7598         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
7599         check from register_operand.
7600         (register_operand): Redefine in terms of general_operand.
7601         (nonmemory_operand): Use register_operand for the non-constant cases.
7602
7603 2014-04-01  Richard Biener  <rguenther@suse.de>
7604
7605         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
7606
7607 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7608
7609         * doc/invoke.texi (mapp-regs): Clarify.
7610
7611 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
7612
7613         * config/i386/avx512fintrin.h (__v32hi): Define type.
7614         (__v64qi): Likewise.
7615         (_mm512_set1_epi8): Define.
7616         (_mm512_set1_epi16): Define.
7617         (_mm512_set4_epi32): Define.
7618         (_mm512_set4_epi64): Define.
7619         (_mm512_set4_pd): Define.
7620         (_mm512_set4_ps): Define.
7621         (_mm512_setr4_epi64): Define.
7622         (_mm512_setr4_epi32): Define.
7623         (_mm512_setr4_pd): Define.
7624         (_mm512_setr4_ps): Define.
7625         (_mm512_setzero_epi32): Define.
7626
7627 2014-03-31  Martin Jambor  <mjambor@suse.cz>
7628
7629         PR middle-end/60647
7630         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
7631         callsite_arguments_match_p.  Updated all callers.  Also check types of
7632         corresponding formal parameters and actual arguments.
7633         (not_all_callers_have_enough_arguments_p) Renamed to
7634         some_callers_have_mismatched_arguments_p.
7635
7636 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
7637
7638         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
7639
7640 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
7641
7642         PR target/60034
7643         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
7644         section anchor.
7645
7646 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
7647
7648         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
7649         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
7650         Split out
7651         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
7652         Use FMAMODE_NOVF512 mode iterator.
7653         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
7654         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
7655         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
7656         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
7657         Split out
7658         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
7659         Use VF_128_256 mode iterator.
7660         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
7661         Ditto.
7662
7663 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
7664
7665         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
7666         static chain if needed.
7667
7668 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7669
7670         PR target/60697
7671         * lra-constraints.c (index_part_to_reg): New.
7672         (process_address): Use it.
7673
7674 2014-03-27  Jeff Law  <law@redhat.com>
7675             Jakub Jelinek  <jakub@redhat.com>
7676
7677         PR target/60648
7678         * expr.c (do_tablejump): Use simplify_gen_binary rather than
7679         gen_rtx_{PLUS,MULT} to build up the address expression.
7680
7681         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
7682         creating non-canonical RTL.
7683
7684 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
7685
7686         PR ipa/60243
7687         * ipa-inline.c (want_inline_small_function_p): Short circuit large
7688         functions; reorganize to make cheap checks first.
7689         (inline_small_functions): Do not estimate growth when dumping;
7690         it is expensive.
7691         * ipa-inline.h (inline_summary): Add min_size.
7692         (growth_likely_positive): New function.
7693         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
7694         (set_cond_stmt_execution_predicate): Cleanup.
7695         (estimate_edge_size_and_time): Compute min_size.
7696         (estimate_calls_size_and_time): Likewise.
7697         (estimate_node_size_and_time): Likewise.
7698         (inline_update_overall_summary): Update min_size.
7699         (do_estimate_edge_time): Likewise.
7700         (do_estimate_edge_size): Update.
7701         (do_estimate_edge_hints): Update.
7702         (growth_likely_positive): New function.
7703
7704 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
7705
7706         PR target/60693
7707         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
7708         also if addr has VOIDmode.
7709
7710 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7711
7712         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
7713         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
7714         Declare extern.
7715         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
7716         instructions as well as AdvancedSIMD loads.
7717
7718 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7719
7720         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
7721         Use crypto_aese type.
7722         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
7723         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
7724         crypto_aese, crypto_aesmc.  Move to types.md.
7725         * config/arm/types.md (crypto_aes): Split into crypto_aese,
7726         crypto_aesmc.
7727         * config/arm/iterators.md (crypto_type): Likewise.
7728
7729 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
7730
7731         * cgraph.c: Include expr.h and tree-dfa.h.
7732         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
7733         remove LHS.
7734
7735 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
7736
7737         PR target/60675
7738         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
7739         regs from checking multi-reg pseudos.
7740
7741 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7742
7743         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
7744
7745 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7746
7747         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
7748         if it would clobber the stack pointer, even temporarily.
7749
7750 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7751
7752         * mode-switching.c: Make small adjustments to the top comment.
7753
7754 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
7755
7756         * config/rs6000/constraints.md (wD constraint): New constraint to
7757         match the constant integer to get the top DImode/DFmode out of a
7758         vector in a VSX register.
7759
7760         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
7761         match the constant integer to get the top DImode/DFmode out of a
7762         vector in a VSX register.
7763
7764         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
7765         for ISA 2.07.
7766
7767         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7768         vbpermq builtins.
7769
7770         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
7771         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
7772
7773         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
7774         Optimize vec_extract of 64-bit values, where the value being
7775         extracted is in the top word, where we can use scalar
7776         instructions.  Add direct move and store support.  Combine the big
7777         endian/little endian vector select load support into a single insn.
7778         (vsx_extract_<mode>_internal1): Likewise.
7779         (vsx_extract_<mode>_internal2): Likewise.
7780         (vsx_extract_<mode>_load): Likewise.
7781         (vsx_extract_<mode>_store): Likewise.
7782         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
7783         combined into vsx_extract_<mode>_load.
7784         (vsx_extract_<mode>_one_le): Likewise.
7785
7786         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
7787         define the top 64-bit vector element.
7788
7789         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
7790         constraint.
7791
7792         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7793         Document vec_vbpermq builtin.
7794
7795         PR target/60672
7796         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
7797         enable use of xxsldwi and xxpermdi builtin functions.
7798         (vec_xxpermdi): Likewise.
7799
7800         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7801         Document use of vec_xxsldwi and vec_xxpermdi builtins.
7802
7803 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
7804
7805         PR rtl-optimization/60650
7806         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
7807         first_p.  Use it.
7808         (find_spills_for): New.
7809         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
7810         Spill all pseudos on the second iteration.
7811
7812 2014-03-27  Marek Polacek  <polacek@redhat.com>
7813
7814         PR c/50347
7815         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
7816         types.
7817
7818 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7819
7820         * config/s390/s390.c (s390_can_use_return_insn): Check for
7821         call-saved FPRs on 31 bit.
7822
7823 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
7824
7825         PR middle-end/60682
7826         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
7827         if they need regimplification, just drop them instead of
7828         calling gimple_regimplify_operands on them.
7829
7830 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7831
7832         PR target/60580
7833         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
7834         (aarch64_frame_pointer_required): Adjust logic.
7835         (aarch64_can_eliminate): Adjust logic.
7836         (aarch64_override_options_after_change): Adjust logic.
7837
7838 2014-03-27  Dehao Chen  <dehao@google.com>
7839
7840         * ipa-inline.c (early_inliner): Update node's inline info.
7841
7842 2014-03-26  Dehao Chen  <dehao@google.com>
7843
7844         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
7845         compiler inserted conditional jumps for NAN float check.
7846
7847 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
7848
7849         * ubsan.h (ubsan_create_data): Change second argument's type
7850         to const location_t *.
7851         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
7852         _("<unknown>").
7853         (ubsan_create_data): Change second argument to const location_t *PLOC.
7854         Create Loc field whenever PLOC is non-NULL.
7855         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
7856         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
7857         callers.
7858
7859         PR other/59545
7860         * real.c (real_to_integer2): Change type of low to UHWI.
7861
7862 2014-03-26  Tobias Burnus  <burnus@net-b.de>
7863
7864         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
7865         (CILK_SELF_SPECS): New define.
7866         (driver_self_specs): Use it.
7867
7868 2014-03-26  Richard Biener  <rguenther@suse.de>
7869
7870         * tree-pretty-print.c (percent_K_format): Implement special
7871         case for LTO and its stripped down BLOCK tree.
7872
7873 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
7874
7875         PR sanitizer/60636
7876         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
7877
7878         * tree-vrp.c (simplify_internal_call_using_ranges): If only
7879         one range is range_int_cst_p, but not both, at least optimize
7880         addition/subtraction of 0 and multiplication by 0 or 1.
7881         * gimple-fold.c (gimple_fold_call): Fold
7882         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
7883         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
7884         INTEGER_CSTs, try to fold at least x * 0 and y - y.
7885
7886 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7887
7888         PR rtl-optimization/60452
7889         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
7890         <case REG>: Return 1 for invalid offsets from the frame pointer.
7891
7892 2014-03-26  Marek Polacek  <polacek@redhat.com>
7893
7894         PR c/37428
7895         * doc/extend.texi (C Extensions): Mention variable-length arrays in
7896         a structure/union.
7897
7898 2014-03-26  Marek Polacek  <polacek@redhat.com>
7899
7900         PR c/39525
7901         * doc/extend.texi (Designated Inits): Describe what happens to omitted
7902         field members.
7903
7904 2014-03-26  Marek Polacek  <polacek@redhat.com>
7905
7906         PR other/59545
7907         * ira-color.c (update_conflict_hard_regno_costs): Perform the
7908         multiplication in unsigned type.
7909
7910 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
7911
7912         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
7913
7914 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
7915
7916         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
7917
7918 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
7919
7920         PR ipa/60315
7921         * cif-code.def (UNREACHABLE) New code.
7922         * ipa-inline.c (inline_small_functions): Skip edges to
7923         __builtlin_unreachable.
7924         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
7925         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
7926         predicate to __bulitin_unreachable.
7927         (set_cond_stmt_execution_predicate): Fix issue when
7928         invert_tree_comparison returns ERROR_MARK.
7929         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
7930         propagate to inline clones.
7931         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
7932         to unreachable.
7933         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
7934         * cgraphclones.c (cgraph_clone_node): If call destination is already
7935         ureachable, do not redirect it back.
7936         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
7937         unreachable.
7938
7939 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
7940
7941         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
7942         Do not modify inline clones.
7943
7944 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
7945
7946         * config/i386/i386.md (general_sext_operand): New mode attr.
7947         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
7948         don't generate (sign_extend (const_int)).
7949         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
7950         operands[2].  Use We constraint instead of <i> and
7951         <general_sext_operand> predicate instead of <general_operand>.
7952         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
7953         * config/i386/constraints.md (We): New constraint.
7954         * config/i386/predicates.md (x86_64_sext_operand,
7955         sext_operand): New predicates.
7956
7957 2014-03-25  Martin Jambor  <mjambor@suse.cz>
7958
7959         PR ipa/60600
7960         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
7961         inconsistent devirtualizations to __builtin_unreachable.
7962
7963 2014-03-25  Marek Polacek  <polacek@redhat.com>
7964
7965         PR c/35449
7966         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
7967
7968 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
7969
7970         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
7971         order of elements for big-endian.
7972
7973 2014-03-25  Richard Biener  <rguenther@suse.de>
7974
7975         PR middle-end/60635
7976         * gimplify-me.c (gimple_regimplify_operands): Update the
7977         re-gimplifed stmt.
7978
7979 2014-03-25  Martin Jambor  <mjambor@suse.cz>
7980
7981         PR ipa/59176
7982         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
7983         (lto_output_varpool_node): Likewise.
7984         (input_overwrite_node): Likewise.
7985         (input_varpool_node): Likewise.
7986
7987 2014-03-25  Richard Biener  <rguenther@suse.de>
7988
7989         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
7990         (run_gcc): Likewise.
7991
7992 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
7993
7994         * combine.c (simplify_compare_const): Add MODE argument.
7995         Handle mode_width 0 as very large mode_width.
7996         (try_combine, simplify_comparison): Adjust callers.
7997
7998         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
7999         type to avoid signed integer overflow.
8000         * explow.c (plus_constant): Likewise.
8001
8002 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8003
8004         * doc/generic.texi: Correct typos.
8005
8006 2014-03-24  Tobias Burnus  <burnus@net-b.de>
8007
8008         * doc/invoke.texi (-flto): Expand section about
8009         using static libraries with LTO.
8010
8011 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8012
8013         PR rtl-optimization/60501
8014         * optabs.def (addptr3_optab): New optab.
8015         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
8016         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
8017         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
8018
8019         * lra.c (emit_add3_insn): Use the addptr pattern if available.
8020
8021         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
8022
8023 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
8024
8025         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
8026         _mm512_set1_pd.
8027
8028         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
8029         (_mm256_undefined_ps): Define.
8030         (_mm256_undefined_pd): Define.
8031         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
8032         (_mm_undefined_pd): Define.
8033         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
8034         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
8035         (_mm512_undefined_ps): Define.
8036         (_mm512_undefined_pd): Define.
8037         Use _mm*_undefined_*.
8038         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
8039
8040 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
8041
8042         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
8043         (lshr_simd): DI mode added.
8044         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
8045         (aarch64_ushr_simddi): Likewise.
8046         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
8047         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
8048         (vshrd_n_u64): Likewise.
8049
8050 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8051
8052         * Makefile.in (s-macro_list): Depend on cc1.
8053
8054 2014-03-23  Teresa Johnson  <tejohnson@google.com>
8055
8056         * ipa-utils.c (ipa_print_order): Use specified dump file.
8057
8058 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
8059
8060         PR rtl-optimization/60601
8061         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
8062
8063         * gcc.c (eval_spec_function): Initialize save_growing_value.
8064
8065 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
8066
8067         PR sanitizer/60613
8068         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
8069         code == MINUS_EXPR, never swap op0 with op1.
8070
8071         * toplev.c (init_local_tick): Avoid signed integer multiplication
8072         overflow.
8073         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
8074         shift by first operand's bitsize.
8075
8076 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
8077
8078         PR target/60610
8079         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
8080         redefine to 1 or 0.
8081         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
8082         TARGET_ISA_64BIT_P(x).
8083
8084 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8085
8086         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
8087         pattern for vector nor instead of subtract from splat(-1).
8088         (altivec_expand_vec_perm_const_le): Likewise.
8089
8090 2014-03-21  Richard Henderson  <rth@twiddle.net>
8091
8092         PR target/60598
8093         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
8094         related insns after epilogue_completed.
8095
8096 2014-03-21  Martin Jambor  <mjambor@suse.cz>
8097
8098         PR ipa/59176
8099         * cgraph.h (symtab_node): New flag body_removed.
8100         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
8101         when removing bodies.
8102         * symtab.c (dump_symtab_base): Dump body_removed flag.
8103         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
8104         had their bodies removed.
8105
8106 2014-03-21  Martin Jambor  <mjambor@suse.cz>
8107
8108         PR ipa/60419
8109         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
8110         in the border.
8111
8112 2014-03-21  Richard Biener  <rguenther@suse.de>
8113
8114         PR tree-optimization/60577
8115         * tree-core.h (struct tree_base): Document nothrow_flag use
8116         in VAR_DECL_NONALIASED.
8117         * tree.h (VAR_DECL_NONALIASED): New.
8118         (may_be_aliased): Adjust.
8119         * coverage.c (build_var): Set VAR_DECL_NONALIASED.
8120
8121 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
8122
8123         * expr.c (expand_expr_real_1): Remove outdated comment.
8124
8125 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
8126
8127         PR middle-end/60597
8128         * ira.c (adjust_cleared_regs): Call copy_rtx on
8129         *reg_equiv[REGNO (loc)].src_p before passing it to
8130         simplify_replace_fn_rtx.
8131
8132         PR target/60568
8133         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
8134         into CONST, put pic register as first operand of PLUS.  Use
8135         gen_const_mem for both 32-bit and 64-bit PIC got loads.
8136
8137 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8138
8139         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
8140
8141 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
8142
8143         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
8144         around for store forwarding issue in the FPU on the UT699.
8145         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
8146         loads and operations if -mfix-ut699 is specified.
8147         (divtf3_hq): Tweak attribute.
8148         (sqrttf2_hq): Likewise.
8149
8150 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
8151
8152         * calls.c (store_one_arg): Remove incorrect const qualification on the
8153         type of the temporary.
8154         * cfgexpand.c (expand_return): Likewise.
8155         * expr.c (expand_constructor): Likewise.
8156         (expand_expr_real_1): Likewise.
8157
8158 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8159
8160         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
8161         of parts.
8162
8163 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
8164
8165         PR target/60039
8166         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
8167
8168 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
8169
8170         * config/arm/aarch-common-protos.h
8171         (alu_cost_table): Fix spelling of "extend".
8172         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
8173
8174 2014-03-19  Richard Biener  <rguenther@suse.de>
8175
8176         PR middle-end/60553
8177         * tree-core.h (tree_type_common): Re-order pointer members
8178         to reduce recursion depth during GC walks.
8179
8180 2014-03-19  Marek Polacek  <polacek@redhat.com>
8181
8182         PR sanitizer/60569
8183         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
8184         before accessing it.
8185
8186 2014-03-19  Richard Biener  <rguenther@suse.de>
8187
8188         PR lto/59543
8189         * lto-streamer-in.c (input_function): In WPA stage do not drop
8190         debug stmts.
8191
8192 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
8193
8194         PR tree-optimization/60559
8195         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
8196         with build_zero_cst assignment.
8197
8198 2014-03-18  Kai Tietz  <ktietz@redhat.com>
8199
8200         PR rtl-optimization/56356
8201         * sdbout.c (sdbout_parms): Verify that parms'
8202         incoming argument is valid.
8203         (sdbout_reg_parms): Likewise.
8204
8205 2014-03-18  Richard Henderson  <rth@redhat.com>
8206
8207         PR target/60562
8208         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
8209         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
8210         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
8211
8212 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
8213
8214         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
8215         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
8216         Italicize plugin event names in description.  Explain that
8217         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
8218         Remind that no GCC functions should be called after PLUGIN_FINISH.
8219         Explain what pragmas with expansion are.
8220
8221 2014-03-18  Martin Liska  <mliska@suse.cz>
8222
8223         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
8224         gimple call statement is update.
8225         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
8226         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
8227
8228 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
8229
8230         PR sanitizer/60557
8231         * ubsan.c (ubsan_instrument_unreachable): Call
8232         initialize_sanitizer_builtins.
8233         (ubsan_pass): Likewise.
8234
8235         PR sanitizer/60535
8236         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
8237         varpool_finalize_decl instead of rest_of_decl_compilation.
8238
8239 2014-03-18  Richard Biener  <rguenther@suse.de>
8240
8241         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
8242         by using bitmap_and_compl instead of bitmap_and_compl_into.
8243         (df_rd_transfer_function): Likewise.
8244
8245 2014-03-18  Richard Biener  <rguenther@suse.de>
8246
8247         * doc/lto.texi (fresolution): Fix typo.
8248
8249 2014-03-18  Richard Biener  <rguenther@suse.de>
8250
8251         * doc/invoke.texi (flto): Update for changes in 4.9.
8252
8253 2014-03-18  Richard Biener  <rguenther@suse.de>
8254
8255         * doc/loop.texi: Remove section on the removed lambda framework.
8256         Update loop docs with recent changes in preserving loop structure.
8257
8258 2014-03-18  Richard Biener  <rguenther@suse.de>
8259
8260         * doc/lto.texi (-fresolution): Document.
8261
8262 2014-03-18  Richard Biener  <rguenther@suse.de>
8263
8264         * doc/contrib.texi: Adjust my name.
8265
8266 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
8267
8268         PR ipa/58721
8269         * internal-fn.c: Include diagnostic-core.h.
8270         (expand_BUILTIN_EXPECT): New function.
8271         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
8272         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
8273         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
8274         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
8275         IFN_BUILTIN_EXPECT.
8276         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
8277         Revert 3 argument __builtin_expect code.
8278         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
8279         * gimple-fold.c (gimple_fold_call): Likewise.
8280         * tree.h (fold_builtin_expect): New prototype.
8281         * builtins.c (build_builtin_expect_predicate): Add predictor
8282         argument, if non-NULL, create 3 argument __builtin_expect.
8283         (fold_builtin_expect): No longer static.  Add ARG2 argument,
8284         pass it through to build_builtin_expect_predicate.
8285         (fold_builtin_2): Adjust caller.
8286         (fold_builtin_3): Handle BUILT_IN_EXPECT.
8287         * internal-fn.def (BUILTIN_EXPECT): New.
8288
8289 2014-03-18  Tobias Burnus  <burnus@net-b.de>
8290
8291         PR ipa/58721
8292         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
8293         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
8294         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
8295
8296 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
8297
8298         PR ipa/58721
8299         * predict.c (combine_predictions_for_bb): Fix up formatting.
8300         (expr_expected_value_1, expr_expected_value): Add predictor argument,
8301         fill what it points to if non-NULL.
8302         (tree_predict_by_opcode): Adjust caller, use the predictor.
8303         * predict.def (PRED_COMPARE_AND_SWAP): Add.
8304
8305 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
8306
8307         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
8308         proper constant for the store mode.
8309
8310 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
8311
8312         * symtab.c (change_decl_assembler_name): Fix transparent alias
8313         chain construction.
8314
8315 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
8316
8317         * config/aarch64/aarch64.c: Correct the comments about the
8318         aarch64 stack layout.
8319
8320 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
8321
8322         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
8323         check for GF_OMP_FOR_KIND_FOR.
8324
8325 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
8326
8327         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
8328         ymm and zmm register names.
8329
8330 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
8331
8332         PR target/60516
8333         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
8334         note creation for the 2010-08-31 changes.
8335
8336 2014-03-17  Marek Polacek  <polacek@redhat.com>
8337
8338         PR middle-end/60534
8339         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
8340         as -fno-tree-loop-vectorize.
8341         (expand_omp_simd): Likewise.
8342
8343 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
8344
8345         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
8346         (eligible_for_call_delay): New prototype.
8347         * config/sparc/sparc.c (tls_call_delay): Rename into...
8348         (eligible_for_call_delay): ...this.  Return false if the instruction
8349         cannot be put in the delay slot of a branch.
8350         (eligible_for_restore_insn): Simplify.
8351         (eligible_for_return_delay): Return false if the instruction cannot be
8352         put in the delay slot of a branch and simplify.
8353         (eligible_for_sibcall_delay): Return false if the instruction cannot be
8354         put in the delay slot of a branch.
8355         * config/sparc/sparc.md (fix_ut699): New attribute.
8356         (tls_call_delay): Delete.
8357         (in_call_delay): Reimplement.
8358         (eligible_for_sibcall_delay): Rename into...
8359         (in_sibcall_delay): ...this.
8360         (eligible_for_return_delay): Rename into...
8361         (in_return_delay): ...this.
8362         (in_branch_delay): Reimplement.
8363         (in_uncond_branch_delay): Delete.
8364         (in_annul_branch_delay): Delete.
8365
8366 2014-03-14  Richard Henderson  <rth@redhat.com>
8367
8368         PR target/60525
8369         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
8370         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
8371         (*floathi<X87MODEF>2_i387_with_temp): Remove.
8372         (floathi splitters): Remove.
8373         (float<SWI48x>xf2): New pattern.
8374         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
8375         code that tried to handle DImode for 32-bit, but which was excluded
8376         by the pattern's condition.  Drop allocation of stack temporary.
8377         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
8378         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
8379         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
8380         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
8381         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
8382         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
8383         (*float<SWI48><MODEF>2_sse_interunit): Remove.
8384         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
8385         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
8386         (*float<SWI48x><X87MODEF>2_i387): Remove.
8387         (all float _with_temp splitters): Remove.
8388         (*float<SWI48x><MODEF>2_i387): New pattern.
8389         (*float<SWI48><MODEF>2_sse): New pattern.
8390         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
8391         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
8392
8393 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
8394             Marek Polacek  <polacek@redhat.com>
8395
8396         PR middle-end/60484
8397         * common.opt (dump_base_name_prefixed): New Variable.
8398         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
8399         if x_dump_base_name_prefixed is already set, set it at the end.
8400
8401 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
8402
8403         PR rtl-optimization/60508
8404         * lra-constraints.c (get_reload_reg): Add new parameter
8405         in_subreg_p.
8406         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
8407         Pass the new parameter values.
8408
8409 2014-03-14  Richard Biener  <rguenther@suse.de>
8410
8411         * common.opt: Revert unintented changes from r205065.
8412         * opts.c: Likewise.
8413
8414 2014-03-14  Richard Biener  <rguenther@suse.de>
8415
8416         PR middle-end/60518
8417         * cfghooks.c (split_block): Properly adjust all loops the
8418         block was a latch of.
8419
8420 2014-03-14  Martin Jambor  <mjambor@suse.cz>
8421
8422         PR lto/60461
8423         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
8424         and simplify it.
8425
8426 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
8427
8428         PR target/59396
8429         * config/avr/avr.c (avr_set_current_function): Pass function name
8430         through default_strip_name_encoding before sanity checking instead
8431         of skipping the first char of the assembler name.
8432
8433 2014-03-13  Richard Henderson  <rth@redhat.com>
8434
8435         PR debug/60438
8436         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
8437         (ix86_force_to_memory, ix86_free_from_memory): Remove.
8438         * config/i386/i386-protos.h: Likewise.
8439         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
8440         in the expander instead of a splitter.
8441         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
8442         any possibility of requiring a memory.
8443         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
8444         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
8445         (fp branch splitters): Update for ix86_split_fp_branch.
8446         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
8447         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
8448         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
8449         (*fop_<MODEF>_2_i387): Remove f/r alternative.
8450         (*fop_<MODEF>_3_i387): Likewise.
8451         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
8452         (splitters for the fop_* register patterns): Remove.
8453         (fscalexf4_i387): Rename from *fscalexf4_i387.
8454         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
8455
8456 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
8457
8458         PR tree-optimization/59779
8459         * tree-dfa.c (get_ref_base_and_extent): Use double_int
8460         type for bitsize and maxsize instead of HOST_WIDE_INT.
8461
8462 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
8463
8464         PR rtl-optimization/57320
8465         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
8466         the CFG after thread_prologue_and_epilogue_insns.
8467
8468 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
8469
8470         PR rtl-optimization/57189
8471         * lra-constraints.c (process_alt_operands): Disfavor spilling
8472         vector pseudos.
8473
8474 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
8475
8476         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
8477
8478 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
8479
8480         PR tree-optimization/59025
8481         PR middle-end/60418
8482         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
8483         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
8484
8485 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
8486
8487         PR target/60486
8488         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
8489         calls of avr_out_plus_1.
8490
8491 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
8492
8493         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
8494         BB's single pred and update the father loop's latch info later.
8495
8496 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8497
8498         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
8499         (VEC_M): Likewise.
8500         (VEC_N): Likewise.
8501         (VEC_R): Likewise.
8502         (VEC_base): Likewise.
8503         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
8504         registers, we need to swap double words in little endian mode.
8505
8506         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
8507         to be a container mode for 128-bit integer operations added in ISA
8508         2.07.  Unlike TImode and PTImode, the preferred register set is
8509         the Altivec/VMX registers for the 128-bit operations.
8510
8511         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
8512         declarations.
8513         (rs6000_split_128bit_ok_p): Likewise.
8514
8515         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
8516         macros for creating ISA 2.07 normal and overloaded builtin
8517         functions with 3 arguments.
8518         (BU_P8V_OVERLOAD_3): Likewise.
8519         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
8520         for use as overloaded functions.
8521         (VPERM_1TI_UNS): Likewise.
8522         (VSEL_1TI): Likewise.
8523         (VSEL_1TI_UNS): Likewise.
8524         (ST_INTERNAL_1ti): Likewise.
8525         (LD_INTERNAL_1ti): Likewise.
8526         (XXSEL_1TI): Likewise.
8527         (XXSEL_1TI_UNS): Likewise.
8528         (VPERM_1TI): Likewise.
8529         (VPERM_1TI_UNS): Likewise.
8530         (XXPERMDI_1TI): Likewise.
8531         (SET_1TI): Likewise.
8532         (LXVD2X_V1TI): Likewise.
8533         (STXVD2X_V1TI): Likewise.
8534         (VEC_INIT_V1TI): Likewise.
8535         (VEC_SET_V1TI): Likewise.
8536         (VEC_EXT_V1TI): Likewise.
8537         (EQV_V1TI): Likewise.
8538         (NAND_V1TI): Likewise.
8539         (ORC_V1TI): Likewise.
8540         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
8541         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
8542         overloaded builtin.
8543         (VADDUQM): Likewise.
8544         (VSUBCUQ): Likewise.
8545         (VADDEUQM): Likewise.
8546         (VADDECUQ): Likewise.
8547         (VSUBEUQM): Likewise.
8548         (VSUBECUQ): Likewise.
8549
8550         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
8551         __int128_t and __uint128_t types.
8552         (__uint128_type): Likewise.
8553         (altivec_categorize_keyword): Add support for vector __int128_t,
8554         vector __uint128_t, vector __int128, and vector unsigned __int128
8555         as a container type for TImode operations that need to be done in
8556         VSX/Altivec registers.
8557         (rs6000_macro_to_expand): Likewise.
8558         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
8559         to support 128-bit integer instructions vaddcuq, vadduqm,
8560         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
8561         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
8562
8563         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
8564         for V1TImode, and set up preferences to use VSX/Altivec registers.
8565         Setup VSX reload handlers.
8566         (rs6000_debug_reg_global): Likewise.
8567         (rs6000_init_hard_regno_mode_ok): Likewise.
8568         (rs6000_preferred_simd_mode): Likewise.
8569         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
8570         (easy_altivec_constant): Likewise.
8571         (output_vec_const_move): Likewise.
8572         (rs6000_expand_vector_set): Convert V1TImode set and extract to
8573         simple move.
8574         (rs6000_expand_vector_extract): Likewise.
8575         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
8576         addressing.
8577         (rs6000_const_vec): Add support for V1TImode.
8578         (rs6000_emit_le_vsx_load): Swap double words when loading or
8579         storing TImode/V1TImode.
8580         (rs6000_emit_le_vsx_store): Likewise.
8581         (rs6000_emit_le_vsx_move): Likewise.
8582         (rs6000_emit_move): Add support for V1TImode.
8583         (altivec_expand_ld_builtin): Likewise.
8584         (altivec_expand_st_builtin): Likewise.
8585         (altivec_expand_vec_init_builtin): Likewise.
8586         (altivec_expand_builtin): Likewise.
8587         (rs6000_init_builtins): Add support for V1TImode type.  Add
8588         support for ISA 2.07 128-bit integer builtins.  Define type names
8589         for the VSX/Altivec vector types.
8590         (altivec_init_builtins): Add support for overloaded vector
8591         functions with V1TImode type.
8592         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
8593         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
8594         external function.
8595         (rs6000_split_128bit_ok_p): Likewise.
8596         (rs6000_handle_altivec_attribute): Create V1TImode from vector
8597         __int128_t and vector __uint128_t.
8598
8599         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
8600         and mode attributes.
8601         (VSX_M): Likewise.
8602         (VSX_M2): Likewise.
8603         (VSm): Likewise.
8604         (VSs): Likewise.
8605         (VSr): Likewise.
8606         (VSv): Likewise.
8607         (VS_scalar): Likewise.
8608         (VS_double): Likewise.
8609         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
8610
8611         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
8612         we support the ISA 2.07 128-bit integer arithmetic instructions.
8613         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
8614         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
8615         and TImode types for use with the builtin functions.
8616         (V1TI_type_node): Likewise.
8617         (unsigned_V1TI_type_node): Likewise.
8618         (intTI_type_internal_node): Likewise.
8619         (uintTI_type_internal_node): Likewise.
8620
8621         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
8622         128-bit builtin functions.
8623         (UNSPEC_VADDEUQM): Likewise.
8624         (UNSPEC_VADDECUQ): Likewise.
8625         (UNSPEC_VSUBCUQ): Likewise.
8626         (UNSPEC_VSUBEUQM): Likewise.
8627         (UNSPEC_VSUBECUQ): Likewise.
8628         (VM): Add V1TImode to vector mode iterators.
8629         (VM2): Likewise.
8630         (VI_unit): Likewise.
8631         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
8632         (altivec_vaddcuq): Likewise.
8633         (altivec_vsubuqm): Likewise.
8634         (altivec_vsubcuq): Likewise.
8635         (altivec_vaddeuqm): Likewise.
8636         (altivec_vaddecuq): Likewise.
8637         (altivec_vsubeuqm): Likewise.
8638         (altivec_vsubecuq): Likewise.
8639
8640         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
8641         mode iterators.
8642         (BOOL_128): Likewise.
8643         (BOOL_REGS_OUTPUT): Likewise.
8644         (BOOL_REGS_OP1): Likewise.
8645         (BOOL_REGS_OP2): Likewise.
8646         (BOOL_REGS_UNARY): Likewise.
8647         (BOOL_REGS_AND_CR0): Likewise.
8648
8649         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
8650         128-bit integer builtin support.
8651         (vec_vadduqm): Likewise.
8652         (vec_vaddecuq): Likewise.
8653         (vec_vaddeuqm): Likewise.
8654         (vec_vsubecuq): Likewise.
8655         (vec_vsubeuqm): Likewise.
8656         (vec_vsubcuq): Likewise.
8657         (vec_vsubuqm): Likewise.
8658
8659         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
8660         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
8661         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
8662         128-bit integer add/subtract to ISA 2.07.
8663
8664 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
8665
8666         * config/arc/arc.c (arc_predicate_delay_insns):
8667         Fix third argument passed to conditionalize_nonjump.
8668
8669 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
8670
8671         * config/aarch64/aarch64-builtins.c
8672         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
8673         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
8674         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
8675         instead of __builtin_lfloor.
8676         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
8677
8678 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
8679
8680         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
8681         (tree_ssa_ifcombine_bb_1): New function.
8682         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
8683         is an empty forwarder block to then_bb or vice versa and then_bb
8684         and else_bb are effectively swapped.
8685
8686 2014-03-12  Christian Bruel  <christian.bruel@st.com>
8687
8688         PR target/60264
8689         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
8690         REG_CFA_DEF_CFA note.
8691         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
8692         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
8693
8694 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8695
8696         PR tree-optimization/60454
8697         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
8698
8699 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8700
8701         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
8702         Do not define target_cpu_default2 to generic.
8703         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
8704         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
8705         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
8706
8707 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
8708             Marc Glisse  <marc.glisse@inria.fr>
8709
8710         PR tree-optimization/60502
8711         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
8712         instead of build_low_bits_mask.
8713
8714 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
8715
8716         PR middle-end/60482
8717         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
8718         if there are multiple uses, but op doesn't live on E edge.
8719         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
8720         clobber stmts before __builtin_unreachable.
8721
8722 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
8723
8724         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
8725         hard_frame_pointer_rtx.
8726         * cse.c (cse_insn): Remove volatile check.
8727         * cselib.c (cselib_process_insn): Likewise.
8728         * dse.c (scan_insn): Likewise.
8729
8730 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
8731
8732         * config/arc/arc.c (conditionalize_nonjump): New function,
8733         broken out of ...
8734         (arc_ifcvt): ... this.
8735         (arc_predicate_delay_insns): Use it.
8736
8737 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
8738
8739         * config/arc/predicates.md (extend_operand): During/after reload,
8740         allow const_int_operand.
8741         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
8742         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
8743         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
8744         to "i".
8745         (umulsi3_highpart_i): Likewise.
8746
8747 2014-03-11  Richard Biener  <rguenther@suse.de>
8748
8749         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
8750         Add asserts to guard possible wrong-code bugs.
8751
8752 2014-03-11  Richard Biener  <rguenther@suse.de>
8753
8754         PR tree-optimization/60429
8755         PR tree-optimization/60485
8756         * tree-ssa-structalias.c (set_union_with_increment): Properly
8757         take into account all fields that overlap the shifted vars.
8758         (do_sd_constraint): Likewise.
8759         (do_ds_constraint): Likewise.
8760         (get_constraint_for_ptr_offset): Likewise.
8761
8762 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
8763
8764         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
8765         (nios2_compute_frame_layout):
8766         Add calculation of cfun->machine->fp_save_offset.
8767         (nios2_expand_prologue): Correct setting of frame pointer register
8768         in prologue.
8769         (nios2_expand_epilogue): Update recovery of stack pointer from
8770         frame pointer accordingly.
8771         (nios2_initial_elimination_offset): Update calculation of offset
8772         for eliminating to HARD_FRAME_POINTER_REGNUM.
8773
8774 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
8775
8776         PR ipa/60457
8777         * ipa.c (symtab_remove_unreachable_nodes): Don't call
8778         cgraph_get_create_node on VAR_DECLs.
8779
8780 2014-03-10  Richard Biener  <rguenther@suse.de>
8781
8782         PR middle-end/60474
8783         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
8784
8785 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
8786
8787         * config/vms/vms.opt (vms_float_format): New variable.
8788
8789 2014-03-08  Tobias Burnus  <burnus@net-b.de>
8790
8791         * doc/invoke.texi (-fcilkplus): Update implementation status.
8792
8793 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
8794             Richard Biener  <rguenther@suse.de>
8795
8796         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
8797         consistently accross all TUs.
8798         (run_gcc): Enable -fshort-double automatically at link at link-time
8799         and disallow override.
8800
8801 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
8802
8803         PR target/58271
8804         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
8805         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
8806         if they can't be used.
8807
8808 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8809
8810         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
8811         for Solaris 11/x86 ld.
8812         * configure: Regenerate.
8813
8814 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8815
8816         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
8817         (LIB_TLS_SPEC): Save as ld_tls_libs.
8818         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
8819         (HAVE_AS_IX86_TLSLDM): New test.
8820         * configure, config.in: Regenerate.
8821         * config/i386/i386.c (legitimize_tls_address): Fall back to
8822         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
8823         cannot support TLS_MODEL_LOCAL_DYNAMIC.
8824         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
8825         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
8826
8827 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
8828
8829         * common.opt (fira-loop-pressure): Mark as optimization.
8830
8831 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
8832
8833         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
8834         an OpenMP mappable type.
8835
8836 2014-03-06  Matthias Klose  <doko@ubuntu.com>
8837
8838         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
8839         MULTILIB_OSDIRNAMES is not defined.
8840
8841 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
8842             Meador Inge  <meadori@codesourcery.com>
8843
8844         PR target/58595
8845         * config/arm/arm.c (arm_tls_symbol_p): Remove.
8846         (arm_legitimize_address): Call legitimize_tls_address for any
8847         arm_tls_referenced_p expression, handle constant addend.  Call it
8848         before testing for !TARGET_ARM.
8849         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
8850
8851 2014-03-06  Richard Biener  <rguenther@suse.de>
8852
8853         PR middle-end/60445
8854         PR lto/60424
8855         PR lto/60427
8856         Revert
8857         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
8858
8859         * tree-streamer.c (record_common_node): Assert we don't record
8860         nodes with type double.
8861         (preload_common_node): Skip type double, complex double and double
8862         pointer since it is now frontend dependent due to fshort-double option.
8863
8864 2014-03-06  Richard Biener  <rguenther@suse.de>
8865
8866         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
8867         or -fno-lto is specified and the linker has full plugin support.
8868         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
8869         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
8870         * lto-wrapper.c (merge_and_complain): Merge compile-time
8871         optimization levels.
8872         (run_gcc): And pass it through to the link options.
8873
8874 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
8875
8876         PR debug/60381
8877         Revert:
8878         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
8879         PR debug/59992
8880         * cselib.c (remove_useless_values): Skip to avoid quadratic
8881         behavior if the condition moved from...
8882         (cselib_process_insn): ... here holds.
8883
8884 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
8885
8886         PR plugins/59335
8887         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
8888         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
8889
8890         PR plugins/59335
8891         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
8892         (TM_H): Add x86-tune.def.
8893
8894 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8895
8896         * config/aarch64/aarch64.c (generic_tunings):
8897         Use cortexa57_extra_costs.
8898
8899 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
8900
8901         PR lto/60404
8902         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
8903         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
8904         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
8905         cost for in_lto_p.
8906
8907 2014-03-04  Heiher  <r@hev.cc>
8908
8909         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
8910         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
8911
8912 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
8913
8914         * config/i386/predicates.md (const2356_operand): Change to ...
8915         (const2367_operand): ... this.
8916         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
8917         const2367_operand.
8918         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8919         (*avx512pf_scatterpf<mode>sf): Ditto.
8920         (avx512pf_scatterpf<mode>df): Ditto.
8921         (*avx512pf_scatterpf<mode>df_mask): Ditto.
8922         (*avx512pf_scatterpf<mode>df): Ditto.
8923         * config/i386/i386.c (ix86_expand_builtin): Update
8924         incorrect hint operand error message.
8925
8926 2014-03-04  Richard Biener  <rguenther@suse.de>
8927
8928         * lto-section-in.c (lto_get_section_data): Fix const cast.
8929
8930 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
8931
8932         * tree-streamer.c (record_common_node): Assert we don't record
8933         nodes with type double.
8934         (preload_common_node): Skip type double, complex double and double
8935         pointer since it is now frontend dependent due to fshort-double option.
8936
8937 2014-03-04  Richard Biener  <rguenther@suse.de>
8938
8939         PR lto/60405
8940         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
8941         (lto_input_toplevel_asms): Likewise.
8942         * lto-section-in.c (lto_get_section_data): Instead do it here
8943         for every section.
8944
8945 2014-03-04  Richard Biener  <rguenther@suse.de>
8946
8947         PR tree-optimization/60382
8948         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
8949         dead PHIs a reduction.
8950
8951 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
8952
8953         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
8954         hint value.
8955         (_mm_prefetch): Move out of GCC target("sse") pragma.
8956         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
8957         GCC target("prfchw") pragma.
8958         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
8959         for locality <= 2.
8960         * config/i386/i386.c (ix86_option_override_internal): Enable
8961         -mprfchw with -mprefetchwt1.
8962
8963 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
8964
8965         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
8966         Mark as varying.
8967
8968 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
8969
8970         * opts.h (CL_PCH_IGNORE): Define.
8971         * targhooks.c (option_affects_pch_p):
8972         Return false for options that have CL_PCH_IGNORE set.
8973         * opt-functions.awk: Process PchIgnore.
8974         * doc/options.texi: Document PchIgnore.
8975
8976         * config/arc/arc.opt (misize): Add PchIgnore property.
8977
8978 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8979
8980         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
8981         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
8982         constraint on constants to permit them being loaded into
8983         GENERAL_REGS or BASE_REGS.
8984
8985 2014-03-03  Nick Clifton  <nickc@redhat.com>
8986
8987         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
8988         anti-cacnonical alternatives.
8989         (negandhi3_real): New pattern.
8990         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
8991
8992 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8993
8994         * config/avr/avr-mcus.def: Remove atxmega16x1.
8995         * config/avr/avr-tables.opt: Regenerate.
8996         * config/avr/t-multilib: Regenerate.
8997         * doc/avr-mmcu.texi: Regenerate.
8998
8999 2014-03-03  Tobias Grosser  <tobias@grosser.es>
9000             Mircea Namolaru  <mircea.namolaru@inria.fr>
9001
9002         PR tree-optimization/58028
9003         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
9004         scalar dimensions.
9005
9006 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9007
9008         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
9009         not handled by recognizers.
9010
9011 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
9012
9013         PR middle-end/60175
9014         * function.c (expand_function_end): Don't emit
9015         clobber_return_register sequence if clobber_after is a BARRIER.
9016         * cfgexpand.c (construct_exit_block): Append instructions before
9017         return_label to prev_bb.
9018
9019 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9020
9021         * config/rs6000/constraints.md: Document reserved use of "wc".
9022
9023 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
9024
9025         PR ipa/60150
9026         * ipa.c (function_and_variable_visibility): When dissolving comdat
9027         group, also set all symbols to local.
9028
9029 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
9030
9031         PR ipa/60306
9032
9033         Revert:
9034         2013-12-14  Jan Hubicka  <jh@suse.cz>
9035         PR middle-end/58477
9036         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
9037
9038 2014-03-02  Jon Beniston  <jon@beniston.com>
9039
9040         PR bootstrap/48230
9041         PR bootstrap/50927
9042         PR bootstrap/52466
9043         PR target/46898
9044         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
9045           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
9046         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
9047         (simple_return, *simple_return): New patterns
9048         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
9049         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
9050
9051 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
9052
9053         * dwarf2out.c (gen_subprogram_die): Tidy.
9054
9055 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
9056
9057         PR target/60071
9058         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
9059         (*mov_t_msb_neg_negc): ... this new insn.
9060
9061 2014-02-28  Jason Merrill  <jason@redhat.com>
9062
9063         PR c++/58678
9064         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
9065         function.
9066
9067 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
9068
9069         PR c++/60314
9070         * dwarf2out.c (decltype_auto_die): New static.
9071         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
9072         (gen_type_die_with_usage): Handle 'decltype(auto)'.
9073         (is_cxx_auto): Likewise.
9074
9075 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
9076
9077         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
9078         we are not using general regs only.
9079
9080 2014-02-28  Richard Biener  <rguenther@suse.de>
9081
9082         PR target/60280
9083         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
9084         previous fix and only allow to remove trivial pre-headers
9085         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
9086         (remove_forwarder_block): Properly update the latch of a loop.
9087
9088 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
9089
9090         PR debug/59992
9091         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
9092         (cselib_preserved_hash_table): New.
9093         (preserve_constants_and_equivs): Move preserved vals to it.
9094         (cselib_find_slot): Look it up first.
9095         (cselib_init): Initialize it.
9096         (cselib_finish): Release it.
9097         (dump_cselib_table): Dump it.
9098
9099 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
9100
9101         PR debug/59992
9102         * cselib.c (remove_useless_values): Skip to avoid quadratic
9103         behavior if the condition moved from...
9104         (cselib_process_insn): ... here holds.
9105
9106 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
9107
9108         PR debug/57232
9109         * var-tracking.c (vt_initialize): Apply the same condition to
9110         preserve the CFA base value.
9111
9112 2014-02-28  Joey Ye  <joey.ye@arm.com>
9113
9114         PR target/PR60169
9115         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
9116         if reload in progress or completed.
9117
9118 2014-02-28  Tobias Burnus  <burnus@net-b.de>
9119
9120         PR middle-end/60147
9121         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
9122         NAMELIST_DECL.
9123
9124 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9125
9126         * doc/tm.texi.in (Condition Code Status): Update documention for
9127         relative locations of cc0-setter and cc0-user.
9128
9129 2014-02-27  Jeff Law  <law@redhat.com>
9130
9131         PR rtl-optimization/52714
9132         * combine.c (try_combine): When splitting an unrecognized PARALLEL
9133         into two independent simple sets, if I3 is a jump, ensure the
9134         pattern we place into I3 is a (set (pc) ...).
9135
9136 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
9137             Jeff Law  <law@redhat.com>
9138
9139         PR rtl-optimization/49847
9140         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
9141         are in different blocks.
9142         * doc/tm.texi (Condition Code Status): Update documention for
9143         relative locations of cc0-setter and cc0-user.
9144
9145 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
9146
9147         PR target/59222
9148         * lra.c (lra_emit_add): Check SUBREG too.
9149
9150 2014-02-27  Andreas Schwab  <schwab@suse.de>
9151
9152         * config/m68k/m68k.c (m68k_option_override): Disable
9153         -flive-range-shrinkage for classic m68k.
9154         (m68k_override_options_after_change): Likewise.
9155
9156 2014-02-27  Marek Polacek  <polacek@redhat.com>
9157
9158         PR middle-end/59223
9159         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
9160         -Wmaybe-uninitialized.
9161
9162 2014-02-27  Alan Modra  <amodra@gmail.com>
9163
9164         PR target/57936
9165         * reload1.c (emit_input_reload_insns): When reload_override_in,
9166         set old to rl->in_reg when rl->in_reg is a subreg.
9167
9168 2014-02-26  Richard Biener  <rguenther@suse.de>
9169
9170         PR bootstrap/60343
9171         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
9172
9173 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
9174
9175         * common/config/i386/predicates.md (const1256_operand): Remove.
9176         (const2356_operand): New.
9177         (const_1_to_2_operand): Remove.
9178         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
9179         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
9180         (*avx512pf_gatherpf<mode>sf): Ditto.
9181         (avx512pf_gatherpf<mode>df): Ditto.
9182         (*avx512pf_gatherpf<mode>df_mask): Ditto.
9183         (*avx512pf_gatherpf<mode>df): Ditto.
9184         (avx512pf_scatterpf<mode>sf): Ditto.
9185         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
9186         (*avx512pf_scatterpf<mode>sf): Ditto.
9187         (avx512pf_scatterpf<mode>df): Ditto.
9188         (*avx512pf_scatterpf<mode>df_mask): Ditto.
9189         (*avx512pf_scatterpf<mode>df): Ditto.
9190         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
9191
9192 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
9193
9194         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
9195         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
9196         (_mm512_mask_testn_epi64_mask): Move to ...
9197         * config/i386/avx512cdintrin.h: Here.
9198         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
9199         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
9200         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
9201         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
9202         TARGET_AVX512F from TARGET_AVX512CD.
9203
9204 2014-02-26  Richard Biener  <rguenther@suse.de>
9205
9206         PR ipa/60327
9207         * ipa.c (walk_polymorphic_call_targets): Properly guard
9208         call to inline_update_overall_summary.
9209
9210 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
9211
9212         PR target/60280
9213         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
9214         and latches only if requested.  Fix latch if it is removed.
9215         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
9216         LOOPS_HAVE_PREHEADERS.
9217
9218 2014-02-25  Andrew Pinski  <apinski@cavium.com>
9219
9220         * builtins.c (expand_builtin_thread_pointer): Create a new target
9221         when the target is NULL.
9222
9223 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
9224
9225         PR rtl-optimization/60317
9226         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
9227         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
9228         * lra-assigns.c: Include params.h.
9229         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
9230         other reload pseudos considerations.
9231
9232 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9233
9234         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
9235         to use canonical form for nor<mode>3.
9236
9237 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9238
9239         PR target/55426
9240         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
9241         conversions.
9242
9243 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
9244
9245         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
9246         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
9247         (ix86_handle_option): Handle OPT_mprefetchwt1.
9248         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
9249         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
9250         PREFETCHWT1 CPUID.
9251         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9252         OPTION_MASK_ISA_PREFETCHWT1.
9253         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
9254         (PTA_PREFETCHWT1): New.
9255         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
9256         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
9257         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
9258         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
9259         (*prefetch_avx512pf_<mode>_: Change into ...
9260         (*prefetch_prefetchwt1_<mode>: This.
9261         * config/i386/i386.opt (mprefetchwt1): New.
9262         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
9263         (_mm_prefetch): Handle intent to write.
9264         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
9265
9266 2014-02-25  Richard Biener  <rguenther@suse.de>
9267
9268         PR middle-end/60291
9269         * emit-rtl.c (mem_attrs_htab): Remove.
9270         (mem_attrs_htab_hash): Likewise.
9271         (mem_attrs_htab_eq): Likewise.
9272         (set_mem_attrs): Always allocate new mem-attrs when something changed.
9273         (init_emit_once): Do not allocate mem_attrs_htab.
9274
9275 2014-02-25  Richard Biener  <rguenther@suse.de>
9276
9277         PR lto/60319
9278         * lto-opts.c (lto_write_options): Output non-explicit conservative
9279         -fwrapv, -fno-trapv and -fno-strict-overflow.
9280         * lto-wrapper.c (merge_and_complain): Handle merging those options.
9281         (run_gcc): And pass them through.
9282
9283 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
9284
9285         * sel-sched.c (calculate_new_fences): New parameter ptime.
9286         Calculate it as a maximum over all fence cycles.
9287         (sel_sched_region_2): Adjust the call to calculate_new_fences.
9288         Print the final schedule timing when sched_verbose.
9289
9290 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
9291
9292         PR rtl-optimization/60292
9293         * sel-sched.c (fill_vec_av_set): Do not reset target availability
9294         bit fot the fence instruction.
9295
9296 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
9297
9298         * calls.h: Fix typo in comment.
9299
9300 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
9301
9302         * config/pa/pa.c (pa_output_move_double): Don't valididate when
9303         adjusting offsetable addresses.
9304
9305 2014-02-24  Guozhi Wei  <carrot@google.com>
9306
9307         * sparseset.h (sparseset_pop): Fix the wrong index.
9308
9309 2014-02-24  Walter Lee  <walt@tilera.com>
9310
9311         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
9312         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
9313         triplet.
9314         * common/config/tilegx/tilegx-common.c
9315         (TARGET_DEFAULT_TARGET_FLAGS): Define.
9316         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
9317         (LINK_SPEC): Ditto.
9318         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
9319         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
9320         (tilegx_gimplify_va_arg_expr): Handle big endian.
9321         (tilegx_expand_unaligned_load): Ditto.
9322         (tilegx_expand_unaligned_store): Ditto.
9323         (TARGET_RETURN_IN_MSB): New.
9324         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
9325         (TARGET_ENDIAN_DEFAULT): New.
9326         (TARGET_BIG_ENDIAN): Handle big endian.
9327         (BYTES_BIG_ENDIAN): Ditto.
9328         (WORDS_BIG_ENDIAN): Ditto.
9329         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
9330         (ENDIAN_SPEC): New.
9331         (EXTRA_SPECS): New.
9332         * config/tilegx/tilegx.md (extv): Handle big endian.
9333         (extzv): Ditto.
9334         (insn_st<n>): Ditto.
9335         (insn_st<n>_add<bitsuffix>): Ditto.
9336         (insn_stnt<n>): Ditto.
9337         (insn_stnt<n>_add<bitsuffix>):Ditto.
9338         (vec_interleave_highv8qi): Handle big endian.
9339         (vec_interleave_highv8qi_be): New.
9340         (vec_interleave_highv8qi_le): New.
9341         (insn_v1int_h): Handle big endian.
9342         (vec_interleave_lowv8qi): Handle big endian.
9343         (vec_interleave_lowv8qi_be): New.
9344         (vec_interleave_lowv8qi_le): New.
9345         (insn_v1int_l): Handle big endian.
9346         (vec_interleave_highv4hi): Handle big endian.
9347         (vec_interleave_highv4hi_be): New.
9348         (vec_interleave_highv4hi_le): New.
9349         (insn_v2int_h): Handle big endian.
9350         (vec_interleave_lowv4hi): Handle big endian.
9351         (vec_interleave_lowv4hi_be): New.
9352         (vec_interleave_lowv4hi_le): New.
9353         (insn_v2int_l): Handle big endian.
9354         (vec_interleave_highv2si): Handle big endian.
9355         (vec_interleave_highv2si_be): New.
9356         (vec_interleave_highv2si_le): New.
9357         (insn_v4int_h): Handle big endian.
9358         (vec_interleave_lowv2si): Handle big endian.
9359         (vec_interleave_lowv2si_be): New.
9360         (vec_interleave_lowv2si_le): New.
9361         (insn_v4int_l): Handle big endian.
9362         * config/tilegx/tilegx.opt (mbig-endian): New option.
9363         (mlittle-endian): New option.
9364         * doc/install.texi: Document tilegxbe-linux.
9365         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
9366
9367 2014-02-24  Martin Jambor  <mjambor@suse.cz>
9368
9369         PR ipa/60266
9370         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
9371         there are no parameter descriptors.
9372
9373 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
9374
9375         PR rtl-optimization/60268
9376         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
9377         initialization to ...
9378         (sched_rgn_init): ... here.
9379         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
9380
9381 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
9382
9383         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
9384         names.
9385
9386 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
9387
9388         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
9389         definition.
9390
9391 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
9392
9393         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
9394         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
9395
9396 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
9397
9398         * config/microblaze/predicates.md: Add cmp_op predicate.
9399         * config/microblaze/microblaze.md: Add branch_compare instruction
9400         which uses cmp_op predicate and emits cmp insn before branch.
9401         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
9402         to microblaze_expand_conditional_branch and consolidate logic.
9403         (microblaze_expand_conditional_branch): emit branch_compare
9404         insn instead of handling cmp op separate from branch insn.
9405
9406 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9407
9408         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
9409         to permit subregs.
9410
9411 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9412
9413         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
9414         define_insn with define_expand and new define_insn
9415         *altivec_lve<VI_char>x_internal.
9416         (altivec_stve<VI_char>x): Replace define_insn with define_expand
9417         and new define_insn *altivec_stve<VI_char>x_internal.
9418         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
9419         prototype.
9420         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
9421         lve*x built-ins.
9422         (altivec_expand_stvex_be): New function.
9423
9424 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
9425
9426         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
9427         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
9428         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
9429         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
9430
9431 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
9432
9433         PR target/60298
9434         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
9435         instead of emit_move_insn.
9436
9437 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9438
9439         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
9440         vspltw with vsldoi.
9441         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
9442         gen_altivec_vsumsws.
9443
9444 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9445
9446         * config/rs6000/altivec.md (altivec_lvxl): Rename as
9447         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
9448         (altivec_lvxl_<mode>): New define_expand incorporating
9449         -maltivec=be semantics where needed.
9450         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
9451         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
9452         semantics where needed.
9453         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
9454         (altivec_stvx_<mode>): New define_expand incorporating
9455         -maltivec=be semantics where needed.
9456         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
9457         VM2 iterator instead of V4SI.
9458         (altivec_stvxl_<mode>): New define_expand incorporating
9459         -maltivec=be semantics where needed.
9460         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
9461         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
9462         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
9463         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
9464         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
9465         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
9466         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
9467         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
9468         ALTIVEC_BUILTIN_STVXL.
9469         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
9470         (altivec_expand_stvx_be): Likewise.
9471         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
9472         (altivec_expand_lvx_be): Likewise.
9473         (altivec_expand_stvx_be): Likewise.
9474         (altivec_expand_builtin): Add cases for
9475         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
9476         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
9477         (altivec_init_builtins): Add definitions for
9478         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
9479         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
9480
9481 2014-02-21  Catherine Moore  <clm@codesourcery.com>
9482
9483         * doc/invoke.texi (mvirt, mno-virt): Document.
9484         * config/mips/mips.opt (mvirt): New option.
9485         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
9486
9487 2014-02-21  Richard Biener  <rguenther@suse.de>
9488
9489         PR tree-optimization/60276
9490         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
9491         (STMT_VINFO_MIN_NEG_DIST): New macro.
9492         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
9493         STMT_VINFO_MIN_NEG_DIST.
9494         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
9495         made for negative dependence distances still hold.
9496
9497 2014-02-21  Richard Biener  <rguenther@suse.de>
9498
9499         PR middle-end/60291
9500         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
9501         DECL_INITIAL for globals not in the current function context.
9502
9503 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
9504
9505         PR tree-optimization/56490
9506         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
9507         * tree-ssa-uninit.c: Include params.h.
9508         (compute_control_dep_chain): Add num_calls argument, return false
9509         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
9510         num_calls to recursive call.
9511         (find_predicates): Change dep_chain into normal array,
9512         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
9513         variable and adjust compute_control_dep_chain caller.
9514         (find_def_preds): Likewise.
9515
9516 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
9517
9518         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
9519         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
9520
9521 2014-02-21  Nick Clifton  <nickc@redhat.com>
9522
9523         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
9524         (pushhi1): Likewise.
9525         (popqi1): Add mode to pre_dec.
9526         (pophi1): Likewise.
9527
9528 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
9529
9530         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
9531         mode for mask of V8SFmode permutation.
9532
9533 2014-02-20  Richard Henderson  <rth@redhat.com>
9534
9535         PR c++/60272
9536         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
9537         a new pseudo for OLDVAL.
9538
9539 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
9540
9541         PR target/57896
9542         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
9543         gen_reg_rtx if d->testing_p.
9544         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
9545         if d->testing_p and we will certainly return true.
9546         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
9547         if d->testing_p.
9548
9549 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
9550
9551         * emit-rtl.c (gen_reg_rtx): Assert that
9552         crtl->emit.regno_pointer_align_length is non-zero.
9553
9554 2014-02-20  Richard Henderson  <rth@redhat.com>
9555
9556         PR c++/60272
9557         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
9558         on failure the store back into EXPECT.
9559
9560 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
9561             Sandra Loosemore  <sandra@codesourcery.com>
9562
9563         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
9564         * config/nios2/nios2.c (nios2_function_profiler): Add
9565         -fPIC (flag_pic == 2) support.
9566         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
9567         (nios2_large_offset_p): New function.
9568         (nios2_unspec_reloc_p): Move up position, update to use
9569         nios2_large_offset_p.
9570         (nios2_unspec_address): Remove function.
9571         (nios2_unspec_offset): New function.
9572         (nios2_large_got_address): New function.
9573         (nios2_got_address): Add large offset support.
9574         (nios2_legitimize_tls_address): Update usage of removed and new
9575         functions.
9576         (nios2_symbol_binds_local_p): New function.
9577         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
9578         (nios2_legitimize_address): Update to use nios2_large_offset_p.
9579         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
9580         (nios2_print_operand): Merge H/L processing, add hiadj/lo
9581         processing for (const (unspec ...)).
9582         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
9583
9584 2014-02-20  Richard Biener  <rguenther@suse.de>
9585
9586         * tree-cfg.c (replace_uses_by): Mark altered BBs before
9587         doing the substitution.
9588         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
9589
9590 2014-02-20  Martin Jambor  <mjambor@suse.cz>
9591
9592         PR ipa/55260
9593         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
9594         info when checking whether lattices are bottom.
9595
9596 2014-02-20  Richard Biener  <rguenther@suse.de>
9597
9598         PR middle-end/60221
9599         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
9600         regions at -O0.
9601
9602 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
9603
9604         PR ipa/58555
9605         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
9606         parameter specifying the scaling.
9607         (inline_call): Update.
9608         (want_inline_recursively): Guard division by zero.
9609         (recursive_inlining): Update.
9610         * ipa-inline.h (clone_inlined_nodes): Update.
9611
9612 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
9613
9614         PR target/60204
9615         * config/i386/i386.c (classify_argument): Pass structures of size
9616         64 bytes or less in register.
9617
9618 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
9619             Kirill Yukhin  <kirill.yukhin@intel.com>
9620
9621         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
9622         (_mm_rcp28_round_ss): Ditto.
9623         (_mm_rsqrt28_round_sd): Ditto.
9624         (_mm_rsqrt28_round_ss): Ditto.
9625         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
9626         (_mm_rcp14_round_ss): Ditto.
9627         (_mm_rsqrt14_round_sd): Ditto.
9628         (_mm_rsqrt14_round_ss): Ditto.
9629         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
9630         the first input operand, get rid of match_dup.
9631         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
9632         attribute to sse.
9633         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
9634         Ditto.
9635         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
9636         operand as the first input operand, set type attribute.
9637         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
9638         Set type attribute.
9639         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
9640         operand as the first input operand, set type attribute.
9641
9642 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9643
9644         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
9645         bit of zero.
9646
9647 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9648
9649         PR target/60207
9650         * config/i386/i386.c (construct_container): Remove TFmode check
9651         for X86_64_INTEGER_CLASS.
9652
9653 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
9654
9655         PR target/59794
9656         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
9657         only when -Wpsabi is enabled.
9658
9659 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
9660
9661          PR target/59799
9662         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
9663         passing arrays in registers are the same as for structs, so remove the
9664         special case for them.
9665
9666 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
9667
9668         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
9669         destination type, extract only the valid bits if the source type is not
9670         integral and has a different mode.
9671
9672 2014-02-19  Richard Biener  <rguenther@suse.de>
9673
9674         PR ipa/60243
9675         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
9676         for all calls.
9677
9678 2014-02-19  Richard Biener  <rguenther@suse.de>
9679
9680         PR ipa/60243
9681         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
9682         (ipa_modify_call_arguments): Emit an argument load explicitely and
9683         preserve virtual SSA form there and for the replacement call.
9684         Do not update SSA form nor free dominance info.
9685
9686 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
9687
9688         * ipa.c (function_and_variable_visibility): Also clear WEAK
9689         flag when disolving COMDAT_GROUP.
9690
9691 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
9692
9693         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
9694         * ipa-prop.c (ipa_set_jf_known_type): Return early when
9695         not devirtualizing.
9696         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
9697         do more sanity checks.
9698         (detect_type_change): Return true when giving up early.
9699         (compute_complex_assign_jump_func): Fix type parameter of
9700         ipa_set_ancestor_jf.
9701         (compute_complex_ancestor_jump_func): Likewise.
9702         (update_jump_functions_after_inlining): Fix updating of
9703         ancestor function.
9704         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
9705
9706 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
9707
9708         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
9709         inline clones when edge disappears.
9710
9711 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9712
9713         PR target/60203
9714         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
9715         Split 64-bit moves into 2 patterns.  Do not allow the use of
9716         direct move for TDmode in little endian, since the decimal value
9717         has little endian bytes within a word, but the 64-bit pieces are
9718         ordered in a big endian fashion, and normal subreg's of TDmode are
9719         not allowed.
9720         (mov<mode>_64bit_dm): Likewise.
9721         (movtd_64bit_nodm): Likewise.
9722
9723 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
9724
9725         PR tree-optimization/60174
9726         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
9727         statement of an SSA_NAME that occurs in an abnormal PHI node.
9728
9729 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
9730
9731         PR sanitizer/60142
9732         * final.c (SEEN_BB): Remove.
9733         (SEEN_NOTE, SEEN_EMITTED): Renumber.
9734         (final_scan_insn): Don't force_source_line on second
9735         NOTE_INSN_BASIC_BLOCK.
9736
9737 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
9738
9739         PR target/60205
9740         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
9741         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
9742         (type_natural_mode): Warn ABI change when %zmm register is not
9743         available for AVX512F vector value passing.
9744
9745 2014-02-18  Kai Tietz  <ktietz@redhat.com>
9746
9747         PR target/60193
9748         * config/i386/i386.c (ix86_expand_prologue): Use value in
9749         rax register as displacement when restoring %r10 or %rax.
9750         Fix wrong offset when restoring both registers.
9751
9752 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
9753
9754         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
9755         assertion with conditional return.
9756
9757 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
9758             Uros Bizjak  <ubizjak@gmail.com>
9759
9760         PR driver/60233
9761         * config/i386/driver-i386.c (host_detect_local_cpu): If
9762         YMM state is not saved by the OS, also clear has_f16c.  Move
9763         CPUID 0x80000001 handling before YMM state saving checking.
9764
9765 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
9766
9767         PR rtl-optimization/58960
9768         * haifa-sched.c (alloc_global_sched_pressure_data): New,
9769         factored out from ...
9770         (sched_init): ... here.
9771         (free_global_sched_pressure_data): New, factored out from ...
9772         (sched_finish): ... here.
9773         * sched-int.h (free_global_sched_pressure_data): Declare.
9774         * sched-rgn.c (nr_regions_initial): New static global.
9775         (haifa_find_rgns): Initialize it.
9776         (schedule_region): Disable sched-pressure for the newly
9777         generated regions.
9778
9779 2014-02-17  Richard Biener  <rguenther@suse.de>
9780
9781         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
9782         release SSA defs of pattern stmts.
9783
9784 2014-02-17  Richard Biener  <rguenther@suse.de>
9785
9786         * tree-inline.c (expand_call_inline): Release the virtual
9787         operand defined by the call we are about to inline.
9788
9789 2014-02-17  Richard Biener  <rguenther@suse.de>
9790
9791         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
9792
9793 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
9794             Ilya Tocar  <ilya.tocar@intel.com>
9795
9796         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
9797         arguments order in builtin.
9798         (_mm512_permutexvar_epi64): Ditto.
9799         (_mm512_mask_permutexvar_epi64): Ditto
9800         (_mm512_maskz_permutexvar_epi32): Ditto
9801         (_mm512_permutexvar_epi32): Ditto
9802         (_mm512_mask_permutexvar_epi32): Ditto
9803
9804 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9805
9806         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
9807         (p8_vmrgow): Likewise.
9808
9809 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9810
9811         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
9812         endian targets.
9813
9814 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
9815
9816         PR target/60203
9817         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
9818         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
9819         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
9820         using direct move instructions on ISA 2.07.  Also adjust
9821         instruction length for 64-bit.
9822         (mov<mode>_64bit, TFmode/TDmode): Likewise.
9823         (mov<mode>_32bit, TFmode/TDmode): Likewise.
9824
9825 2014-02-15  Alan Modra  <amodra@gmail.com>
9826
9827         PR target/58675
9828         PR target/57935
9829         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
9830         find_replacement on parts of insn rtl that might be reloaded.
9831
9832 2014-02-15  Richard Biener  <rguenther@suse.de>
9833
9834         PR tree-optimization/60183
9835         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
9836         (tree_ssa_phiprop): Calculate and free post-dominators.
9837
9838 2014-02-14  Jeff Law  <law@redhat.com>
9839
9840         PR rtl-optimization/60131
9841         * ree.c (get_extended_src_reg): New function.
9842         (combine_reaching_defs): Use it rather than assuming location of REG.
9843         (find_and_remove_re): Verify first operand of extension is
9844         a REG before adding the insns to the copy list.
9845
9846 2014-02-14  Roland McGrath  <mcgrathr@google.com>
9847
9848         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
9849         * configure: Regenerated.
9850         * config.in: Regenerated.
9851         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
9852         instead of ASM_SHORT.
9853
9854 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
9855             Richard Earnshaw  <rearnsha@arm.com>
9856
9857         PR rtl-optimization/59535
9858         * lra-constraints.c (process_alt_operands): Encourage alternative
9859         when unassigned pseudo class is superset of the alternative class.
9860         (inherit_reload_reg): Don't inherit when optimizing for code size.
9861         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
9862         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
9863         modes not less than 4 for Thumb1.
9864
9865 2014-02-14  Kyle McMartin  <kyle@redhat.com>
9866
9867         PR pch/60010
9868         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
9869
9870 2014-02-14  Richard Biener  <rguenther@suse.de>
9871
9872         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
9873         (get_frame_arg): Drop the assert with langhook types_compatible_p.
9874         Do not strip INDIRECT_REFs.
9875
9876 2014-02-14  Richard Biener  <rguenther@suse.de>
9877
9878         PR lto/60179
9879         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
9880         DECL_FUNCTION_SPECIFIC_TARGET.
9881         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
9882         * tree-streamer-out.c (pack_ts_target_option): Remove.
9883         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
9884         (write_ts_function_decl_tree_pointers): Do not stream
9885         DECL_FUNCTION_SPECIFIC_TARGET.
9886         * tree-streamer-in.c (unpack_ts_target_option): Remove.
9887         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
9888         (lto_input_ts_function_decl_tree_pointers): Do not stream
9889         DECL_FUNCTION_SPECIFIC_TARGET.
9890
9891 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
9892
9893         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
9894         (get_initial_def_for_induction, vectorizable_induction): Ignore
9895         debug stmts when looking for exit_phi.
9896         (vectorizable_live_operation): Fix up condition.
9897
9898 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
9899
9900         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
9901         nreverse() because it changes the content of original tree list.
9902
9903 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
9904
9905         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
9906         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
9907
9908 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
9909
9910         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
9911         GNU coding standards.
9912
9913 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
9914
9915         PR debug/60152
9916         * dwarf2out.c (gen_subprogram_die): Don't call
9917         add_calling_convention_attribute if subr_die is old_die.
9918
9919 2014-02-13  Sharad Singhai  <singhai@google.com>
9920
9921         * doc/optinfo.texi: Fix order of nodes.
9922
9923 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
9924
9925         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
9926         operands[2], not operands[3].
9927
9928 2014-02-13  Richard Biener  <rguenther@suse.de>
9929
9930         PR bootstrap/59878
9931         * doc/install.texi (ISL): Update recommended version to 0.12.2,
9932         mention the possibility of an in-tree build.
9933         (CLooG): Update recommended version to 0.18.1, mention the
9934         possibility of an in-tree build and clarify that the ISL
9935         bundled with CLooG does not work.
9936
9937 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
9938
9939         PR target/43546
9940         * expr.c (compress_float_constant): If x is a hard register,
9941         extend into a pseudo and then move to x.
9942
9943 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9944
9945         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
9946         caused by bad second argument to warning_at() with -mhotpatch and
9947         nested functions (e.g. with gfortran).
9948
9949 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
9950
9951         * opts.c (option_name): Remove "enabled by default" rider.
9952
9953 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
9954
9955         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
9956
9957 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9958             Uros Bizjak  <ubizjak@gmail.com>
9959
9960         PR target/60151
9961         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
9962         * configure: Regenerated.
9963
9964 2014-02-12  Richard Biener  <rguenther@suse.de>
9965
9966         * vec.c (vec_prefix::calculate_allocation): Move as
9967         inline variant to vec.h.
9968         (vec_prefix::calculate_allocation_1): New out-of-line version.
9969         * vec.h (vec_prefix::calculate_allocation_1): Declare.
9970         (vec_prefix::m_has_auto_buf): Rename to ...
9971         (vec_prefix::m_using_auto_storage): ... this.
9972         (vec_prefix::calculate_allocation): Inline the easy cases
9973         and dispatch to calculate_allocation_1 which doesn't need the
9974         prefix address.
9975         (va_heap::reserve): Use gcc_checking_assert.
9976         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
9977         m_using_auto_storage.
9978         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
9979         member and adjust.
9980         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
9981         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
9982         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
9983
9984 2014-02-12  Richard Biener  <rguenther@suse.de>
9985
9986         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
9987         when we found a dependence.
9988
9989 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
9990
9991         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
9992         common code...
9993         (maybe_fold_stmt): ... into this new function.
9994         * omp-low.c (lower_omp): Update comment.
9995
9996         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
9997         last use.
9998
9999         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
10000         dereference.
10001
10002 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
10003
10004         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
10005         identifiers in comments.
10006         (cortexa53_extra_costs): Likewise.
10007         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
10008         (cortexa7_extra_costs): Likewise.
10009         (cortexa12_extra_costs): Likewise.
10010         (cortexa15_extra_costs): Likewise.
10011         (v7m_extra_costs): Likewise.
10012
10013 2014-02-12  Richard Biener  <rguenther@suse.de>
10014
10015         PR middle-end/60092
10016         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
10017         of posix_memalign being successful.
10018         (lower_stmt): Restrict lowering of posix_memalign to when
10019         -ftree-bit-ccp is enabled.
10020
10021 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10022
10023         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
10024         arg_loc.
10025         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
10026
10027 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10028
10029         PR rtl-optimization/60116
10030         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
10031         other_insn once the combination has been validated.
10032
10033 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
10034
10035         PR lto/59468
10036         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
10037         and wrapper.
10038         * ipa-devirt.c: Include demangle.h
10039         (odr_violation_reported): New static variable.
10040         (add_type_duplicate): Update odr_violations.
10041         (maybe_record_node): Add completep parameter; update it.
10042         (record_target_from_binfo): Add COMPLETEP parameter;
10043         update it as needed.
10044         (possible_polymorphic_call_targets_1): Likewise.
10045         (struct polymorphic_call_target_d): Add nonconstruction_targets;
10046         rename FINAL to COMPLETE.
10047         (record_targets_from_bases): Sanity check we found the binfo;
10048         fix COMPLETEP updating.
10049         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
10050         parameter, fix computing of COMPLETEP.
10051         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
10052         at LTO time do demangling.
10053         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
10054         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
10055         parameter.
10056         (gimple_get_virt_method_for_binfo): Likewise.
10057         * gimple-fold.h (gimple_get_virt_method_for_binfo,
10058         gimple_get_virt_method_for_vtable): Update prototypes.
10059
10060 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
10061
10062         PR target/49008
10063         * genautomata.c (add_presence_absence): Fix typo with
10064         {final_}presence_list.
10065
10066 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10067
10068         PR target/60137
10069         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
10070         for VSX/Altivec vectors that land in GPR registers.
10071
10072 2014-02-11  Richard Henderson  <rth@redhat.com>
10073             Jakub Jelinek  <jakub@redhat.com>
10074
10075         PR debug/59776
10076         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
10077         around drhs if type conversion to lacc->type is not useless.
10078
10079 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10080
10081         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
10082         tuning struct.
10083         (cortex-a57.cortex-a53): Likewise.
10084         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
10085
10086 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10087
10088         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
10089         arm_restrict_it.
10090
10091 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
10092
10093         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
10094         add_options_for_arm_vfp3.
10095
10096 2014-02-11  Jeff Law  <law@redhat.com>
10097
10098         PR middle-end/54041
10099         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
10100         object with an undesirable mode.
10101
10102 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10103
10104         PR libgomp/60107
10105         * config/i386/sol2-9.h: New file.
10106         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
10107         *-*-solaris2.9*): Use it.
10108
10109 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
10110
10111         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
10112         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
10113
10114 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
10115
10116         * config/microblaze/microblaze.c: Extend mcpu version format
10117
10118 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
10119
10120         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
10121
10122 2014-02-10  Richard Henderson  <rth@redhat.com>
10123
10124         PR target/59927
10125         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
10126         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
10127         ms-abi vs -mno-accumulate-outgoing-args.
10128         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
10129         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
10130         respect to ms-abi.
10131
10132 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10133
10134         PR middle-end/60080
10135         * cfgexpand.c (expand_asm_operands): Attach source location to
10136         ASM_INPUT rtx objects.
10137         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
10138
10139 2014-02-10  Nick Clifton  <nickc@redhat.com>
10140
10141         * config/mn10300/mn10300.c (popcount): New function.
10142         (mn10300_expand_prologue): Include saved registers in stack usage
10143         count.
10144
10145 2014-02-10  Jeff Law  <law@redhat.com>
10146
10147         PR middle-end/52306
10148         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
10149         when changing the SET_DEST of a prior insn to avoid an input reload.
10150
10151 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10152
10153         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
10154         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
10155         -mcall-openbsd, or -mcall-linux.
10156         (CC1_ENDIAN_BIG_SPEC): Remove.
10157         (CC1_ENDIAN_LITTLE_SPEC): Remove.
10158         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
10159         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
10160         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
10161         and %cc1_endian_default.
10162         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
10163
10164 2014-02-10  Richard Biener  <rguenther@suse.de>
10165
10166         PR tree-optimization/60115
10167         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
10168         MEM_REF handling.  Properly verify that the accesses are not
10169         out of the objects bound.
10170
10171 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10172
10173         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
10174         coretex to cortex.
10175
10176 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10177
10178         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
10179         proper constants and fix formatting.
10180         (possible_polymorphic_call_targets): Fix formatting.
10181
10182 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
10183             Ilya Tocar  <ilya.tocar@intel.com>
10184
10185         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
10186         (_mm512_loadu_epi32): Renamed into...
10187         (_mm512_loadu_si512): This.
10188         (_mm512_storeu_epi32): Renamed into...
10189         (_mm512_storeu_si512): This.
10190         (_mm512_maskz_ceil_ps): Removed.
10191         (_mm512_maskz_ceil_pd): Ditto.
10192         (_mm512_maskz_floor_ps): Ditto.
10193         (_mm512_maskz_floor_pd): Ditto.
10194         (_mm512_floor_round_ps): Ditto.
10195         (_mm512_floor_round_pd): Ditto.
10196         (_mm512_ceil_round_ps): Ditto.
10197         (_mm512_ceil_round_pd): Ditto.
10198         (_mm512_mask_floor_round_ps): Ditto.
10199         (_mm512_mask_floor_round_pd): Ditto.
10200         (_mm512_mask_ceil_round_ps): Ditto.
10201         (_mm512_mask_ceil_round_pd): Ditto.
10202         (_mm512_maskz_floor_round_ps): Ditto.
10203         (_mm512_maskz_floor_round_pd): Ditto.
10204         (_mm512_maskz_ceil_round_ps): Ditto.
10205         (_mm512_maskz_ceil_round_pd): Ditto.
10206         (_mm512_expand_pd): Ditto.
10207         (_mm512_expand_ps): Ditto.
10208         * config/i386/i386.c (ix86_builtins): Remove
10209         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
10210         (bdesc_args): Ditto.
10211         * config/i386/predicates.md (const1256_operand): New.
10212         (const_1_to_2_operand): Ditto.
10213         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
10214         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
10215         (*avx512pf_gatherpf<mode>sf): Ditto.
10216         (avx512pf_gatherpf<mode>df): Ditto.
10217         (*avx512pf_gatherpf<mode>df_mask): Ditto.
10218         (*avx512pf_gatherpf<mode>df): Ditto.
10219         (avx512pf_scatterpf<mode>sf): Ditto.
10220         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
10221         (*avx512pf_scatterpf<mode>sf): Ditto.
10222         (avx512pf_scatterpf<mode>df): Ditto.
10223         (*avx512pf_scatterpf<mode>df_mask): Ditto.
10224         (*avx512pf_scatterpf<mode>df): Ditto.
10225         (avx512f_expand<mode>): Removed.
10226         (<shift_insn><mode>3<mask_name>): Change predicate type.
10227
10228 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
10229
10230         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
10231         not at the end of datarefs vector use ordered_remove to avoid
10232         reordering datarefs vector.
10233
10234         PR c/59984
10235         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
10236         mark local addressable non-static vars as GOVD_PRIVATE
10237         instead of GOVD_LOCAL.
10238         * omp-low.c (lower_omp_for): Move gimple_bind_vars
10239         and BLOCK_VARS of gimple_bind_block to new_stmt rather
10240         than copying them.
10241
10242         PR middle-end/60092
10243         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
10244         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
10245         assume_aligned or alloc_align attributes.
10246         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
10247         arguments.  Handle also assume_aligned and alloc_align attributes.
10248         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
10249         calls to functions with assume_aligned or alloc_align attributes.
10250         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
10251
10252 2014-02-08  Terry Guo  <terry.guo@arm.com>
10253
10254         * doc/invoke.texi: Document ARM -march=armv7e-m.
10255
10256 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
10257
10258         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
10259         flag on __cilkrts_rethrow builtin.
10260
10261         PR ipa/60026
10262         * ipa-cp.c (determine_versionability): Fail at -O0
10263         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
10264         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
10265
10266         Revert:
10267         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
10268
10269         PR ipa/60026
10270         * tree-inline.c (copy_forbidden): Fail for
10271         __attribute__((optimize (0))) functions.
10272
10273 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
10274
10275         * varpool.c: Include pointer-set.h.
10276         (varpool_remove_unreferenced_decls): Variables in other partitions
10277         will not be output; be however careful to not lose information
10278         about partitioning.
10279
10280 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
10281
10282         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
10283         lookup in the vtable constructor.
10284
10285 2014-02-07  Jeff Law  <law@redhat.com>
10286
10287         PR target/40977
10288         * config/m68k/m68k.md (ashldi_extsi): Turn into a
10289         define_insn_and_split.
10290
10291         * ipa-inline.c (inline_small_functions): Fix typos.
10292
10293 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10294
10295         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
10296         (s390_can_use_return_insn): Declare.
10297         * config/s390/s390.h (EPILOGUE_USES): Define.
10298         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
10299         instructions.
10300         (s390_chunkify_start): Handle return JUMP_LABELs.
10301         (s390_early_mach): Emit a main_pool instruction on the entry edge.
10302         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
10303         (s390_can_use_return_insn): New functions.
10304         (s390_fix_long_loop_prediction): Handle conditional returns.
10305         (TARGET_SET_UP_BY_PROLOGUE): Define.
10306         * config/s390/s390.md (ANY_RETURN): New code iterator.
10307         (*creturn, *csimple_return, return, simple_return): New patterns.
10308
10309 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10310
10311         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
10312         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
10313         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
10314         REG_CFA_RESTORE list when deciding not to restore a register.
10315
10316 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10317
10318         * config/s390/s390.c: Include tree-pass.h and context.h.
10319         (s390_early_mach): New function, split out from...
10320         (s390_emit_prologue): ...here.
10321         (pass_data_s390_early_mach): New pass structure.
10322         (pass_s390_early_mach): New class.
10323         (s390_option_override): Create and register early_mach pass.
10324         Move to end of file.
10325
10326 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10327
10328         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
10329         to match for the exit block.
10330
10331 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10332
10333         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
10334         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
10335         Reject misaligned operands.
10336
10337 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10338
10339         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
10340
10341 2014-02-07  Richard Biener  <rguenther@suse.de>
10342
10343         PR middle-end/60092
10344         * gimple-low.c (lower_builtin_posix_memalign): New function.
10345         (lower_stmt): Call it to lower posix_memalign in a way
10346         to make alignment info accessible.
10347
10348 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
10349
10350         PR c++/60082
10351         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
10352         __builtin_setjmp_receiver.
10353
10354 2014-02-07  Richard Biener  <rguenther@suse.de>
10355
10356         PR middle-end/60092
10357         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
10358         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
10359         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10360         Handle BUILT_IN_POSIX_MEMALIGN.
10361         (find_func_clobbers): Likewise.
10362         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10363         (call_may_clobber_ref_p_1): Likewise.
10364
10365 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
10366
10367         PR ipa/59918
10368         * ipa-devirt.c (record_target_from_binfo): Remove overactive
10369         sanity check.
10370
10371 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
10372
10373         PR ipa/59469
10374         * lto-cgraph.c (lto_output_node): Use
10375         symtab_get_symbol_partitioning_class.
10376         (lto_output_varpool_node): likewise.
10377         (symtab_get_symbol_partitioning_class): Move here from
10378         lto/lto-partition.c
10379         * cgraph.h (symbol_partitioning_class): Likewise.
10380         (symtab_get_symbol_partitioning_class): Declare.
10381
10382 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
10383
10384         * ggc.h (ggc_internal_cleared_alloc): New macro.
10385         * vec.h (vec_safe_copy): Handle memory stats.
10386         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
10387         * target-globals.c (save_target_globals): Likewise.
10388
10389 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
10390
10391         PR target/60077
10392         * expr.c (emit_move_resolve_push): Export; be bit more selective
10393         on when to clear alias set.
10394         * expr.h (emit_move_resolve_push): Declare.
10395         * function.h (struct function): Add tail_call_marked.
10396         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
10397         * config/i386/i386-protos.h (ix86_expand_push): Remove.
10398         * config/i386/i386.md (TImode move expander): De not call
10399         ix86_expand_push.
10400         (FP push expanders): Preserve memory attributes.
10401         * config/i386/sse.md (push<mode>1): Remove.
10402         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
10403         (ix86_expand_push): Remove.
10404         * config/i386/mmx.md (push<mode>1): Remove.
10405
10406 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
10407
10408         PR rtl-optimization/60030
10409         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
10410         lopart with paradoxical subreg before shifting it up by hprec.
10411
10412 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10413
10414         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
10415         Remove extra newline at end of file.
10416         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
10417         (arm_issue_rate): Handle cortexa57.
10418         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
10419         (cortex-a57.cortex-a53): Likewise.
10420
10421 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
10422
10423         PR target/59575
10424         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
10425         don't record in REG_FRAME_RELATED_EXPR registers not set in that
10426         bitmask.
10427         (arm_expand_prologue): Adjust all callers.
10428         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
10429         info, registers also at the lowest numbered registers side.  Use
10430         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
10431         XEXP.
10432
10433         PR debug/59992
10434         * var-tracking.c (adjust_mems): Before adding a SET to
10435         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
10436
10437 2014-02-06  Alan Modra  <amodra@gmail.com>
10438
10439         PR target/60032
10440         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
10441         change SDmode to DDmode when lra_in_progress.
10442
10443 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
10444
10445         PR middle-end/59150
10446         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
10447         free_data_ref on the dr first, and before goto again also set dr
10448         to the next dr.  For simd_lane_access, free old datarefs[i] before
10449         overwriting it.  For get_vectype_for_scalar_type failure, don't
10450         free_data_ref if simd_lane_access.
10451
10452         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
10453
10454         PR target/60062
10455         * tree.h (opts_for_fn): New inline function.
10456         (opt_for_fn): Define.
10457         * config/i386/i386.c (ix86_function_regparm): Use
10458         opt_for_fn (decl, optimize) instead of optimize.
10459
10460 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10461
10462         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
10463         for SYMBOL_REF in large memory model.
10464
10465 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10466
10467         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
10468         and crypto support.
10469         (cortex-a57): Likewise.
10470         (cortex-a57.cortex-a53): Likewise.
10471
10472 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
10473             Kugan Vivekanandarajah  <kuganv@linaro.org>
10474
10475         * config/arm/arm.c (arm_vector_alignment_reachable): Check
10476         unaligned_access.
10477         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
10478
10479 2014-02-06  Richard Biener  <rguenther@suse.de>
10480
10481         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
10482         set_loop_copy and initialize_original_copy_tables.
10483
10484 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
10485
10486         * config/aarch64/aarch64-simd.md
10487         (aarch64_ashr_simddi): Change QI to SI.
10488
10489 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
10490             Jakub Jelinek  <jakub@redhat.com>
10491
10492         PR middle-end/60013
10493         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
10494         of the dataflow.
10495
10496 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10497
10498         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
10499         CODE_FOR_altivec_vpku[hw]um to
10500         CODE_FOR_altivec_vpku[hw]um_direct.
10501         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
10502         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
10503         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
10504         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
10505
10506 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10507
10508         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
10509         generation for -maltivec=be.
10510         (altivec_vsumsws): Simplify redundant test.
10511
10512 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10513
10514         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
10515         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
10516         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
10517         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
10518         gen_altivec_vpkuwum.
10519         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
10520         BYTES_BIG_ENDIAN.
10521         (altivec_vpks<VI_char>ss): Likewise.
10522         (altivec_vpks<VI_char>us): Likewise.
10523         (altivec_vpku<VI_char>us): Likewise.
10524         (altivec_vpku<VI_char>um): Likewise.
10525         (altivec_vpku<VI_char>um_direct): New (copy of
10526         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
10527         internal use).
10528         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
10529         target is little endian and -maltivec=be is not specified.
10530         (*altivec_vupkhs<VU_char>_direct): New (copy of
10531         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
10532         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
10533         target is little endian and -maltivec=be is not specified.
10534         (*altivec_vupkls<VU_char>_direct): New (copy of
10535         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
10536         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
10537         little endian and -maltivec=be is not specified.
10538         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
10539         little endian and -maltivec=be is not specified.
10540
10541 2014-02-05  Richard Henderson  <rth@redhat.com>
10542
10543         PR debug/52727
10544         * combine-stack-adj.c: Revert r206943.
10545         * sched-int.h (struct deps_desc): Add last_args_size.
10546         * sched-deps.c (init_deps): Initialize it.
10547         (sched_analyze_insn): Add OUTPUT dependencies between insns that
10548         contain REG_ARGS_SIZE notes.
10549
10550 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
10551
10552         * lto-cgraph.c (asm_nodes_output): Make global.
10553         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
10554         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
10555         (driver_handle_option): Handle OPT_fwpa.
10556
10557 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
10558
10559         PR ipa/59947
10560         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
10561         a comment typo and formatting issue.  If odr_hash hasn't been
10562         created, return vNULL and set *completep to false.
10563
10564         PR middle-end/57499
10565         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
10566         bb with no successors.
10567
10568 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
10569
10570         PR target/59718
10571         * doc/invoke.texi (-march): Clarify documentation for ARM.
10572         (-mtune): Likewise.
10573         (-mcpu): Likewise.
10574
10575 2014-02-05  Richard Biener  <rguenther@suse.de>
10576
10577         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
10578         when not vectorizing because of too many alias checks.
10579         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10580         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
10581
10582 2014-02-05  Nick Clifton  <nickc@redhat.com>
10583
10584         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
10585         accept extended registers in any mode when compiling for the MN10300.
10586
10587 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
10588
10589         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
10590         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
10591         sanitization attributes.
10592         (can_inline_edge_p): Likewise.
10593         (sanitize_attrs_match_for_inline_p): New function.
10594
10595 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
10596
10597         * ipa-prop.c (detect_type_change): Shor circuit testing of
10598         type changes on THIS pointer.
10599
10600 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
10601
10602         PR target/59777
10603         * config/pa/pa.c (legitimize_tls_address): Return original address
10604         if not passed a SYMBOL_REF rtx.
10605         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
10606         addresses.
10607         (pa_emit_move_sequence): Simplify TLS source operands.
10608         (pa_legitimate_constant_p): Reject all TLS constants.
10609         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
10610         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
10611
10612 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
10613
10614         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
10615         groups when we know they are controlled by LTO.
10616         * varasm.c (default_binds_local_p_1): If object is in other partition,
10617         it will be resolved locally.
10618
10619 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10620
10621         * config/host-linux.c (linux_gt_pch_use_address): Don't
10622         use SSIZE_MAX because it is not always defined.
10623
10624 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
10625
10626         PR bootstrap/59913
10627         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
10628         threshold for pseudo splitting.
10629         (update_ebb_live_info): Process call argument hard registers and
10630         hard registers from insn definition too.
10631         (max_small_class_regs_num): New constant.
10632         (inherit_in_ebb): Update live hard regs through EBBs.  Update
10633         reloads_num only for small register classes.  Don't split for
10634         outputs of jumps.
10635
10636 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
10637
10638         PR ipa/60058
10639         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
10640         is non-null.
10641
10642 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
10643
10644         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
10645         visibility is safe.
10646
10647 2014-02-04  Marek Polacek  <polacek@redhat.com>
10648
10649         * gdbinit.in (pel): Define.
10650
10651 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10652
10653         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
10654         behavior.
10655
10656 2014-02-04  Richard Biener  <rguenther@suse.de>
10657
10658         PR lto/59723
10659         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
10660         in function context local.
10661         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
10662         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
10663         similar to LTO_imported_decl_ref.
10664
10665 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
10666
10667         PR tree-optimization/60002
10668         * cgraphclones.c (build_function_decl_skip_args): Clear
10669         DECL_LANG_SPECIFIC.
10670
10671         PR tree-optimization/60023
10672         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
10673         false to gsi_replace.
10674         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
10675         has been in some EH region and vec_stmt could throw, add
10676         vec_stmt into the same EH region.
10677         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
10678         has no lhs, ignore it.
10679         * internal-fn.c (expand_MASK_LOAD): Likewise.
10680
10681         PR ipa/60026
10682         * tree-inline.c (copy_forbidden): Fail for
10683         __attribute__((optimize (0))) functions.
10684
10685         PR other/58712
10686         * omp-low.c (simd_clone_struct_copy): If from->inbranch
10687         is set, copy one less argument.
10688         (expand_simd_clones): Don't subtract clone_info->inbranch
10689         from simd_clone_struct_alloc argument.
10690
10691         PR rtl-optimization/57915
10692         * recog.c (simplify_while_replacing): If all unary/binary/relational
10693         operation arguments are constant, attempt to simplify those.
10694
10695         PR middle-end/59261
10696         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
10697         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
10698
10699 2014-02-04  Richard Biener  <rguenther@suse.de>
10700
10701         PR tree-optimization/60012
10702         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
10703         TBAA disambiguation to all DDRs.
10704
10705 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10706
10707         PR target/59788
10708         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
10709         (LINK_SPEC): Use it for -shared, -shared-libgcc.
10710
10711 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
10712
10713         PR ipa/59882
10714         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
10715
10716 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
10717
10718         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
10719         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
10720
10721 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
10722
10723         PR ipa/59831
10724         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
10725         to figure out targets of polymorphic calls with known decl.
10726         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10727         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
10728         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
10729         (get_polymorphic_call_info): ... here.
10730         (get_polymorphic_call_info_from_invariant): New function.
10731
10732 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
10733
10734         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
10735         lookup via vtable pointer; check for type consistency
10736         and turn inconsitent facts into UNREACHABLE.
10737         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10738         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
10739         type inconsistent querries; return UNREACHABLE instead.
10740
10741 2014-02-03  Richard Henderson  <rth@twiddle.net>
10742
10743         PR tree-opt/59924
10744         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
10745         already processed this node.
10746         (normalize_one_pred_1): Pass along mark_set.
10747         (normalize_one_pred): Create and destroy a pointer_set_t.
10748         (normalize_one_pred_chain): Likewise.
10749
10750 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
10751
10752         PR gcov-profile/58602
10753         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
10754
10755 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
10756
10757         PR ipa/59831
10758         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
10759         -fno-devirtualize; try to devirtualize by the knowledge of
10760         virtual table pointer given by aggregate propagation.
10761         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10762         (ipa_print_node_jump_functions): Dump also offset that
10763         is relevant for polymorphic calls.
10764         (determine_known_aggregate_parts): Add arg_type parameter; use it
10765         instead of determining the type from pointer type.
10766         (ipa_compute_jump_functions_for_edge): Update call of
10767         determine_known_aggregate_parts.
10768         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
10769         (gimple_get_virt_method_for_binfo): ... here; simplify using
10770         vtable_pointer_value_to_vtable.
10771         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
10772         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
10773         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
10774         (vtable_pointer_value_to_vtable): Break out from ...; handle also
10775         POINTER_PLUS_EXPR.
10776         (vtable_pointer_value_to_binfo): ... here.
10777         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
10778
10779 2014-02-03  Teresa Johnson  <tejohnson@google.com>
10780
10781         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
10782         redef of outer loop index variable.
10783
10784 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
10785
10786         PR c++/53017
10787         PR c++/59211
10788         * doc/extend.texi (Function Attributes): Typo.
10789
10790 2014-02-03  Cong Hou  <congh@google.com>
10791
10792         PR tree-optimization/60000
10793         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
10794         if the vectorized statement is a store.  A store statement can only
10795         appear at the end of pattern statements.
10796
10797 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
10798
10799         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
10800         (ix86_option_override_internal): Default long double to 64-bit for
10801         32-bit Bionic and to 128-bit for 64-bit Bionic.
10802
10803         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
10804         TARGET_LONG_DOUBLE_128 is true.
10805         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
10806
10807         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
10808         (mlong-double-64): Negate -mlong-double-128.
10809         (mlong-double-128): New option.
10810
10811         * config/i386/i386-c.c (ix86_target_macros): Define
10812         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
10813
10814         * doc/invoke.texi: Document -mlong-double-128.
10815
10816 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
10817
10818         PR rtl-optimization/60024
10819         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
10820
10821 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
10822
10823         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
10824
10825 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
10826
10827         PR rtl-optimization/57662
10828         * sel-sched.c (code_motion_path_driver): Do not mark already not
10829         existing blocks in the visiting bitmap.
10830
10831 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
10832
10833         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
10834         on the insn being emitted.
10835
10836 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
10837             Will Deacon  <will.deacon@arm.com>
10838
10839         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
10840
10841 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10842
10843         * config/arm/arm-tables.opt: Regenerate.
10844
10845 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10846
10847         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
10848         for vector types other than V16QImode.
10849         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
10850         define_expand, and call altivec_expand_vec_perm_le when producing
10851         code with little endian element order.
10852         (*altivec_vperm_<mode>_internal): New insn having previous
10853         behavior of altivec_vperm_<mode>.
10854         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
10855         altivec_expand_vec_perm_le when producing code with little endian
10856         element order.
10857         (*altivec_vperm_<mode>_uns_internal): New insn having previous
10858         behavior of altivec_vperm_<mode>_uns.
10859
10860 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10861
10862         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
10863         (altivec_vsumsws): Add handling for -maltivec=be with a little
10864         endian target.
10865         (altivec_vsumsws_direct): New.
10866         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
10867         gen_altivec_vsumsws.
10868
10869 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
10870
10871         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
10872         vtable_pointer_value_to_binfo): New functions.
10873         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
10874         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
10875
10876 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
10877
10878         * config/nios2/nios2.md (load_got_register): Initialize GOT
10879         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
10880         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
10881
10882 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
10883
10884         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
10885         preserverd by passthrough, do not propagate the type.
10886
10887 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10888
10889         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
10890         (mips_atomic_assign_expand_fenv): New function.
10891         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
10892
10893 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10894
10895         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
10896         (__builtin_mips_set_fcsr): Likewise.
10897         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
10898         MIPS_USI_FTYPE_VOID.
10899         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
10900         (mips16_expand_set_fcsr): Likewise.
10901         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
10902         (mips16_set_fcsr_stub): Likewise.
10903         (mips16_get_fcsr_one_only_stub): New class.
10904         (mips16_set_fcsr_one_only_stub): Likewise.
10905         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
10906         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
10907         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
10908         (hard_float): New availability predicate.
10909         (mips_builtins): Add get_fcsr and set_fcsr.
10910         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
10911         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
10912         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
10913         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
10914         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
10915         patterns.
10916
10917 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10918
10919         * config/mips/mips.c (mips_one_only_stub): New class.
10920         (mips_need_mips16_rdhwr_p): Replace with...
10921         (mips16_rdhwr_stub): ...this new variable.
10922         (mips16_stub_call_address): New function.
10923         (mips16_rdhwr_one_only_stub): New class.
10924         (mips_expand_thread_pointer): Use mips16_stub_call_address.
10925         (mips_output_mips16_rdhwr): Delete.
10926         (mips_finish_stub): New function.
10927         (mips_code_end): Use it to handle rdhwr stubs.
10928
10929 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
10930
10931         PR target/60017
10932         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
10933         when calculating size of integer atomic types.
10934
10935 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
10936
10937         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
10938
10939 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
10940
10941         PR tree-optimization/60003
10942         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
10943         * profile.c (branch_prob): Use gimple_call_builtin_p
10944         to check for BUILT_IN_SETJMP_RECEIVER.
10945         * tree-inline.c (copy_bb): Call notice_special_calls.
10946
10947 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
10948
10949         PR bootstrap/59985
10950         * lra-constraints.c (process_alt_operands): Update reload_sum only
10951         on the first pass.
10952
10953 2014-01-31  Richard Henderson  <rth@redhat.com>
10954
10955         PR middle-end/60004
10956         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
10957         until after else_eh is processed.
10958
10959 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
10960
10961         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
10962         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
10963         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
10964         in smmintrin.h, remove them.
10965         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
10966         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
10967         * config/i386/i386.md (ROUND_SAE): Fix value.
10968         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
10969         (const48_operand): New.
10970         * config/i386/subst.md (round), (round_expand): Use
10971         const_4_or_8_to_11_operand.
10972         (round_saeonly), (round_saeonly_expand): Use const48_operand.
10973
10974 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
10975
10976         * config/i386/constraints.md (Yk): Swap meaning with k.
10977         * config/i386/i386.md (movhi_internal): Change Yk to k.
10978         (movqi_internal): Ditto.
10979         (*k<logic><mode>): Ditto.
10980         (*andhi_1): Ditto.
10981         (*andqi_1): Ditto.
10982         (kandn<mode>): Ditto.
10983         (*<code>hi_1): Ditto.
10984         (*<code>qi_1): Ditto.
10985         (kxnor<mode>): Ditto.
10986         (kortestzhi): Ditto.
10987         (kortestchi): Ditto.
10988         (kunpckhi): Ditto.
10989         (*one_cmplhi2_1): Ditto.
10990         (*one_cmplqi2_1): Ditto.
10991         * config/i386/sse.md (): Change k to Yk.
10992         (avx512f_load<mode>_mask): Ditto.
10993         (avx512f_blendm<mode>): Ditto.
10994         (avx512f_store<mode>_mask): Ditto.
10995         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
10996         (avx512f_storedqu<mode>_mask): Ditto.
10997         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
10998         Ditto.
10999         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
11000         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
11001         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
11002         (avx512f_maskcmp<mode>3): Ditto.
11003         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
11004         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
11005         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
11006         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
11007         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
11008         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
11009         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
11010         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
11011         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
11012         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
11013         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
11014         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
11015         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
11016         (vec_extract_lo_<mode>_maskm): Ditto.
11017         (vec_extract_hi_<mode>_maskm): Ditto.
11018         (avx512f_vternlog<mode>_mask): Ditto.
11019         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
11020         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
11021         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
11022         (avx512f_<code>v8div16qi2_mask): Ditto.
11023         (avx512f_<code>v8div16qi2_mask_store): Ditto.
11024         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
11025         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
11026         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
11027         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
11028         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
11029         (*avx512pf_gatherpf<mode>df_mask): Ditto.
11030         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
11031         (*avx512pf_scatterpf<mode>df_mask): Ditto.
11032         (avx512cd_maskb_vec_dupv8di): Ditto.
11033         (avx512cd_maskw_vec_dupv16si): Ditto.
11034         (avx512f_vpermi2var<mode>3_maskz): Ditto.
11035         (avx512f_vpermi2var<mode>3_mask): Ditto.
11036         (avx512f_vpermi2var<mode>3_mask): Ditto.
11037         (avx512f_vpermt2var<mode>3_maskz): Ditto.
11038         (*avx512f_gathersi<mode>): Ditto.
11039         (*avx512f_gathersi<mode>_2): Ditto.
11040         (*avx512f_gatherdi<mode>): Ditto.
11041         (*avx512f_gatherdi<mode>_2): Ditto.
11042         (*avx512f_scattersi<mode>): Ditto.
11043         (*avx512f_scatterdi<mode>): Ditto.
11044         (avx512f_compress<mode>_mask): Ditto.
11045         (avx512f_compressstore<mode>_mask): Ditto.
11046         (avx512f_expand<mode>_mask): Ditto.
11047         * config/i386/subst.md (mask): Change k to Yk.
11048         (mask_scalar_merge): Ditto.
11049         (sd): Ditto.
11050
11051 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
11052
11053         * doc/extend.texi (Vector Extensions): Document ?: in C++.
11054
11055 2014-01-31  Richard Biener  <rguenther@suse.de>
11056
11057         PR middle-end/59990
11058         * builtins.c (fold_builtin_memory_op): Make sure to not
11059         use a floating-point mode or a boolean or enumeral type for
11060         the copy operation.
11061
11062 2014-01-30  DJ Delorie  <dj@redhat.com>
11063
11064         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
11065         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
11066         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
11067         whenever main() has an epilogue.
11068
11069 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11070
11071         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
11072         unused variable "field".
11073         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
11074         (vsx_mergeh_<mode>): Likewise.
11075         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
11076         (altivec_vmrghh): Likewise.
11077         (altivec_vmrghw): Likewise.
11078         (altivec_vmrglb): Likewise.
11079         (altivec_vmrglh): Likewise.
11080         (altivec_vmrglw): Likewise.
11081         (altivec_vspltb): Add missing uses.
11082         (altivec_vsplth): Likewise.
11083         (altivec_vspltw): Likewise.
11084         (altivec_vspltsf): Likewise.
11085
11086 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
11087
11088         PR target/59923
11089         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
11090         frame related instructions.
11091
11092 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
11093
11094         PR rtl-optimization/59959
11095         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
11096         any reload of register whose subreg is invalid.
11097
11098 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
11099
11100         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
11101         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
11102         Add missing return type - void.
11103
11104 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11105
11106         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
11107         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
11108         remove element index adjustment for endian (now handled in vsx.md
11109         and altivec.md).
11110         (altivec_expand_vec_perm_const): Use
11111         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
11112         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
11113         (vsx_xxspltw_<mode>): Adjust element index for little endian.
11114         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
11115         define_expand and a new define_insn *altivec_vspltb_internal;
11116         adjust for -maltivec=be on a little endian target.
11117         (altivec_vspltb_direct): New.
11118         (altivec_vsplth): Divide into a define_expand and a new
11119         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
11120         little endian target.
11121         (altivec_vsplth_direct): New.
11122         (altivec_vspltw): Divide into a define_expand and a new
11123         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
11124         little endian target.
11125         (altivec_vspltw_direct): New.
11126         (altivec_vspltsf): Divide into a define_expand and a new
11127         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
11128         a little endian target.
11129
11130 2014-01-30  Richard Biener  <rguenther@suse.de>
11131
11132         PR tree-optimization/59993
11133         * tree-ssa-forwprop.c (associate_pointerplus): Check we
11134         can propagate form the earlier stmt and avoid the transform
11135         when the intermediate result is needed.
11136
11137 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
11138
11139         * README.Portability: Fix typo.
11140
11141 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
11142
11143         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
11144         comparison_operator with ordered_comparison_operator.
11145
11146 2014-01-30  Nick Clifton  <nickc@redhat.com>
11147
11148         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
11149         Rename to mn10300_store_multiple_regs.
11150         * config/mn10300/mn10300.c: Likewise.
11151         * config/mn10300/mn10300.md (store_movm): Fix typo: call
11152         store_multiple_regs.
11153         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
11154         Call mn10300_store_multiple_regs.
11155
11156 2014-01-30  Nick Clifton  <nickc@redhat.com>
11157             DJ Delorie  <dj@redhat.com>
11158
11159         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
11160         %fp 2 to keep registers after it properly word-aligned.
11161         (rl78_alloc_physical_registers_umul): Handle the case where both
11162         input operands are the same.
11163
11164 2014-01-30  Richard Biener  <rguenther@suse.de>
11165
11166         PR tree-optimization/59903
11167         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
11168         check properly.
11169
11170 2014-01-30  Jason Merrill  <jason@redhat.com>
11171
11172         PR c++/59633
11173         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
11174
11175         PR c++/59645
11176         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
11177
11178 2014-01-30  Richard Biener  <rguenther@suse.de>
11179
11180         PR tree-optimization/59951
11181         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
11182
11183 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
11184
11185         PR target/59784
11186         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
11187         SFmode to DFmode case.
11188
11189 2014-01-29  DJ Delorie  <dj@redhat.com>
11190
11191         * config/msp430/msp430.opt (-minrt): New.
11192         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
11193         if -minrt given.
11194         (ENDFILE_SPEC): Likewise.
11195
11196 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
11197
11198         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
11199         (estimate_function_body_sizes): Use it.
11200
11201 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
11202
11203         PR c++/58561
11204         * dwarf2out.c (is_cxx_auto): New.
11205         (is_base_type): Use it.
11206         (gen_type_die_with_usage): Likewise.
11207
11208 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11209
11210         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
11211         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
11212         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
11213         -maltivec=be with LE targets.
11214         (vsx_mergeh_<mode>): Likewise.
11215         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
11216         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
11217         (altivec_vmrghb): Replace with define_expand and new
11218         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
11219         (altivec_vmrghb_direct): New define_insn.
11220         (altivec_vmrghh): Replace with define_expand and new
11221         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
11222         (altivec_vmrghh_direct): New define_insn.
11223         (altivec_vmrghw): Replace with define_expand and new
11224         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
11225         (altivec_vmrghw_direct): New define_insn.
11226         (*altivec_vmrghsf): Adjust for endianness.
11227         (altivec_vmrglb): Replace with define_expand and new
11228         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
11229         (altivec_vmrglb_direct): New define_insn.
11230         (altivec_vmrglh): Replace with define_expand and new
11231         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
11232         (altivec_vmrglh_direct): New define_insn.
11233         (altivec_vmrglw): Replace with define_expand and new
11234         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
11235         (altivec_vmrglw_direct): New define_insn.
11236         (*altivec_vmrglsf): Adjust for endianness.
11237         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
11238         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
11239         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
11240         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
11241         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
11242         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
11243         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
11244         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
11245
11246 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
11247
11248         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
11249         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
11250         whitespace.
11251
11252 2014-01-29  Richard Biener  <rguenther@suse.de>
11253
11254         PR tree-optimization/58742
11255         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
11256         associate_pointerplus_align.
11257         (associate_pointerplus_diff): New function.
11258         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
11259         and associate_pointerplus_diff.
11260
11261 2014-01-29  Richard Biener  <rguenther@suse.de>
11262
11263         * lto-streamer.h (LTO_major_version): Bump to 3.
11264         (LTO_minor_version): Reset to 0.
11265
11266 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
11267
11268         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
11269         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
11270         (arm_file_start): Generate correct asm header for armv7ve.
11271         * config/arm/bpabi.h: Add multilib support for armv7ve.
11272         * config/arm/driver-arm.c: Change the architectures of cortex-a7
11273         and cortex-a15 to armv7ve.
11274         * config/arm/t-aprofile: Add multilib support for armv7ve.
11275         * doc/invoke.texi: Document -march=armv7ve.
11276
11277 2014-01-29  Richard Biener  <rguenther@suse.de>
11278
11279         PR tree-optimization/58742
11280         * tree-ssa-forwprop.c (associate_plusminus): Return true
11281         if we changed sth, defer EH cleanup to ...
11282         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
11283         (simplify_mult): New function.
11284
11285 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
11286
11287         PR middle-end/59917
11288         PR tree-optimization/59920
11289         * tree.c (build_common_builtin_nodes): Remove
11290         __builtin_setjmp_dispatcher initialization.
11291         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
11292         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
11293         instead of gsi_after_labels + manually skipping debug stmts.
11294         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
11295         ignore bbs with IFN_ABNORMAL_DISPATCHER.
11296         * tree-inline.c (copy_edges_for_bb): Remove
11297         can_make_abnormal_goto argument, instead add abnormal_goto_dest
11298         argument.  Ignore computed_goto_p stmts.  Don't call
11299         make_abnormal_goto_edges.  If a call might need abnormal edges
11300         for non-local gotos, see if it already has an edge to
11301         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
11302         with true argument, don't do anything then, otherwise add
11303         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
11304         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
11305         caller.
11306         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
11307         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
11308         (lower_stmt): Don't set data->calls_builtin_setjmp.
11309         (lower_builtin_setjmp): Adjust comment.
11310         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
11311         * tree-cfg.c (found_computed_goto): Remove.
11312         (factor_computed_gotos): Remove.
11313         (make_goto_expr_edges): Return bool, true for computed gotos.
11314         Don't call make_abnormal_goto_edges.
11315         (build_gimple_cfg): Don't set found_computed_goto, don't call
11316         factor_computed_gotos.
11317         (computed_goto_p): No longer static.
11318         (make_blocks): Don't set found_computed_goto.
11319         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
11320         (make_edges): If make_goto_expr_edges returns true, push bb
11321         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
11322         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
11323         vector.  Record mapping between bbs and OpenMP regions if there
11324         are any, adjust make_gimple_omp_edges caller.  Call
11325         handle_abnormal_edges.
11326         (make_abnormal_goto_edges): Remove.
11327         * tree-cfg.h (make_abnormal_goto_edges): Remove.
11328         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
11329         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
11330         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
11331         * internal-fn.def (ABNORMAL_DISPATCHER): New.
11332         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
11333         filling *region also set *region_idx to (*region)->entry->index.
11334
11335         PR other/58712
11336         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
11337         For REGs set ORIGINAL_REGNO.
11338
11339 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
11340
11341         * doc/md.texi: Mention that a target shouldn't implement
11342         vec_widen_(s|u)mul_even/odd pair if it is less efficient
11343         than hi/lo pair.
11344
11345 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
11346
11347         PR tree-optimization/59594
11348         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
11349         a copy of the datarefs vector rather than the vector itself.
11350
11351 2014-01-28  Jason Merrill  <jason@redhat.com>
11352
11353         PR c++/53756
11354         * dwarf2out.c (auto_die): New static.
11355         (gen_type_die_with_usage): Handle C++1y 'auto'.
11356         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
11357         on definition.
11358
11359 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
11360
11361         PR target/59672
11362         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
11363         (SPEC_X32): Likewise.
11364         (SPEC_64): Likewise.
11365         * config/i386/i386.c (ix86_option_override_internal): Turn off
11366         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
11367         for TARGET_16BIT.
11368         (x86_file_start): Output .code16gcc for TARGET_16BIT.
11369         * config/i386/i386.h (TARGET_16BIT): New macro.
11370         (TARGET_16BIT_P): Likewise.
11371         * config/i386/i386.opt: Add m16.
11372         * doc/invoke.texi: Document -m16.
11373
11374 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
11375
11376         PR preprocessor/59935
11377         * input.c (location_get_source_line): Bail out on when line number
11378         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
11379
11380 2014-01-28  Richard Biener  <rguenther@suse.de>
11381
11382         PR tree-optimization/58742
11383         * tree-ssa-forwprop.c (associate_plusminus): Handle
11384         pointer subtraction of the form (T)(P + A) - (T)P.
11385
11386 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11387
11388         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
11389         at const_int_cost.
11390
11391 2014-01-28  Richard Biener  <rguenther@suse.de>
11392
11393         Revert
11394         2014-01-28  Richard Biener  <rguenther@suse.de>
11395
11396         PR rtl-optimization/45364
11397         PR rtl-optimization/59890
11398         * var-tracking.c (local_get_addr_clear_given_value): Handle
11399         already cleared slot.
11400         (val_reset): Handle not allocated local_get_addr_cache.
11401         (vt_find_locations): Use post-order on the inverted CFG.
11402
11403 2014-01-28  Richard Biener  <rguenther@suse.de>
11404
11405         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
11406
11407 2014-01-28  Richard Biener  <rguenther@suse.de>
11408
11409         PR rtl-optimization/45364
11410         PR rtl-optimization/59890
11411         * var-tracking.c (local_get_addr_clear_given_value): Handle
11412         already cleared slot.
11413         (val_reset): Handle not allocated local_get_addr_cache.
11414         (vt_find_locations): Use post-order on the inverted CFG.
11415
11416 2014-01-28  Alan Modra  <amodra@gmail.com>
11417
11418         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
11419         * configure.ac <recursive call for build != host>: Define
11420         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
11421         and LD_FOR_BUILD too.
11422         * configure: Regenerate.
11423
11424 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
11425
11426         * config/i386/i386.c (get_builtin_code_for_version): Separate
11427         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
11428         Broadwell from Haswell.
11429
11430 2014-01-27  Steve Ellcey  <sellcey@mips.com>
11431
11432         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
11433         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
11434         * config/mips/mips.c (mips_option_override): Change setting
11435         of TARGET_DSP.
11436         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
11437         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
11438         Change from Mask to Var.
11439
11440 2014-01-27  Jeff Law  <law@redhat.com>
11441
11442         * ipa-inline.c (inline_small_functions): Fix typo.
11443
11444 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
11445
11446         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
11447         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
11448         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
11449         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
11450         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
11451         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
11452         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
11453         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
11454         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
11455         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
11456         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
11457         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
11458         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
11459         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
11460         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
11461         (_mm512_storeu_epi64): Ditto.
11462         (_mm512_cmpge_epi32_mask): Ditto.
11463         (_mm512_cmpge_epu32_mask): Ditto.
11464         (_mm512_cmpge_epi64_mask): Ditto.
11465         (_mm512_cmpge_epu64_mask): Ditto.
11466         (_mm512_cmple_epi32_mask): Ditto.
11467         (_mm512_cmple_epu32_mask): Ditto.
11468         (_mm512_cmple_epi64_mask): Ditto.
11469         (_mm512_cmple_epu64_mask): Ditto.
11470         (_mm512_cmplt_epi32_mask): Ditto.
11471         (_mm512_cmplt_epu32_mask): Ditto.
11472         (_mm512_cmplt_epi64_mask): Ditto.
11473         (_mm512_cmplt_epu64_mask): Ditto.
11474         (_mm512_cmpneq_epi32_mask): Ditto.
11475         (_mm512_cmpneq_epu32_mask): Ditto.
11476         (_mm512_cmpneq_epi64_mask): Ditto.
11477         (_mm512_cmpneq_epu64_mask): Ditto.
11478         (_mm512_expand_pd): Ditto.
11479         (_mm512_expand_ps): Ditto.
11480         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
11481         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
11482         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
11483         * config/i386/i386.c (ix86_builtins): Add
11484         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
11485         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
11486         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
11487         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
11488         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
11489         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
11490         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
11491         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
11492         IX86_BUILTIN_PMOVUSQW512_MEM.
11493         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
11494         __builtin_ia32_pmovsqd512mem_mask,
11495         __builtin_ia32_pmovqd512mem_mask,
11496         __builtin_ia32_pmovusqw512mem_mask,
11497         __builtin_ia32_pmovsqw512mem_mask,
11498         __builtin_ia32_pmovqw512mem_mask,
11499         __builtin_ia32_pmovusdw512mem_mask,
11500         __builtin_ia32_pmovsdw512mem_mask,
11501         __builtin_ia32_pmovdw512mem_mask,
11502         __builtin_ia32_pmovqb512mem_mask,
11503         __builtin_ia32_pmovusqb512mem_mask,
11504         __builtin_ia32_pmovsqb512mem_mask,
11505         __builtin_ia32_pmovusdb512mem_mask,
11506         __builtin_ia32_pmovsdb512mem_mask,
11507         __builtin_ia32_pmovdb512mem_mask.
11508         (bdesc_args): Add __builtin_ia32_expanddf512,
11509         __builtin_ia32_expandsf512.
11510         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
11511         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
11512         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
11513         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
11514         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
11515         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
11516         (avx512f_<code>v8div16qi2_mask_store): This.
11517         (avx512f_expand<mode>): New.
11518
11519 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
11520
11521         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
11522         New.
11523         (_mm512_mask_prefetch_i64gather_pd): Ditto.
11524         (_mm512_prefetch_i32scatter_pd): Ditto.
11525         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
11526         (_mm512_prefetch_i64scatter_pd): Ditto.
11527         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
11528         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
11529         (_mm512_mask_prefetch_i64gather_ps): Ditto.
11530         (_mm512_prefetch_i32scatter_ps): Ditto.
11531         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
11532         (_mm512_prefetch_i64scatter_ps): Ditto.
11533         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
11534         * config/i386/i386-builtin-types.def: Define
11535         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
11536         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
11537         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
11538         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
11539         IX86_BUILTIN_SCATTERPFQPD.
11540         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
11541         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
11542         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
11543         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
11544         __builtin_ia32_scatterpfqps.
11545         (ix86_expand_builtin): Expand new built-ins.
11546         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
11547         fix memory access data type.
11548         (*avx512pf_gatherpf<mode>_mask): Ditto.
11549         (*avx512pf_gatherpf<mode>): Ditto.
11550         (avx512pf_scatterpf<mode>): Ditto.
11551         (*avx512pf_scatterpf<mode>_mask): Ditto.
11552         (*avx512pf_scatterpf<mode>): Ditto.
11553         (GATHER_SCATTER_SF_MEM_MODE): New.
11554         (avx512pf_gatherpf<mode>df): Ditto.
11555         (*avx512pf_gatherpf<mode>df_mask): Ditto.
11556         (*avx512pf_scatterpf<mode>df): Ditto.
11557
11558 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
11559
11560         PR bootstrap/59934
11561         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
11562         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
11563         reached.
11564
11565 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
11566
11567         * common/config/arm/arm-common.c
11568         (arm_rewrite_mcpu): Handle multiple names.
11569         * config/arm/arm.h
11570         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
11571
11572 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
11573
11574         * gimple-builder.h (create_gimple_tmp): Delete.
11575
11576 2014-01-27  Christian Bruel  <christian.bruel@st.com>
11577
11578         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
11579         words comparisons.
11580
11581 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
11582
11583         * config/pa/pa.md (call): Generate indirect long calls to non-local
11584         functions when outputing 32-bit code.
11585         (call_value): Likewise except for special call to buggy powf function.
11586
11587         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
11588         portable runtime and PIC indirect calls.
11589         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
11590         and PIC call sequences.  Use ldo instead of blr to set return register
11591         in PIC call sequence.
11592
11593 2014-01-25  Walter Lee  <walt@tilera.com>
11594
11595         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
11596         avoid clobbering a live register.
11597
11598 2014-01-25  Walter Lee  <walt@tilera.com>
11599
11600         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
11601         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
11602         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
11603         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
11604
11605 2014-01-25  Walter Lee  <walt@tilera.com>
11606
11607         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
11608         arguments on even registers.
11609         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
11610         STACK_BOUNDARY.
11611         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
11612         (BIGGEST_ALIGNMENT): Ditto.
11613         (BIGGEST_FIELD_ALIGNMENT): Ditto.
11614
11615 2014-01-25  Walter Lee  <walt@tilera.com>
11616
11617         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
11618         insns before bundling.
11619         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
11620
11621 2014-01-25  Walter Lee  <walt@tilera.com>
11622
11623         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
11624         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
11625         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
11626
11627 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
11628
11629         * config/mips/constraints.md (kl): Delete.
11630         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
11631         define expands, using...
11632         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
11633         instructions for MIPS16.
11634         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
11635         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
11636
11637 2014-01-25  Walter Lee  <walt@tilera.com>
11638
11639         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
11640         (clzdi2): Ditto.
11641         (ffsdi2): Ditto.
11642
11643 2014-01-25  Walter Lee  <walt@tilera.com>
11644
11645         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
11646         (TARGET_EXPAND_TO_RTL_HOOK): Define.
11647
11648 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
11649
11650         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
11651         Handle XOR.
11652
11653 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
11654
11655         * print-rtl.c (in_call_function_usage): New var.
11656         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
11657         EXPR_LIST mode as mode and not as reg note name.
11658
11659         PR middle-end/59561
11660         * cfgloopmanip.c (copy_loop_info): If
11661         loop->warned_aggressive_loop_optimizations, make sure
11662         the flag is set in target loop too.
11663
11664 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
11665
11666         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
11667         flag_cilkplus.
11668         * builtins.def: Likewise.
11669         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
11670         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
11671         * ira.c (ira_setup_eliminable_regset): Likewise.
11672         * omp-low.c (gate_expand_omp): Likewise.
11673         (execute_lower_omp): Likewise.
11674         (diagnose_sb_0): Likewise.
11675         (gate_diagnose_omp_blocks): Likewise.
11676         (simd_clone_clauses_extract): Likewise.
11677         (gate): Likewise.
11678
11679 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11680
11681         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
11682         correction for little endian...
11683         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
11684         here.
11685
11686 2014-01-24  Jeff Law  <law@redhat.com>
11687
11688         PR tree-optimization/59919
11689         * tree-vrp.c (find_assert_locations_1): Do not register asserts
11690         for non-returning calls.
11691
11692 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
11693
11694         * common/config/aarch64/aarch64-common.c
11695         (aarch64_rewrite_mcpu): Handle multiple names.
11696         * config/aarch64/aarch64.h
11697         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
11698
11699 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
11700
11701         * input.c (add_file_to_cache_tab): Handle the case where fopen
11702         returns NULL.
11703
11704 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
11705
11706         PR target/59929
11707         * config/i386/i386.md (pushsf splitter): Get stack adjustment
11708         from push operand if code of push isn't PRE_DEC.
11709
11710 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11711
11712         PR target/59909
11713         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
11714         -mquad-memory-atomic.  Update -mquad-memory documentation to say
11715         it is only used for non-atomic loads/stores.
11716
11717         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
11718         -mquad-memory or -mquad-memory-atomic switches.
11719
11720         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
11721         -mquad-memory-atomic to ISA 2.07 support.
11722
11723         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
11724         to separate support of normal quad word memory operations (ldq, stq)
11725         from the atomic quad word memory operations.
11726
11727         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
11728         support to separate non-atomic quad word operations from atomic
11729         quad word operations.  Disable non-atomic quad word operations in
11730         little endian mode so that we don't have to swap words after the
11731         load and before the store.
11732         (quad_load_store_p): Add comment about atomic quad word support.
11733         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
11734         options printed with -mdebug=reg.
11735
11736         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
11737         -mquad-memory-atomic as the test for whether we have quad word
11738         atomic instructions.
11739         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
11740         or -mp8-vector are used, allow byte/half-word atomic operations.
11741
11742         * config/rs6000/sync.md (load_lockedti): Insure that the address
11743         is a proper indexed or indirect address for the lqarx instruction.
11744         On little endian systems, swap the hi/lo registers after the lqarx
11745         instruction.
11746         (load_lockedpti): Use indexed_or_indirect_operand predicate to
11747         insure the address is valid for the lqarx instruction.
11748         (store_conditionalti): Insure that the address is a proper indexed
11749         or indirect address for the stqcrx. instruction.  On little endian
11750         systems, swap the hi/lo registers before doing the stqcrx.
11751         instruction.
11752         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
11753         insure the address is valid for the stqcrx. instruction.
11754
11755         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
11756         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
11757         type of quad memory support is available.
11758
11759 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
11760
11761         PR regression/59915
11762         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
11763         there is a danger of looping.
11764
11765 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
11766
11767         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11768         force flag_ira_loop_pressure if set via command line.
11769
11770 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
11771
11772         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
11773         (ashr_simd): New builtin handling DI mode.
11774         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
11775         (aarch64_sshr_simddi): New match pattern.
11776         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
11777         (vshrd_n_s64): Likewise.
11778         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
11779
11780 2014-01-23  Nick Clifton  <nickc@redhat.com>
11781
11782         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
11783         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
11784         favour of mcu specific scripts.
11785         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
11786         430x multilibs.
11787
11788 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
11789             Alex Velenko  <Alex.Velenko@arm.com>
11790
11791         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
11792         (vaddv_s16): Likewise.
11793         (vaddv_s32): Likewise.
11794         (vaddv_u8): Likewise.
11795         (vaddv_u16): Likewise.
11796         (vaddv_u32): Likewise.
11797         (vaddvq_s8): Likewise.
11798         (vaddvq_s16): Likewise.
11799         (vaddvq_s32): Likewise.
11800         (vaddvq_s64): Likewise.
11801         (vaddvq_u8): Likewise.
11802         (vaddvq_u16): Likewise.
11803         (vaddvq_u32): Likewise.
11804         (vaddvq_u64): Likewise.
11805         (vaddv_f32): Likewise.
11806         (vaddvq_f32): Likewise.
11807         (vaddvq_f64): Likewise.
11808         (vmaxv_f32): Likewise.
11809         (vmaxv_s8): Likewise.
11810         (vmaxv_s16): Likewise.
11811         (vmaxv_s32): Likewise.
11812         (vmaxv_u8): Likewise.
11813         (vmaxv_u16): Likewise.
11814         (vmaxv_u32): Likewise.
11815         (vmaxvq_f32): Likewise.
11816         (vmaxvq_f64): Likewise.
11817         (vmaxvq_s8): Likewise.
11818         (vmaxvq_s16): Likewise.
11819         (vmaxvq_s32): Likewise.
11820         (vmaxvq_u8): Likewise.
11821         (vmaxvq_u16): Likewise.
11822         (vmaxvq_u32): Likewise.
11823         (vmaxnmv_f32): Likewise.
11824         (vmaxnmvq_f32): Likewise.
11825         (vmaxnmvq_f64): Likewise.
11826         (vminv_f32): Likewise.
11827         (vminv_s8): Likewise.
11828         (vminv_s16): Likewise.
11829         (vminv_s32): Likewise.
11830         (vminv_u8): Likewise.
11831         (vminv_u16): Likewise.
11832         (vminv_u32): Likewise.
11833         (vminvq_f32): Likewise.
11834         (vminvq_f64): Likewise.
11835         (vminvq_s8): Likewise.
11836         (vminvq_s16): Likewise.
11837         (vminvq_s32): Likewise.
11838         (vminvq_u8): Likewise.
11839         (vminvq_u16): Likewise.
11840         (vminvq_u32): Likewise.
11841         (vminnmv_f32): Likewise.
11842         (vminnmvq_f32): Likewise.
11843         (vminnmvq_f64): Likewise.
11844
11845 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
11846
11847         * config/aarch64/aarch64-simd.md
11848         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
11849         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
11850         (*aarch64_mul3_elt<mode>): Likewise.
11851         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
11852         (*aarch64_mul3_elt_to_64v2df): Likewise.
11853         (*aarch64_mla_elt<mode>): Likewise.
11854         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
11855         (*aarch64_mls_elt<mode>): Likewise.
11856         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
11857         (*aarch64_fma4_elt<mode>): Likewise.
11858         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
11859         (*aarch64_fma4_elt_to_64v2df): Likewise.
11860         (*aarch64_fnma4_elt<mode>): Likewise.
11861         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
11862         (*aarch64_fnma4_elt_to_64v2df): Likewise.
11863         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
11864         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
11865         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
11866         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
11867         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
11868         (aarch64_sqdmull_lane<mode>_internal): Likewise.
11869         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
11870
11871 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
11872
11873         * config/aarch64/aarch64-simd.md
11874         (aarch64_be_checked_get_lane<mode>): New define_expand.
11875         * config/aarch64/aarch64-simd-builtins.def
11876         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
11877         New builtin definition.
11878         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
11879         Use new safe be builtin.
11880
11881 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
11882
11883         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
11884         New define_insn.
11885         (aarch64_be_st1<mode>): Likewise.
11886         (aarch_ld1<VALL:mode>): Define_expand modified.
11887         (aarch_st1<VALL:mode>): Likewise.
11888         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
11889         (UNSPEC_ST1): Likewise.
11890
11891 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
11892
11893         * config/microblaze/microblaze.md: Add trap insn and attribute
11894
11895 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
11896
11897         PR preprocessor/58580
11898         * input.h (location_get_source_line): Take an additional line_size
11899         parameter.
11900         (void diagnostics_file_cache_fini): Declare new function.
11901         * input.c (struct fcache): New type.
11902         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
11903         New static constants.
11904         (diagnostic_file_cache_init, total_lines_num)
11905         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
11906         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
11907         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
11908         (get_next_line, read_next_line, goto_next_line, read_line_num):
11909         New static function definitions.
11910         (diagnostic_file_cache_fini): New function.
11911         (location_get_source_line): Take an additional output line_len
11912         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
11913         read_line_num.
11914         * diagnostic.c (diagnostic_finish): Call
11915         diagnostic_file_cache_fini.
11916         (adjust_line): Take an additional input parameter for the length
11917         of the line, rather than calculating it with strlen.
11918         (diagnostic_show_locus): Adjust the use of
11919         location_get_source_line and adjust_line with respect to their new
11920         signature.  While displaying a line now, do not stop at the first
11921         null byte.  Rather, display the zero byte as a space and keep
11922         going until we reach the size of the line.
11923         * Makefile.in: Add vec.o to OBJS-libcommon
11924
11925 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11926             Ilya Tocar  <ilya.tocar@intel.com>
11927
11928         * config/i386/avx512fintrin.h (_mm512_kmov): New.
11929         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
11930         (__builtin_ia32_kmov16): Ditto.
11931         * config/i386/i386.md (UNSPEC_KMOV): New.
11932         (kmovw): Ditto.
11933
11934 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11935
11936         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
11937         (_mm512_storeu_si512): Ditto.
11938
11939 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
11940
11941         PR target/52125
11942         * rtl.h (get_referenced_operands): Declare.
11943         * recog.c (get_referenced_operands): New function.
11944         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
11945         operands have been referenced when recording LO_SUM references.
11946
11947 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
11948
11949         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
11950
11951 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
11952
11953         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
11954         Enable for generic and recent AMD targets.
11955
11956 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
11957
11958         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
11959         ARG_SIZE note when adjustment was eliminated.
11960
11961 2014-01-22  Jeff Law  <law@redhat.com>
11962
11963         PR tree-optimization/59597
11964         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
11965         in file.  Accept new argument REGISTERING and use it to modify
11966         dump output appropriately.
11967         (register_jump_thread): Corresponding changes.
11968         (mark_threaded_blocks): Reinstate code to cancel unprofitable
11969         thread paths involving joiner blocks.  Add code to dump cancelled
11970         jump threading paths.
11971
11972 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
11973
11974         PR rtl-optimization/59477
11975         * lra-constraints.c (inherit_in_ebb): Process call for living hard
11976         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
11977
11978 2014-01-22  Tom Tromey  <tromey@redhat.com>
11979
11980         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
11981         PARAMS.
11982         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
11983
11984 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11985
11986         PR rtl-optimization/59896
11987         * lra-constraints.c (process_alt_operands): Check unused note for
11988         matched operands of insn with no output reloads.
11989
11990 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
11991
11992         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
11993         (mips_move_from_gpr_cost): Likewise.
11994
11995 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11996
11997         PR rtl-optimization/59858
11998         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
11999         ira_class_hard_regs_num.
12000         (process_alt_operands): Increase reject for dying matched operand.
12001
12002 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
12003
12004         PR target/59003
12005         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
12006         smaller than size, perform several stores or loads and stores
12007         at dst + count - size to store or copy all of size bytes, rather
12008         than just last modesize bytes.
12009
12010 2014-01-20  DJ Delorie  <dj@redhat.com>
12011
12012         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
12013         that CLOBBERs are REGs before propogating their values.
12014
12015 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
12016
12017         PR middle-end/59789
12018         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
12019         (cgraph_inline_failed_type): New function.
12020         * cgraph.h (DEFCIFCODE): Add type.
12021         (cgraph_inline_failed_type_t): New enum.
12022         (cgraph_inline_failed_type): New prototype.
12023         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
12024         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
12025         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
12026         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
12027         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
12028         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
12029         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
12030         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
12031         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
12032         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
12033         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
12034         OPTIMIZATION_MISMATCH.
12035         * tree-inline.c (expand_call_inline): Emit errors during
12036         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
12037
12038 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
12039
12040         PR target/59685
12041         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
12042         mode attribute in insn output.
12043
12044 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
12045
12046         * output.h (output_constant): Delete.
12047         * varasm.c (output_constant): Make private.
12048
12049 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
12050
12051         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
12052
12053 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
12054
12055         PR middle-end/59860
12056         * tree.h (fold_builtin_strcat): New prototype.
12057         * builtins.c (fold_builtin_strcat): No longer static.  Add len
12058         argument, if non-NULL, don't call c_strlen.  Optimize
12059         directly into __builtin_memcpy instead of __builtin_strcpy.
12060         (fold_builtin_2): Adjust fold_builtin_strcat caller.
12061         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
12062
12063 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
12064
12065         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
12066         for SImode_address_operand operands, having only a REG argument.
12067
12068 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12069
12070         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
12071         loader name using mbig-endian.
12072         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
12073
12074 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
12075
12076         * doc/invoke.texi (-march): Clarify documentation for AArch64.
12077         (-mtune): Likewise.
12078         (-mcpu): Likewise.
12079
12080 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
12081
12082         * config/aarch64/aarch64-protos.h
12083         (aarch64_cannot_change_mode_class_ptr): Declare.
12084         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
12085         aarch64_cannot_change_mode_class_ptr): New.
12086         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
12087         backend hook aarch64_cannot_change_mode_class.
12088
12089 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
12090
12091         * common/config/aarch64/aarch64-common.c
12092         (aarch64_handle_option): Don't handle any option order logic here.
12093         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
12094         selected_cpu, warn on architecture version mismatch.
12095         (aarch64_override_options): Fix parsing order for option strings.
12096
12097 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12098             Iain Sandoe  <iain@codesourcery.com>
12099
12100         PR bootstrap/59496
12101         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
12102         warning.  Amend comment to reflect current functionality.
12103
12104 2014-01-20  Richard Biener  <rguenther@suse.de>
12105
12106         PR middle-end/59860
12107         * builtins.c (fold_builtin_strcat): Remove case better handled
12108         by tree-ssa-strlen.c.
12109
12110 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
12111
12112         * config/aarch64/aarch64.opt
12113         (mcpu, march, mtune): Make case-insensitive.
12114
12115 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
12116
12117         PR target/59880
12118         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
12119         if operands[1] is a REG or ZERO_EXTEND of a REG.
12120
12121 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
12122
12123         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
12124
12125 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
12126
12127         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
12128         long non-pic millicode calls.
12129
12130 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12131
12132         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
12133
12134 2014-01-19  Kito Cheng  <kito@0xlab.org>
12135
12136         * builtins.c (expand_movstr): Check movstr expand done or fail.
12137
12138 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
12139             H.J. Lu  <hongjiu.lu@intel.com>
12140
12141         PR target/59379
12142         * config/i386/i386.md (*lea<mode>): Zero-extend return register
12143         to DImode for zero-extended addresses.
12144
12145 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
12146
12147         PR rtl-optimization/57763
12148         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
12149         on the new indirect jump_insn and increment LABEL_NUSES (label).
12150
12151 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
12152
12153         PR bootstrap/59580
12154         PR bootstrap/59583
12155         * config.gcc (x86_archs): New variable.
12156         (x86_64_archs): Likewise.
12157         (x86_cpus): Likewise.
12158         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
12159         --with-arch/--with-cpu= options.
12160         Support --with-arch=/--with-cpu={nehalem,westmere,
12161         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
12162
12163 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
12164
12165         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
12166         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
12167
12168 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
12169
12170         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
12171
12172 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
12173
12174         PR target/58944
12175         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
12176         clear cpp_get_options (parse_in)->warn_unused_macros for
12177         ix86_target_macros_internal with cpp_define.
12178
12179 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
12180
12181         * jump.c (delete_related_insns): Keep (use (insn))s.
12182         * reorg.c (redundant_insn): Check for barriers too.
12183
12184 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
12185
12186         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
12187
12188 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
12189
12190         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
12191         call to $$dyncall when TARGET_LONG_CALLS is true.
12192
12193 2014-01-17  Jeff Law  <law@redhat.com>
12194
12195         * ree.c (combine_set_extension): Temporarily disable test for
12196         changing number of hard registers.
12197
12198 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
12199
12200         PR middle-end/58125
12201         * ipa-inline-analysis.c (inline_free_summary):
12202         Do not free summary of aliases.
12203
12204 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
12205
12206         PR middle-end/59706
12207         * gimplify.c (gimplify_expr): Use create_tmp_var
12208         instead of create_tmp_var_raw.  If cond doesn't have
12209         integral type, don't add the IFN_ANNOTATE builtin at all.
12210
12211 2014-01-17  Martin Jambor  <mjambor@suse.cz>
12212
12213         PR ipa/59736
12214         * ipa-cp.c (prev_edge_clone): New variable.
12215         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
12216         Also resize prev_edge_clone vector.
12217         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
12218         (ipcp_edge_removal_hook): New function.
12219         (ipcp_driver): Register ipcp_edge_removal_hook.
12220
12221 2014-01-17  Andrew Pinski  <apinski@cavium.com>
12222             Steve Ellcey  <sellcey@mips.com>
12223
12224         PR target/59462
12225         * config/mips/mips.c (mips_print_operand): Check operand mode instead
12226         of operator mode.
12227
12228 2014-01-17  Jeff Law  <law@redhat.com>
12229
12230         PR middle-end/57904
12231         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
12232         so that pass_ccp runs first.
12233
12234 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
12235
12236         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
12237         (ix86_adjust_cost): Use !TARGET_XXX.
12238         (do_reorder_for_imul): Likewise.
12239         (swap_top_of_ready_list): Likewise.
12240         (ix86_sched_reorder): Likewise.
12241
12242 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
12243
12244         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
12245         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
12246         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
12247         (intel_memset): New.  Duplicate slm_memset.
12248         (intel_cost): New.  Duplicate slm_cost.
12249         (m_INTEL): New macro.
12250         (processor_target_table): Add "intel".
12251         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
12252         with PROCESSOR_INTEL for "intel".
12253         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
12254         PROCESSOR_SILVERMONT.
12255         (ix86_issue_rate): Likewise.
12256         (ix86_adjust_cost): Likewise.
12257         (ia32_multipass_dfa_lookahead): Likewise.
12258         (swap_top_of_ready_list): Likewise.
12259         (ix86_sched_reorder): Likewise.
12260         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
12261         instead of TARGET_OPT_AGU.
12262         * config/i386/i386.h (TARGET_INTEL): New.
12263         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
12264         (processor_type): Add PROCESSOR_INTEL.
12265         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
12266         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
12267
12268 2014-01-17  Marek Polacek  <polacek@redhat.com>
12269
12270         PR c/58346
12271         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
12272         size is zero.
12273
12274 2014-01-17  Richard Biener  <rguenther@suse.de>
12275
12276         PR tree-optimization/46590
12277         * opts.c (default_options_table): Add entries for
12278         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
12279         all enabled at -O1 but not for -Og.
12280         * common.opt (fbranch-count-reg): Remove Init(1).
12281         (fmove-loop-invariants): Likewise.
12282         (ftree-pta): Likewise.
12283
12284 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
12285
12286         * config/i386/i386.c (ix86_data_alignment): For compatibility with
12287         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
12288         decls to at least the GCC 4.8 used alignments.
12289
12290         PR fortran/59440
12291         * tree-nested.c (convert_nonlocal_reference_stmt,
12292         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
12293         of GIMPLE_BIND stmts, adjust associated decls.
12294
12295 2014-01-17  Richard Biener  <rguenther@suse.de>
12296
12297         PR tree-optimization/46590
12298         * vec.h (vec<>::bseach): New member function implementing
12299         binary search according to C89 bsearch.
12300         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
12301         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
12302         bitmap pointer again.  Make accesses_in_loop a flat array.
12303         (mem_ref_obstack): New global.
12304         (outermost_indep_loop): Adjust for mem_ref->stored changes.
12305         (mark_ref_stored): Likewise.
12306         (ref_indep_loop_p_2): Likewise.
12307         (set_ref_stored_in_loop): New helper function.
12308         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
12309         (memref_free): Adjust.
12310         (record_mem_ref_loc): Simplify.
12311         (gather_mem_refs_stmt): Adjust.
12312         (sort_locs_in_loop_postorder_cmp): New function.
12313         (analyze_memory_references): Sort accesses_in_loop after
12314         loop postorder number.
12315         (find_ref_loc_in_loop_cmp): New function.
12316         (for_all_locs_in_loop): Find relevant cluster of locs in
12317         accesses_in_loop and iterate without recursion.
12318         (execute_sm): Avoid uninit warning.
12319         (struct ref_always_accessed): Simplify.
12320         (ref_always_accessed::operator ()): Likewise.
12321         (ref_always_accessed_p): Likewise.
12322         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
12323         loop postorder numbers here.
12324         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
12325         numbers.
12326
12327 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
12328
12329         PR c++/57945
12330         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
12331         on decls for which assemble_alias has been called.
12332
12333 2014-01-17  Nick Clifton  <nickc@redhat.com>
12334
12335         * config/msp430/msp430.opt: (mcpu): New option.
12336         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
12337         (msp430_option_override): Parse target_cpu.  If the MCU name
12338         matches a generic string, clear target_mcu.
12339         (msp430_attr): Allow numeric interrupt values up to 63.
12340         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
12341         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
12342         option.
12343         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
12344         Add mcpu matches.
12345         * config/msp430/msp430.md (popm): Use %J rather than %I.
12346         (addsi3): Use msp430_nonimmediate_operand for operand 2.
12347         (addhi_cy_i): Use immediate_operand for operand 2.
12348         * doc/invoke.texi: Document -mcpu option.
12349
12350 2014-01-17  Richard Biener  <rguenther@suse.de>
12351
12352         PR rtl-optimization/38518
12353         * df.h (df_analyze_loop): Declare.
12354         * df-core.c: Include cfgloop.h.
12355         (df_analyze_1): Split out main part of df_analyze.
12356         (df_analyze): Adjust.
12357         (loop_inverted_post_order_compute): New function.
12358         (loop_post_order_compute): Likewise.
12359         (df_analyze_loop): New function avoiding whole-function
12360         postorder computes.
12361         * loop-invariant.c (find_defs): Use df_analyze_loop.
12362         (find_invariants): Adjust.
12363         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
12364
12365 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
12366
12367         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
12368         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
12369
12370 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
12371
12372         * ipa-ref.c (ipa_remove_stmt_references): Fix references
12373         traversal when removing references.
12374
12375 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
12376
12377         PR ipa/59775
12378         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
12379
12380 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
12381
12382         PR middle-end/56791
12383         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
12384         pushing a reload for an autoinc when we had previously reloaded an
12385         inner part of the address.
12386
12387 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
12388
12389         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
12390         field.
12391         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
12392         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
12393         when not giving up or versioning for alias only because of
12394         loop->safelen.
12395         (vect_analyze_data_ref_dependences): Set to true.
12396         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
12397         is a GIMPLE_PHI.
12398         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
12399         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
12400         to the condition.
12401
12402         PR middle-end/58344
12403         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
12404
12405         PR target/59839
12406         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
12407         operand 0 predicate for gathers, use a new pseudo as subtarget.
12408
12409 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
12410
12411         PR middle-end/59609
12412         * lra-constraints.c (process_alt_operands): Add printing debug info.
12413         Check absence of input/output reloads for matched operands too.
12414
12415 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
12416
12417         PR rtl-optimization/59835
12418         * ira.c (ira_init_register_move_cost): Increase cost for
12419         impossible modes.
12420
12421 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
12422
12423         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
12424
12425 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
12426
12427         PR target/59780
12428         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
12429         non-register objects.  Use gen_(high/low)part more consistently.
12430         Fix assertions.
12431
12432 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
12433
12434         PR target/59844
12435         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
12436         endian support, remove tests for WORDS_BIG_ENDIAN.
12437         (p8_mfvsrd_3_<mode>): Likewise.
12438         (reload_gpr_from_vsx<mode>): Likewise.
12439         (reload_gpr_from_vsxsf): Likewise.
12440         (p8_mfvsrd_4_disf): Likewise.
12441
12442 2014-01-16  Richard Biener  <rguenther@suse.de>
12443
12444         PR rtl-optimization/46590
12445         * lcm.c (compute_antinout_edge): Use postorder iteration.
12446         (compute_laterin): Use inverted postorder iteration.
12447
12448 2014-01-16  Nick Clifton  <nickc@redhat.com>
12449
12450         PR middle-end/28865
12451         * varasm.c (output_constant): Return the number of bytes actually
12452         emitted.
12453         (output_constructor_array_range): Update the field size with the
12454         number of bytes emitted by output_constant.
12455         (output_constructor_regular_field): Likewise.  Also do not
12456         complain if the total number of bytes emitted is now greater
12457         than the expected fieldpos.
12458         * output.h (output_constant): Update prototype and descriptive comment.
12459
12460 2014-01-16  Marek Polacek  <polacek@redhat.com>
12461
12462         PR middle-end/59827
12463         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
12464         it is error_mark_node.
12465
12466 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
12467
12468         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
12469         VALID_AVX256_REG_OR_OI_MODE.
12470
12471 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
12472
12473         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
12474         current procedure should be profiled.
12475
12476 2014-01-15  Andrew Pinski  <apinski@cavium.com>
12477
12478         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
12479         of moving from/to the STACK_REG register class.
12480
12481 2014-01-15  Richard Henderson  <rth@redhat.com>
12482
12483         PR debug/54694
12484         * reginfo.c (global_regs_decl): Globalize.
12485         * rtl.h (global_regs_decl): Declare.
12486         * ira.c (do_reload): Diagnose frame_pointer_needed and it
12487         reserved via global_regs.
12488
12489 2014-01-15  Teresa Johnson  <tejohnson@google.com>
12490
12491         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
12492
12493 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
12494
12495         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
12496         and vmulosh rather than call gen_vec_widen_smult_*.
12497         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
12498         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
12499         (vec_widen_smult_even_v16qi): Likewise.
12500         (vec_widen_umult_even_v8hi): Likewise.
12501         (vec_widen_smult_even_v8hi): Likewise.
12502         (vec_widen_umult_odd_v16qi): Likewise.
12503         (vec_widen_smult_odd_v16qi): Likewise.
12504         (vec_widen_umult_odd_v8hi): Likewise.
12505         (vec_widen_smult_odd_v8hi): Likewise.
12506         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
12507         vmuloub rather than call gen_vec_widen_umult_*.
12508         (vec_widen_umult_lo_v16qi): Likewise.
12509         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
12510         vmulosb rather than call gen_vec_widen_smult_*.
12511         (vec_widen_smult_lo_v16qi): Likewise.
12512         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
12513         rather than call gen_vec_widen_umult_*.
12514         (vec_widen_umult_lo_v8hi): Likewise.
12515         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
12516         rather than call gen_vec_widen_smult_*.
12517         (vec_widen_smult_lo_v8hi): Likewise.
12518
12519 2014-01-15  Jeff Law  <law@redhat.com>
12520
12521         PR tree-optimization/59747
12522         * ree.c (find_and_remove_re): Properly handle case where a second
12523         eliminated extension requires widening a copy created for elimination
12524         of a prior extension.
12525         (combine_set_extension): Ensure that the number of hard regs needed
12526         for a destination register does not change when we widen it.
12527
12528 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12529
12530         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
12531         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
12532         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
12533         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
12534         (avr-*-rtems*): Likewise.
12535         (bfin*-rtems*): Likewise.
12536         (moxie-*-rtems*): Likewise.
12537         (h8300-*-rtems*): Likewise.
12538         (i[34567]86-*-rtems*): Likewise.
12539         (lm32-*-rtems*): Likewise.
12540         (m32r-*-rtems*): Likewise.
12541         (m68k-*-rtems*): Likewise.
12542         (microblaze*-*-rtems*): Likewise.
12543         (mips*-*-rtems*): Likewise.
12544         (powerpc-*-rtems*): Likewise.
12545         (sh-*-rtems*): Likewise.
12546         (sparc-*-rtems*): Likewise.
12547         (sparc64-*-rtems*): Likewise.
12548         (v850-*-rtems*): Likewise.
12549         (m32c-*-rtems*): Likewise.
12550
12551 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
12552
12553         PR rtl-optimization/59511
12554         * ira.c (ira_init_register_move_cost): Use memory costs for some
12555         cases of register move cost calculations.
12556         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
12557         instead of BB frequency.
12558         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
12559         * lra-assigns.c (find_hard_regno_for): Ditto.
12560
12561 2014-01-15  Richard Biener  <rguenther@suse.de>
12562
12563         PR tree-optimization/59822
12564         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
12565         (vectorizable_load): Use it to hoist defs of uses of invariant
12566         loads out of the loop.
12567
12568 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
12569             Kugan Vivekanandarajah  <kuganv@linaro.org>
12570
12571         PR target/59695
12572         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
12573         truncation.
12574
12575 2014-01-15  Richard Biener  <rguenther@suse.de>
12576
12577         PR rtl-optimization/59802
12578         * lcm.c (compute_available): Use inverted postorder to seed
12579         the initial worklist.
12580
12581 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12582
12583         PR target/59803
12584         * config/s390/s390.c (s390_preferred_reload_class): Don't return
12585         ADDR_REGS for invalid symrefs in non-PIC code.
12586
12587 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
12588
12589         PR other/58712
12590         * builtins.c (determine_block_size): Initialize *probable_max_size
12591         even if len_rtx is CONST_INT.
12592
12593 2014-01-14  Andrew Pinski  <apinski@cavium.com>
12594
12595         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
12596         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
12597         (cortexa53_tunings): Likewise.
12598         (aarch64_sched_issue_rate): New function.
12599         (TARGET_SCHED_ISSUE_RATE): Define.
12600
12601 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
12602
12603         * ira-costs.c (find_costs_and_classes): Add missed
12604         ira_init_register_move_cost_if_necessary.
12605
12606 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
12607
12608         PR target/59787
12609         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
12610
12611 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
12612
12613         PR target/59794
12614         * config/i386/i386.c (type_natural_mode): Add a bool parameter
12615         to indicate if type is used for function return value.  Warn ABI
12616         change if the vector mode isn't available for function return value.
12617         (ix86_function_arg_advance): Pass false to type_natural_mode.
12618         (ix86_function_arg): Likewise.
12619         (ix86_gimplify_va_arg): Likewise.
12620         (function_arg_32): Don't warn ABI change.
12621         (ix86_function_value): Pass true to type_natural_mode.
12622         (ix86_return_in_memory): Likewise.
12623         (ix86_struct_value_rtx): Removed.
12624         (TARGET_STRUCT_VALUE_RTX): Likewise.
12625
12626 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
12627
12628         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
12629         converting a conditional jump into a conditional return.
12630
12631 2014-01-14  Richard Biener  <rguenther@suse.de>
12632
12633         PR tree-optimization/58921
12634         PR tree-optimization/59006
12635         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
12636         hoisting invariant stmts.
12637         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
12638         invariant loads on the preheader edge if possible.
12639
12640 2014-01-14  Joey Ye  <joey.ye@arm.com>
12641
12642         * doc/plugin.texi (Building GCC plugins): Update to C++.
12643
12644 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
12645
12646         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
12647         (_mm_rcp28_round_ss): Ditto.
12648         (_mm_rsqrt28_round_sd): Ditto.
12649         (_mm_rsqrt28_round_ss): Ditto.
12650         (_mm_rcp28_sd): Ditto.
12651         (_mm_rcp28_ss): Ditto.
12652         (_mm_rsqrt28_sd): Ditto.
12653         (_mm_rsqrt28_ss): Ditto.
12654         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
12655         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
12656         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
12657         (IX86_BUILTIN_RCP28SD): Ditto.
12658         (IX86_BUILTIN_RCP28SS): Ditto.
12659         (IX86_BUILTIN_RSQRT28SD): Ditto.
12660         (IX86_BUILTIN_RSQRT28SS): Ditto.
12661         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
12662         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
12663         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
12664         (ix86_expand_special_args_builtin): Expand new FTYPE.
12665         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
12666         (srcp14<mode>): Make insn unary.
12667         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
12668         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
12669         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
12670         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
12671         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
12672         Fix rounding: make it SAE only.
12673         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
12674         Ditto.
12675         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
12676         Ditto.
12677         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
12678         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
12679         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
12680         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
12681         (round_saeonly_mask_scalar_operand4): Ditto.
12682         (round_saeonly_mask_scalar_op3): Ditto.
12683         (round_saeonly_mask_scalar_op4): Ditto.
12684
12685 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12686
12687         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12688         Implement -maltivec=be for vec_insert and vec_extract.
12689
12690 2014-01-10  DJ Delorie  <dj@redhat.com>
12691
12692         * config/msp430/msp430.md (call_internal): Don't allow memory
12693         references with SP as the base register.
12694         (call_value_internal): Likewise.
12695         * config/msp430/constraints.md (Yc): New.  For memory references
12696         that don't use SP as a base register.
12697
12698         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
12699         "an integer without a # prefix"
12700         * config/msp430/msp430.md (epilogue_helper): Use it.
12701
12702 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
12703
12704         PR target/59617
12705         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
12706         AVX512F gather builtins.
12707         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
12708         on gather decls with INTEGER_TYPE masktype.
12709         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
12710         directly into the builtin rather than hoisting it before loop.
12711
12712         PR tree-optimization/59387
12713         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
12714         (scev_const_prop): If folded_casts and type has undefined overflow,
12715         use force_gimple_operand instead of force_gimple_operand_gsi and
12716         for each added stmt if it is assign with
12717         arith_code_with_undefined_signed_overflow, call
12718         rewrite_to_defined_overflow.
12719         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
12720         gimple-fold.h instead.
12721         (arith_code_with_undefined_signed_overflow,
12722         rewrite_to_defined_overflow): Moved to ...
12723         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
12724         rewrite_to_defined_overflow): ... here.  No longer static.
12725         Include gimplify-me.h.
12726         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
12727         rewrite_to_defined_overflow): New prototypes.
12728
12729 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12730
12731         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
12732
12733 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
12734
12735         * builtins.c (get_object_alignment_2): Minor tweak.
12736         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
12737
12738 2014-01-13  Christian Bruel  <christian.bruel@st.com>
12739
12740         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
12741         optimized non constant lengths.
12742
12743 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
12744
12745         PR libgomp/59194
12746         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
12747         load as __atomic_load_N if possible.
12748
12749 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
12750
12751         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
12752         target parameter.
12753         (rs6000_expand_builtin): Adjust call.
12754
12755 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
12756
12757         PR target/58115
12758         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
12759         * config/rs6000/rs6000.c: Include target-globals.h.
12760         (rs6000_set_current_function): Instead of doing target_reinit
12761         unconditionally, use save_target_globals_default_opts and
12762         restore_target_globals.
12763
12764         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
12765         FPSCR.
12766         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
12767         (rs6000_expand_builtin): Handle mffs and mtfsf.
12768         (rs6000_init_builtins): Define mffs and mtfsf.
12769         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
12770         (rs6000_mffs): New pattern.
12771         (rs6000_mtfsf): New pattern.
12772
12773 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
12774
12775         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
12776         Start narrowing with START.  Apply candidate-use pair
12777         and check overall cost in narrowing.
12778         (iv_ca_prune): Pass new argument.
12779
12780 2014-01-10  Jeff Law  <law@redhat.com>
12781
12782         PR middle-end/59743
12783         * ree.c (combine_reaching_defs): Ensure the defining statement
12784         occurs before the extension when optimizing extensions with
12785         different source and destination hard registers.
12786
12787 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
12788
12789         PR ipa/58585
12790         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
12791         vtables into the type inheritance graph.
12792
12793 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
12794
12795         PR rtl-optimization/59754
12796         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
12797         modes in the REGNO != REGNO case.
12798
12799 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12800
12801         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
12802
12803 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
12804
12805         PR tree-optimization/59745
12806         * tree-predcom.c (tree_predictive_commoning_loop): Call
12807         free_affine_expand_cache if giving up because components is NULL.
12808
12809         * target-globals.c (save_target_globals): Allocate < 4KB structs using
12810         GC in payload of target_globals struct instead of allocating them on
12811         the heap and the larger structs separately using GC.
12812         * target-globals.h (struct target_globals): Make regs, hard_regs,
12813         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
12814         of GTY((skip)) and change type to void *.
12815         (reset_target_globals): Cast loads from those fields to corresponding
12816         types.
12817
12818 2014-01-10  Steve Ellcey  <sellcey@mips.com>
12819
12820         PR plugins/59335
12821         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
12822         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
12823         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
12824
12825 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
12826
12827         PR target/59744
12828         * aarch64-modes.def (CC_Zmode): New flags mode.
12829         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
12830         represents an equality.
12831         (aarch64_get_condition_code): Handle CC_Zmode.
12832         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
12833
12834 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12835
12836         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
12837         extraction in good case.
12838
12839 2014-01-10  Richard Biener  <rguenther@suse.de>
12840
12841         PR tree-optimization/59374
12842         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
12843         checking after SLP discovery.  Mark stmts not participating
12844         in any SLP instance properly.
12845
12846 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12847
12848         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
12849         when handling a SET rtx.
12850
12851 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12852
12853         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
12854         (cortex-a57): Likewise.
12855         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
12856
12857 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12858
12859         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
12860         non-iwmmxt builtins.
12861
12862 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
12863
12864         PR ipa/58252
12865         PR ipa/59226
12866         * ipa-devirt.c record_target_from_binfo): Take as argument
12867         stack of binfos and lookup matching one for virtual inheritance.
12868         (possible_polymorphic_call_targets_1): Update.
12869
12870 2014-01-10  Huacai Chen  <chenhc@lemote.com>
12871
12872         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
12873         kernel strings for Loongson-2E/2F/3A.
12874
12875 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
12876
12877         PR middle-end/59670
12878         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
12879         is_gimple_call before calling gimple_call_internal_p.
12880
12881 2014-01-09  Steve Ellcey  <sellcey@mips.com>
12882
12883         * Makefile.in (TREE_FLOW_H): Remove.
12884         (TREE_SSA_H): Add file names from tree-flow.h.
12885         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
12886         * tree.h: Remove tree-flow.h reference.
12887         * hash-table.h: Remove tree-flow.h reference.
12888         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
12889         reference with tree-ssa-loop.h.
12890
12891 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12892
12893         * doc/invoke.texi: Add -maltivec={be,le} options, and document
12894         default element-order behavior for -maltivec.
12895         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
12896         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
12897         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
12898         when targeting big endian, at least for now.
12899         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
12900
12901 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
12902
12903         PR middle-end/47735
12904         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
12905         var satisfies use_register_for_decl, just take into account type
12906         alignment, rather than decl alignment.
12907
12908         PR tree-optimization/59622
12909         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
12910         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
12911         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
12912         Don't devirtualize for inplace at all.  For targets.length () == 1,
12913         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
12914
12915 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
12916
12917         * config/i386/i386.md (cpu): Remove the unused btver1.
12918
12919 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
12920
12921         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
12922
12923 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
12924
12925         PR target/58115
12926         * tree-core.h (struct target_globals): New forward declaration.
12927         (struct tree_target_option): Add globals field.
12928         * tree.h (TREE_TARGET_GLOBALS): Define.
12929         (prepare_target_option_nodes_for_pch): New prototype.
12930         * target-globals.h (struct target_globals): Define even if
12931         !SWITCHABLE_TARGET.
12932         * tree.c (prepare_target_option_node_for_pch,
12933         prepare_target_option_nodes_for_pch): New functions.
12934         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
12935         * config/i386/i386.c: Include target-globals.h.
12936         (ix86_set_current_function): Instead of doing target_reinit
12937         unconditionally, use save_target_globals_default_opts and
12938         restore_target_globals.
12939
12940 2014-01-09  Richard Biener  <rguenther@suse.de>
12941
12942         PR tree-optimization/59715
12943         * tree-cfg.h (split_critical_edges): Declare.
12944         * tree-cfg.c (split_critical_edges): Export.
12945         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
12946
12947 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
12948
12949         * cfgexpand.c (expand_stack_vars): Optionally disable
12950         asan stack protection.
12951         (expand_used_vars): Likewise.
12952         (partition_stack_vars): Likewise.
12953         * asan.c (asan_emit_stack_protection): Optionally disable
12954         after return stack usage.
12955         (instrument_derefs): Optionally disable memory access instrumentation.
12956         (instrument_builtin_call): Likewise.
12957         (instrument_strlen_call): Likewise.
12958         (asan_protect_global): Optionally disable global variables protection.
12959         * doc/invoke.texi: Added doc for new options.
12960         * params.def: Added new options.
12961         * params.h: Likewise.
12962
12963 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
12964
12965         PR rtl-optimization/59724
12966         * ifcvt.c (cond_exec_process_if_block): Don't call
12967         flow_find_head_matching_sequence with 0 longest_match.
12968         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
12969         non-active insns if !stop_after.
12970         (try_head_merge_bb): Revert 2014-01-07 changes.
12971
12972 2014-01-08  Jeff Law  <law@redhat.com>
12973
12974         * ree.c (get_sub_rtx): New function, extracted from...
12975         (merge_def_and_ext): Here.
12976         (combine_reaching_defs): Use get_sub_rtx.
12977
12978 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
12979
12980         * cgraph.h (varpool_variable_node): Do not choke on null node.
12981
12982 2014-01-08  Catherine Moore  <clm@codesourcery.com>
12983
12984         * config/mips/mips.md (simple_return): Attempt to use JRC
12985         for microMIPS.
12986         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
12987
12988 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
12989
12990         PR rtl-optimization/59137
12991         * reorg.c (steal_delay_list_from_target): Call update_block for
12992         elided insns.
12993         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
12994
12995 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12996
12997         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
12998         two duplicate entries.
12999
13000 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
13001
13002         Revert:
13003         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
13004
13005         * config/mips/mips.c (mips_truncated_op_cost): New function.
13006         (mips_rtx_costs): Adjust test for BADDU.
13007         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
13008
13009         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
13010
13011         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
13012         (*baddu_si): ...this new pattern.
13013
13014 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
13015
13016         PR ipa/59722
13017         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
13018
13019 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13020
13021         PR middle-end/57748
13022         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
13023         inner_reference_p.
13024         (expand_expr, expand_normal): Adjust.
13025         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
13026         inner_reference_p. Use inner_reference_p to expand inner references.
13027         (store_expr): Adjust.
13028         * cfgexpand.c (expand_call_stmt): Adjust.
13029
13030 2014-01-08  Rong Xu  <xur@google.com>
13031
13032         * gcov-io.c (gcov_var): Move from gcov-io.h.
13033         (gcov_position): Ditto.
13034         (gcov_is_error): Ditto.
13035         (gcov_rewrite): Ditto.
13036         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
13037         only part to libgcc/libgcov.h.
13038
13039 2014-01-08  Marek Polacek  <polacek@redhat.com>
13040
13041         PR middle-end/59669
13042         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
13043
13044 2014-01-08  Marek Polacek  <polacek@redhat.com>
13045
13046         PR sanitizer/59667
13047         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
13048
13049 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
13050
13051         PR rtl-optimization/59649
13052         * stor-layout.c (get_mode_bounds): For BImode return
13053         0 and STORE_FLAG_VALUE.
13054
13055 2014-01-08  Richard Biener  <rguenther@suse.de>
13056
13057         PR middle-end/59630
13058         * gimple.h (is_gimple_builtin_call): Remove.
13059         (gimple_builtin_call_types_compatible_p): New.
13060         (gimple_call_builtin_p): New overload.
13061         * gimple.c (is_gimple_builtin_call): Remove.
13062         (validate_call): Rename to ...
13063         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
13064         check return types.
13065         (validate_type): New static function.
13066         (gimple_call_builtin_p): New overload and adjust.
13067         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
13068         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
13069         (gimple_fold_stmt_to_constant_1): Likewise.
13070         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
13071
13072 2014-01-08  Richard Biener  <rguenther@suse.de>
13073
13074         PR middle-end/59471
13075         * gimplify.c (gimplify_expr): Gimplify register-register type
13076         VIEW_CONVERT_EXPRs to separate stmts.
13077
13078 2014-01-07  Jeff Law  <law@redhat.com>
13079
13080         PR middle-end/53623
13081         * ree.c (combine_set_extension): Handle case where source
13082         and destination registers in an extension insn are different.
13083         (combine_reaching_defs): Allow source and destination registers
13084         in extension to be different under limited circumstances.
13085         (add_removable_extension): Remove restriction that the
13086         source and destination registers in the extension are the same.
13087         (find_and_remove_re): Emit a copy from the extension's
13088         destination to its source after the defining insn if
13089         the source and destination registers are different.
13090
13091         PR middle-end/59285
13092         * ifcvt.c (merge_if_block): If we are merging a block with more than
13093         one successor with a block with no successors, remove any BARRIER
13094         after the second block.
13095
13096 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
13097
13098         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
13099
13100 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
13101
13102         PR target/59652
13103         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
13104         for 14-bit register offsets when INT14_OK_STRICT is false.
13105
13106 2014-01-07  Roland Stigge  <stigge@antcom.de>
13107             Michael Meissner  <meissner@linux.vnet.ibm.com>
13108
13109         PR 57386/target
13110         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
13111         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
13112
13113 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
13114
13115         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
13116         -mcpu.
13117
13118 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
13119
13120         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
13121         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
13122         rtx is const0_rtx or not.
13123
13124 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
13125
13126         PR target/58115
13127         * target-globals.c (save_target_globals): Remove this_fn_optab
13128         handling.
13129         * toplev.c: Include optabs.h.
13130         (target_reinit): Temporarily restore the global options if another
13131         set of options are in force.
13132
13133 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
13134
13135         PR rtl-optimization/58668
13136         * cfgcleanup.c (flow_find_cross_jump): Don't count
13137         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
13138         to determine what is counted.
13139         (flow_find_head_matching_sequence): Use active_insn_p to determine
13140         what is counted.
13141         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
13142         counting change.
13143         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
13144         determine what is counted.
13145
13146         PR tree-optimization/59643
13147         * tree-predcom.c (split_data_refs_to_components): If one dr is
13148         read and one write, determine_offset fails and the write isn't
13149         in the bad component, just put the read into the bad component.
13150
13151 2014-01-07  Mike Stump  <mikestump@comcast.net>
13152             Jakub Jelinek  <jakub@redhat.com>
13153
13154         PR pch/59436
13155         * tree-core.h (struct tree_optimization_option): Change optabs
13156         type from unsigned char * to void *.
13157         * optabs.c (init_tree_optimization_optabs): Adjust
13158         TREE_OPTIMIZATION_OPTABS initialization.
13159
13160 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
13161
13162         PR target/59644
13163         * config/i386/i386.h (struct machine_function): Add
13164         no_drap_save_restore field.
13165         * config/i386/i386.c (ix86_save_reg): Use
13166         !cfun->machine->no_drap_save_restore instead of
13167         crtl->stack_realign_needed.
13168         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
13169         this function clears frame_pointer_needed.  Set
13170         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
13171         and DRAP reg is needed.
13172
13173 2014-01-06  Marek Polacek  <polacek@redhat.com>
13174
13175         PR c/57773
13176         * doc/implement-c.texi: Mention that other integer types are
13177         permitted as bit-field types in strictly conforming mode.
13178
13179 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
13180
13181         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
13182         is newly allocated.
13183
13184 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
13185
13186         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
13187
13188 2014-01-06  Martin Jambor  <mjambor@suse.cz>
13189
13190         PR ipa/59008
13191         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
13192         to int.
13193         * ipa-prop.c (ipa_print_node_params): Fix indentation.
13194
13195 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
13196
13197         PR debug/59350
13198         PR debug/59510
13199         * var-tracking.c (add_stores): Preserve the value of the source even if
13200         we don't record the store.
13201
13202 2014-01-06  Terry Guo  <terry.guo@arm.com>
13203
13204         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
13205
13206 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
13207
13208         PR bootstrap/59541
13209         * config/darwin.c (darwin_function_section): Adjust return values to
13210         correspond to optimisation changes made in r206070.
13211
13212 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
13213
13214         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
13215         from prefetch_block tune setting.
13216         (nocona_cost): Correct size of prefetch block to 64.
13217
13218 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13219
13220         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
13221         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
13222         used to save the static chain register in the computation of the offset
13223         from which the FP registers need to be restored.
13224
13225 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
13226
13227         PR tree-optimization/59519
13228         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
13229         ICE if get_current_def (current_new_name) is already non-NULL, as long
13230         as it is a phi result of some other phi in *new_exit_bb that has
13231         the same argument.
13232
13233         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
13234         or vmovdqu* for misaligned_operand.
13235         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
13236         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
13237         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
13238         aligned_mem for AVX512F masked aligned load and store builtins and for
13239         non-temporal moves.
13240
13241 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
13242
13243         PR tree-optimization/59651
13244         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
13245         Address range for negative step should be added by TYPE_SIZE_UNIT.
13246
13247 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
13248
13249         * config/m68k/m68k.c (handle_move_double): Handle pushes with
13250         overlapping registers also for registers other than the stack pointer.
13251
13252 2014-01-03  Marek Polacek  <polacek@redhat.com>
13253
13254         PR other/59661
13255         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
13256         __builtin_FILE.
13257
13258 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
13259
13260         PR target/59625
13261         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
13262         asm goto as jump.
13263
13264         * config/i386/i386.md (MODE_SIZE): New mode attribute.
13265         (push splitter): Use <P:MODE_SIZE> instead of
13266         GET_MODE_SIZE (<P:MODE>mode).
13267         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
13268         (mov -1, reg peephole2): Likewise.
13269         * config/i386/sse.md (*mov<mode>_internal,
13270         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
13271         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
13272         *<code><mode>3, *andnot<mode>3<mask_name>,
13273         <mask_codefor><code><mode>3<mask_name>): Likewise.
13274         * config/i386/subst.md (mask_mode512bit_condition,
13275         sd_mask_mode512bit_condition): Likewise.
13276
13277 2014-01-02  Xinliang David Li  <davidxl@google.com>
13278
13279         PR tree-optimization/59303
13280         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
13281         (dump_predicates): Better output format.
13282         (pred_equal_p): New function.
13283         (is_neq_relop_p): Ditto.
13284         (is_neq_zero_form_p): Ditto.
13285         (pred_expr_equal_p): Ditto.
13286         (pred_neg_p): Ditto.
13287         (simplify_pred): Ditto.
13288         (simplify_preds_2): Ditto.
13289         (simplify_preds_3): Ditto.
13290         (simplify_preds_4): Ditto.
13291         (simplify_preds): Ditto.
13292         (push_pred): Ditto.
13293         (push_to_worklist): Ditto.
13294         (get_pred_info_from_cmp): Ditto.
13295         (is_degenerated_phi): Ditto.
13296         (normalize_one_pred_1): Ditto.
13297         (normalize_one_pred): Ditto.
13298         (normalize_one_pred_chain): Ditto.
13299         (normalize_preds): Ditto.
13300         (normalize_cond_1): Remove function.
13301         (normalize_cond): Ditto.
13302         (is_gcond_subset_of): Ditto.
13303         (is_subset_of_any): Ditto.
13304         (is_or_set_subset_of): Ditto.
13305         (is_and_set_subset_of): Ditto.
13306         (is_norm_cond_subset_of): Ditto.
13307         (pred_chain_length_cmp): Ditto.
13308         (convert_control_dep_chain_into_preds): Type change.
13309         (find_predicates): Ditto.
13310         (find_def_preds): Ditto.
13311         (destroy_predicates_vecs): Ditto.
13312         (find_matching_predicates_in_rest_chains): Ditto.
13313         (use_pred_not_overlap_with_undef_path_pred): Ditto.
13314         (is_pred_expr_subset): Ditto.
13315         (is_pred_chain_subset_of): Ditto.
13316         (is_included_in): Ditto.
13317         (is_superset_of): Ditto.
13318
13319 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
13320
13321         Update copyright years.
13322
13323 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
13324
13325         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
13326         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
13327         config/arc/arc.md, config/arc/arc.opt,
13328         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
13329         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
13330         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
13331         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
13332         config/linux-protos.h, config/linux.c, config/winnt-c.c,
13333         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
13334         vtable-verify.c, vtable-verify.h: Use the standard form for the
13335         copyright notice.
13336
13337 2014-01-02  Tobias Burnus  <burnus@net-b.de>
13338
13339         * gcc.c (process_command): Update copyright notice dates.
13340         * gcov-dump.c: Ditto.
13341         * gcov.c: Ditto.
13342         * doc/cpp.texi: Bump @copying's copyright year.
13343         * doc/cppinternals.texi: Ditto.
13344         * doc/gcc.texi: Ditto.
13345         * doc/gccint.texi: Ditto.
13346         * doc/gcov.texi: Ditto.
13347         * doc/install.texi: Ditto.
13348         * doc/invoke.texi: Ditto.
13349
13350 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13351
13352         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
13353
13354 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
13355
13356         * config/i386/sse.md (*mov<mode>_internal): Guard
13357         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
13358
13359         PR rtl-optimization/59647
13360         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
13361         new_rtx into UNSIGNED_FLOAT rtxes.
13362 \f
13363 Copyright (C) 2014 Free Software Foundation, Inc.
13364
13365 Copying and distribution of this file, with or without modification,
13366 are permitted in any medium without royalty provided the copyright
13367 notice and this notice are preserved.