f0fc311dbc037adca31cacbc456639aa05ff307a
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-04-25  Tom de Vries  <tom@codesourcery.com>
2
3         * expr.c (clobber_reg_mode): New function.
4         * expr.h (clobber_reg): New function.
5
6 2014-04-25  Tom de Vries  <tom@codesourcery.com>
7
8         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
9         clobbers.
10
11 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
12             Tom de Vries  <tom@codesourcery.com>
13
14         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
15         handle.
16         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
17         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
18         new argument to find_all_hard_reg_sets call.
19
20 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21
22         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
23         Use HOST_WIDE_INT_C for mask literal.
24         (aarch_rev16_shleft_mask_imm_p): Likewise.
25
26 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
27
28         PR target/60941
29         * config/sparc/sparc.md (ashlsi3_extend): Delete.
30
31 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
32
33         PR preprocessor/56540
34         * config/i386/i386-c.c (ix86_target_macros): Define
35         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
36
37 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38
39         * configure.ac (tga_func): Remove.
40         (LIB_TLS_SPEC): Remove.
41         * configure: Regenerate.
42         * config.in: Regenerate.
43         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
44
45 2014-04-25  Richard Biener  <rguenther@suse.de>
46
47         PR ipa/60912
48         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
49         call stmt use/clobber sets during stmt walk instead of
50         walking the possibly incomplete set of caller edges.
51
52 2014-04-25  Richard Biener  <rguenther@suse.de>
53
54         PR ipa/60911
55         * passes.c (apply_ipa_transforms): Inline into only caller ...
56         (execute_one_pass): ... here.  Properly bring in function
57         bodies for nodes we want to apply IPA transforms to.
58
59 2014-04-24  Cong Hou  <congh@google.com>
60
61         PR tree-optimization/60896
62         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
63         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
64         (vect_mark_pattern_stmts): Set the def type of all statements in
65         PATTERN_DEF_SEQ as vect_internal_def.
66
67 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
68
69         * doc/extend.texi (PowerPC Built-in Functions): Document new
70         powerpc extended divide, bcd, pack/unpack 128-bit, builtin
71         functions.
72         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
73
74         * config/rs6000/predicates.md (const_0_to_3_operand): New
75         predicate to match 0..3 integer constants.
76
77         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
78         to support adding miscellaneous builtin functions.
79         (BU_DFP_MISC_2): Likewise.
80         (BU_P7_MISC_1): Likewise.
81         (BU_P7_MISC_2): Likewise.
82         (BU_P8V_MISC_3): Likewise.
83         (BU_MISC_1): Likewise.
84         (BU_MISC_2): Likewise.
85         (DIVWE): Add extended divide builtin functions.
86         (DIVWEO): Likewise.
87         (DIVWEU): Likewise.
88         (DIVWEUO): Likewise.
89         (DIVDE): Likewise.
90         (DIVDEO): Likewise.
91         (DIVDEU): Likewise.
92         (DIVDEUO): Likewise.
93         (DXEX): Add decimal floating-point builtin functions.
94         (DXEXQ): Likewise.
95         (DDEDPD): Likewise.
96         (DDEDPDQ): Likewise.
97         (DENBCD): Likewise.
98         (DENBCDQ): Likewise.
99         (DIEX): Likewise.
100         (DIEXQ): Likewise.
101         (DSCLI): Likewise.
102         (DSCLIQ): Likewise.
103         (DSCRI): Likewise.
104         (DSCRIQ): Likewise.
105         (CDTBCD): Add new BCD builtin functions.
106         (CBCDTD): Likewise.
107         (ADDG6S): Likewise.
108         (BCDADD): Likewise.
109         (BCDADD_LT): Likewise.
110         (BCDADD_EQ): Likewise.
111         (BCDADD_GT): Likewise.
112         (BCDADD_OV): Likewise.
113         (BCDSUB): Likewise.
114         (BCDSUB_LT): Likewise.
115         (BCDSUB_EQ): Likewise.
116         (BCDSUB_GT): Likewise.
117         (BCDSUB_OV): Likewise.
118         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
119         (UNPACK_TD): Likewise.
120         (PACK_TF): Likewise.
121         (UNPACK_TF): Likewise.
122         (UNPACK_TF_0): Likewise.
123         (UNPACK_TF_1): Likewise.
124         (PACK_V1TI): Likewise.
125         (UNPACK_V1TI): Likewise.
126
127         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
128         support for decimal floating point builtin functions.
129         (rs6000_expand_ternop_builtin): Add checks for the new builtin
130         functions that take constant arguments.
131         (rs6000_invalid_builtin): Add decimal floating point builtin
132         support.
133         (rs6000_init_builtins): Setup long double, _Decimal64, and
134         _Decimal128 types for new builtin functions.
135         (builtin_function_type): Set the unsigned flags appropriately for
136         the new builtin functions.
137         (rs6000_opt_masks): Add support for decimal floating point builtin
138         functions.
139
140         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
141         floating point builtin functions.
142         (RS6000_BTM_COMMON): Likewise.
143         (RS6000_BTI_long_double): Likewise.
144         (RS6000_BTI_dfloat64): Likewise.
145         (RS6000_BTI_dfloat128): Likewise.
146         (long_double_type_internal_node): Likewise.
147         (dfloat64_type_internal_node): Likewise.
148         (dfloat128_type_internal_node): Likewise.
149
150         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
151         2.07 bcd arithmetic instructions.
152         (UNSPEC_BCDSUB): Likewise.
153         (UNSPEC_BCD_OVERFLOW): Likewise.
154         (UNSPEC_BCD_ADD_SUB): Likewise.
155         (bcd_add_sub): Likewise.
156         (BCD_TEST): Likewise.
157         (bcd<bcd_add_sub>): Likewise.
158         (bcd<bcd_add_sub>_test): Likewise.
159         (bcd<bcd_add_sub>_test2): Likewise.
160         (bcd<bcd_add_sub>_<code>): Likewise.
161         (peephole2 for combined bcd ops): Likewise.
162
163         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
164         decimal floating point builtin functions.
165         (UNSPEC_DENBCD): Likewise.
166         (UNSPEC_DXEX): Likewise.
167         (UNSPEC_DIEX): Likewise.
168         (UNSPEC_DSCLI): Likewise.
169         (UNSPEC_DSCRI): Likewise.
170         (D64_D128): Likewise.
171         (dfp_suffix): Likewise.
172         (dfp_ddedpd_<mode>): Likewise.
173         (dfp_denbcd_<mode>): Likewise.
174         (dfp_dxex_<mode>): Likewise.
175         (dfp_diex_<mode>): Likewise.
176         (dfp_dscli_<mode>): Likewise.
177         (dfp_dscri_<mode>): Likewise.
178
179         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
180         builtin functions.
181         (UNSPEC_CDTBCD): Likewise.
182         (UNSPEC_CBCDTD): Likewise.
183         (UNSPEC_DIVE): Add support for new extended divide builtin
184         functions.
185         (UNSPEC_DIVEO): Likewise.
186         (UNSPEC_DIVEU): Likewise.
187         (UNSPEC_DIVEUO): Likewise.
188         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
189         pack/unpack 128-bit types.
190         (UNSPEC_PACK_128BIT): Likewise.
191         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
192         (udiv<mode>3): Use idiv_ldiv mode attribute.
193         (div<mode>3): Likewise.
194         (addg6s): Add new BCD builtin functions.
195         (cdtbcd): Likewise.
196         (cbcdtd): Likewise.
197         (UNSPEC_DIV_EXTEND): Add support for new extended divide
198         instructions.
199         (div_extend): Likewise.
200         (div<div_extend>_<mode>"): Likewise.
201         (FP128_64): Add support for new builtin functions to pack/unpack
202         128-bit types.
203         (unpack<mode>): Likewise.
204         (unpacktf_0): Likewise.
205         (unpacktf_1): Likewise.
206         (unpack<mode>_dm): Likewise.
207         (unpack<mode>_nodm): Likewise.
208         (pack<mode>): Likewise.
209         (unpackv1ti): Likewise.
210         (packv1ti): Likewise.
211
212 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
213
214         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
215         is disabled.
216
217 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
218
219         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
220         * gimplify.c (omp_is_private): Change last argument's type to int.
221         Only diagnose lastprivate if the simd argument is 1, only diagnose
222         linear if the simd argument is 2.
223         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
224         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
225         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
226         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
227         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
228         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
229         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
230         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
231         * tree-nested.c (convert_nonlocal_omp_clauses,
232         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
233
234 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
235
236         PR target/60822
237         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
238         operand 1.
239
240 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
241
242         * flag-types.h (enum ivar_visibility): Add.
243
244 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
245
246         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
247         function * argument.
248
249 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
250
251         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
252
253 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
254             Tom de Vries  <tom@codesourcery.com>
255
256         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
257         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
258         reg-note.
259         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
260         * emit-rtl.c (try_split): Same.
261
262 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
263             Tom de Vries  <tom@codesourcery.com>
264
265         * common.opt (fuse-caller-save): New option.
266
267 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
268
269         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of elements
270         for big-endian.
271
272 2014-04-24  Richard Biener  <rguenther@suse.de>
273
274         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
275         during TER and instead use the sepops interface for expanding
276         non-GIMPLE_SINGLE_RHS.
277
278 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
279
280         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
281         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
282
283 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
284
285         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
286         assembler 64-bit option.
287         * configure: Regenerate.
288
289 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
290
291         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
292         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
293         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
294         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
295         (TARGET_CRYPTO): Take TARGET_SIMD into account.
296
297 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
298
299         * config/aarch64/aarch64-builtins.c
300         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
301         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
302         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
303         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
304         builtins.
305         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
306         (Vrevsuff): New mode attribute.
307
308 2014-04-24  Terry Guo  <terry.guo@arm.com>
309
310         * config/arm/arm.h (machine_function): Define variable
311         after_arm_reorg here.
312         * config/arm/arm.c (after_arm_reorg): Remove the definition.
313         (arm_split_constant): Update the way to access variable
314         after_arm_reorg.
315         (arm_reorg): Ditto.
316         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
317
318 2014-04-23  Tom de Vries  <tom@codesourcery.com>
319
320         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
321
322 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
323
324         * is-a.h: Update comments to reflect the following changes to the
325         "pointerness" of the API, making the template parameter match the
326         return type, allowing use of is-a.h with typedefs of pointers.
327         (is_a_helper::cast): Return a T rather then a pointer to a T, so
328         that the return type matches the parameter to the is_a_helper.
329         (as_a): Likewise.
330         (dyn_cast): Likewise.
331
332         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
333         pointer from the is-a.h API.
334
335         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
336         (is_a_helper <cgraph_node *>::test): ...this, matching change to
337         is-a.h API.
338         (is_a_helper <varpool_node>::test): Likewise, convert to...
339         (is_a_helper <varpool_node *>::test): ...this.
340
341         (varpool_first_variable): Update for removal of implicit pointer
342         from the is-a.h API.
343         (varpool_next_variable): Likewise.
344         (varpool_first_static_initializer): Likewise.
345         (varpool_next_static_initializer): Likewise.
346         (varpool_first_defined_variable): Likewise.
347         (varpool_next_defined_variable): Likewise.
348         (cgraph_first_defined_function): Likewise.
349         (cgraph_next_defined_function): Likewise.
350         (cgraph_first_function): Likewise.
351         (cgraph_next_function): Likewise.
352         (cgraph_first_function_with_gimple_body): Likewise.
353         (cgraph_next_function_with_gimple_body): Likewise.
354         (cgraph_alias_target): Likewise.
355         (varpool_alias_target): Likewise.
356         (cgraph_function_or_thunk_node): Likewise.
357         (varpool_variable_node): Likewise.
358         (symtab_real_symbol_p): Likewise.
359         * cgraphunit.c (referred_to_p): Likewise.
360         (analyze_functions): Likewise.
361         (handle_alias_pairs): Likewise.
362         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
363         * gimple-ssa.h (gimple_vuse_op): Likewise.
364         (gimple_vdef_op): Likewise.
365         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
366         * gimple.c (gimple_build_asm_1): Likewise.
367         (gimple_build_try): Likewise.
368         (gimple_build_resx): Likewise.
369         (gimple_build_eh_dispatch): Likewise.
370         (gimple_build_omp_for): Likewise.
371         (gimple_omp_for_set_clauses): Likewise.
372
373         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
374         (is_a_helper <gimple_statement_asm *>::test): ...this.
375         (is_a_helper <gimple_statement_bind>::test): Convert to...
376         (is_a_helper <gimple_statement_bind *>::test): ...this.
377         (is_a_helper <gimple_statement_call>::test): Convert to...
378         (is_a_helper <gimple_statement_call *>::test): ...this.
379         (is_a_helper <gimple_statement_catch>::test): Convert to...
380         (is_a_helper <gimple_statement_catch *>::test): ...this.
381         (is_a_helper <gimple_statement_resx>::test): Convert to...
382         (is_a_helper <gimple_statement_resx *>::test): ...this.
383         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
384         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
385         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
386         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
387         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
388         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
389         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
390         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
391         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
392         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
393         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
394         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
395         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
396         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
397         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
398         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
399         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
400         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
401         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
402         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
403         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
404         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
405         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
406         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
407         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
408         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
409         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
410         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
411         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
412         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
413         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
414         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
415         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
416         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
417         (is_a_helper <gimple_statement_phi>::test): Convert to...
418         (is_a_helper <gimple_statement_phi *>::test): ...this.
419         (is_a_helper <gimple_statement_transaction>::test): Convert to...
420         (is_a_helper <gimple_statement_transaction *>::test): ...this.
421         (is_a_helper <gimple_statement_try>::test): Convert to...
422         (is_a_helper <gimple_statement_try *>::test): ...this.
423         (is_a_helper <gimple_statement_wce>::test): Convert to...
424         (is_a_helper <gimple_statement_wce *>::test): ...this.
425         (is_a_helper <const gimple_statement_asm>::test): Convert to...
426         (is_a_helper <const gimple_statement_asm *>::test): ...this.
427         (is_a_helper <const gimple_statement_bind>::test): Convert to...
428         (is_a_helper <const gimple_statement_bind *>::test): ...this.
429         (is_a_helper <const gimple_statement_call>::test): Convert to...
430         (is_a_helper <const gimple_statement_call *>::test): ...this.
431         (is_a_helper <const gimple_statement_catch>::test): Convert to...
432         (is_a_helper <const gimple_statement_catch *>::test): ...this.
433         (is_a_helper <const gimple_statement_resx>::test): Convert to...
434         (is_a_helper <const gimple_statement_resx *>::test): ...this.
435         (is_a_helper <const gimple_statement_eh_dispatch>::test):
436         Convert to...
437         (is_a_helper <const gimple_statement_eh_dispatch *>::test):
438         ...this.
439         (is_a_helper <const gimple_statement_eh_filter>::test): Convert
440         to...
441         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
442         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
443         Convert to...
444         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
445         ...this.
446         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
447         Convert to...
448         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
449         ...this.
450         (is_a_helper <const gimple_statement_omp_return>::test): Convert
451         to...
452         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
453         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
454         to...
455         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
456         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
457         to...
458         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
459         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
460         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
461         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert
462         to...
463         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
464         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
465         to...
466         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
467         (is_a_helper <const gimple_statement_omp_target>::test): Convert
468         to...
469         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
470         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
471         to...
472         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
473         (is_a_helper <const gimple_statement_omp_single>::test): Convert
474         to...
475         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
476         (is_a_helper <const gimple_statement_omp_teams>::test): Convert
477         to...
478         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
479         (is_a_helper <const gimple_statement_omp_task>::test): Convert
480         to...
481         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
482         (is_a_helper <const gimple_statement_phi>::test): Convert to...
483         (is_a_helper <const gimple_statement_phi *>::test): ...this.
484         (is_a_helper <const gimple_statement_transaction>::test): Convert
485         to...
486         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
487         (is_a_helper <const gimple_statement_with_ops>::test): Convert
488         to...
489         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
490         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
491         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
492         (is_a_helper <const gimple_statement_with_memory_ops>::test):
493         Convert to...
494         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
495         ...this.
496         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert
497         to...
498         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
499
500         (gimple_use_ops): Update for removal of implicit pointer from the
501         is-a.h API.
502         (gimple_set_use_ops): Likewise.
503         (gimple_vuse): Likewise.
504         (gimple_vdef): Likewise.
505         (gimple_vuse_ptr): Likewise.
506         (gimple_vdef_ptr): Likewise.
507         (gimple_set_vuse): Likewise.
508         (gimple_set_vdef): Likewise.
509         (gimple_omp_return_set_lhs): Likewise.
510         (gimple_omp_return_lhs): Likewise.
511         (gimple_omp_return_lhs_ptr): Likewise.
512         (gimple_call_fntype): Likewise.
513         (gimple_call_set_fntype): Likewise.
514         (gimple_call_set_internal_fn): Likewise.
515         (gimple_call_use_set): Likewise.
516         (gimple_call_clobber_set): Likewise.
517         (gimple_bind_vars): Likewise.
518         (gimple_bind_set_vars): Likewise.
519         (gimple_bind_body_ptr): Likewise.
520         (gimple_bind_set_body): Likewise.
521         (gimple_bind_add_stmt): Likewise.
522         (gimple_bind_block): Likewise.
523         (gimple_bind_set_block): Likewise.
524         (gimple_asm_ninputs): Likewise.
525         (gimple_asm_noutputs): Likewise.
526         (gimple_asm_nclobbers): Likewise.
527         (gimple_asm_nlabels): Likewise.
528         (gimple_asm_input_op): Likewise.
529         (gimple_asm_input_op_ptr): Likewise.
530         (gimple_asm_output_op): Likewise.
531         (gimple_asm_output_op_ptr): Likewise.
532         (gimple_asm_set_output_op): Likewise.
533         (gimple_asm_clobber_op): Likewise.
534         (gimple_asm_set_clobber_op): Likewise.
535         (gimple_asm_label_op): Likewise.
536         (gimple_asm_set_label_op): Likewise.
537         (gimple_asm_string): Likewise.
538         (gimple_catch_types): Likewise.
539         (gimple_catch_types_ptr): Likewise.
540         (gimple_catch_handler_ptr): Likewise.
541         (gimple_catch_set_types): Likewise.
542         (gimple_catch_set_handler): Likewise.
543         (gimple_eh_filter_types): Likewise.
544         (gimple_eh_filter_types_ptr): Likewise.
545         (gimple_eh_filter_failure_ptr): Likewise.
546         (gimple_eh_filter_set_types): Likewise.
547         (gimple_eh_filter_set_failure): Likewise.
548         (gimple_eh_must_not_throw_fndecl): Likewise.
549         (gimple_eh_must_not_throw_set_fndecl): Likewise.
550         (gimple_eh_else_n_body_ptr): Likewise.
551         (gimple_eh_else_e_body_ptr): Likewise.
552         (gimple_eh_else_set_n_body): Likewise.
553         (gimple_eh_else_set_e_body): Likewise.
554         (gimple_try_eval_ptr): Likewise.
555         (gimple_try_cleanup_ptr): Likewise.
556         (gimple_try_set_eval): Likewise.
557         (gimple_try_set_cleanup): Likewise.
558         (gimple_wce_cleanup_ptr): Likewise.
559         (gimple_wce_set_cleanup): Likewise.
560         (gimple_phi_capacity): Likewise.
561         (gimple_phi_num_args): Likewise.
562         (gimple_phi_result): Likewise.
563         (gimple_phi_result_ptr): Likewise.
564         (gimple_phi_set_result): Likewise.
565         (gimple_phi_arg): Likewise.
566         (gimple_phi_set_arg): Likewise.
567         (gimple_resx_region): Likewise.
568         (gimple_resx_set_region): Likewise.
569         (gimple_eh_dispatch_region): Likewise.
570         (gimple_eh_dispatch_set_region): Likewise.
571         (gimple_omp_critical_name): Likewise.
572         (gimple_omp_critical_name_ptr): Likewise.
573         (gimple_omp_critical_set_name): Likewise.
574         (gimple_omp_for_clauses): Likewise.
575         (gimple_omp_for_clauses_ptr): Likewise.
576         (gimple_omp_for_set_clauses): Likewise.
577         (gimple_omp_for_collapse): Likewise.
578         (gimple_omp_for_index): Likewise.
579         (gimple_omp_for_index_ptr): Likewise.
580         (gimple_omp_for_set_index): Likewise.
581         (gimple_omp_for_initial): Likewise.
582         (gimple_omp_for_initial_ptr): Likewise.
583         (gimple_omp_for_set_initial): Likewise.
584         (gimple_omp_for_final): Likewise.
585         (gimple_omp_for_final_ptr): Likewise.
586         (gimple_omp_for_set_final): Likewise.
587         (gimple_omp_for_incr): Likewise.
588         (gimple_omp_for_incr_ptr): Likewise.
589         (gimple_omp_for_set_incr): Likewise.
590         (gimple_omp_for_pre_body_ptr): Likewise.
591         (gimple_omp_for_set_pre_body): Likewise.
592         (gimple_omp_parallel_clauses): Likewise.
593         (gimple_omp_parallel_clauses_ptr): Likewise.
594         (gimple_omp_parallel_set_clauses): Likewise.
595         (gimple_omp_parallel_child_fn): Likewise.
596         (gimple_omp_parallel_child_fn_ptr): Likewise.
597         (gimple_omp_parallel_set_child_fn): Likewise.
598         (gimple_omp_parallel_data_arg): Likewise.
599         (gimple_omp_parallel_data_arg_ptr): Likewise.
600         (gimple_omp_parallel_set_data_arg): Likewise.
601         (gimple_omp_task_clauses): Likewise.
602         (gimple_omp_task_clauses_ptr): Likewise.
603         (gimple_omp_task_set_clauses): Likewise.
604         (gimple_omp_task_child_fn): Likewise.
605         (gimple_omp_task_child_fn_ptr): Likewise.
606         (gimple_omp_task_set_child_fn): Likewise.
607         (gimple_omp_task_data_arg): Likewise.
608         (gimple_omp_task_data_arg_ptr): Likewise.
609         (gimple_omp_task_set_data_arg): Likewise.
610         (gimple_omp_taskreg_clauses): Likewise.
611         (gimple_omp_taskreg_clauses_ptr): Likewise.
612         (gimple_omp_taskreg_set_clauses): Likewise.
613         (gimple_omp_taskreg_child_fn): Likewise.
614         (gimple_omp_taskreg_child_fn_ptr): Likewise.
615         (gimple_omp_taskreg_set_child_fn): Likewise.
616         (gimple_omp_taskreg_data_arg): Likewise.
617         (gimple_omp_taskreg_data_arg_ptr): Likewise.
618         (gimple_omp_taskreg_set_data_arg): Likewise.
619         (gimple_omp_task_copy_fn): Likewise.
620         (gimple_omp_task_copy_fn_ptr): Likewise.
621         (gimple_omp_task_set_copy_fn): Likewise.
622         (gimple_omp_task_arg_size): Likewise.
623         (gimple_omp_task_arg_size_ptr): Likewise.
624         (gimple_omp_task_set_arg_size): Likewise.
625         (gimple_omp_task_arg_align): Likewise.
626         (gimple_omp_task_arg_align_ptr): Likewise.
627         (gimple_omp_task_set_arg_align): Likewise.
628         (gimple_omp_single_clauses): Likewise.
629         (gimple_omp_single_clauses_ptr): Likewise.
630         (gimple_omp_single_set_clauses): Likewise.
631         (gimple_omp_target_clauses): Likewise.
632         (gimple_omp_target_clauses_ptr): Likewise.
633         (gimple_omp_target_set_clauses): Likewise.
634         (gimple_omp_target_child_fn): Likewise.
635         (gimple_omp_target_child_fn_ptr): Likewise.
636         (gimple_omp_target_set_child_fn): Likewise.
637         (gimple_omp_target_data_arg): Likewise.
638         (gimple_omp_target_data_arg_ptr): Likewise.
639         (gimple_omp_target_set_data_arg): Likewise.
640         (gimple_omp_teams_clauses): Likewise.
641         (gimple_omp_teams_clauses_ptr): Likewise.
642         (gimple_omp_teams_set_clauses): Likewise.
643         (gimple_omp_sections_clauses): Likewise.
644         (gimple_omp_sections_clauses_ptr): Likewise.
645         (gimple_omp_sections_set_clauses): Likewise.
646         (gimple_omp_sections_control): Likewise.
647         (gimple_omp_sections_control_ptr): Likewise.
648         (gimple_omp_sections_set_control): Likewise.
649         (gimple_omp_for_set_cond): Likewise.
650         (gimple_omp_for_cond): Likewise.
651         (gimple_omp_atomic_store_set_val): Likewise.
652         (gimple_omp_atomic_store_val): Likewise.
653         (gimple_omp_atomic_store_val_ptr): Likewise.
654         (gimple_omp_atomic_load_set_lhs): Likewise.
655         (gimple_omp_atomic_load_lhs): Likewise.
656         (gimple_omp_atomic_load_lhs_ptr): Likewise.
657         (gimple_omp_atomic_load_set_rhs): Likewise.
658         (gimple_omp_atomic_load_rhs): Likewise.
659         (gimple_omp_atomic_load_rhs_ptr): Likewise.
660         (gimple_omp_continue_control_def): Likewise.
661         (gimple_omp_continue_control_def_ptr): Likewise.
662         (gimple_omp_continue_set_control_def): Likewise.
663         (gimple_omp_continue_control_use): Likewise.
664         (gimple_omp_continue_control_use_ptr): Likewise.
665         (gimple_omp_continue_set_control_use): Likewise.
666         (gimple_transaction_body_ptr): Likewise.
667         (gimple_transaction_label): Likewise.
668         (gimple_transaction_label_ptr): Likewise.
669         (gimple_transaction_set_body): Likewise.
670         (gimple_transaction_set_label): Likewise.
671
672         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
673         * ipa-inline-analysis.c (inline_write_summary): Likewise.
674         * ipa-ref.c (ipa_record_reference): Likewise.
675         * ipa-reference.c (analyze_function): Likewise.
676         (ipa_reference_write_optimization_summary): Likewise.
677         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
678         (address_taken_from_non_vtable_p): Likewise.
679         (comdat_can_be_unshared_p_1): Likewise.
680         * lto-cgraph.c (lto_output_ref): Likewise.
681         (add_references): Likewise.
682         (compute_ltrans_boundary): Likewise.
683         (output_symtab): Likewise.
684         (input_ref): Likewise.
685         (input_cgraph_1): Likewise.
686         (output_cgraph_opt_summary): Likewise.
687         * lto-streamer-out.c (lto_output): Likewise.
688         (output_symbol_p): Likewise.
689         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
690         (lsei_start_function_in_partition): Likewise.
691         (lsei_next_variable_in_partition): Likewise.
692         (lsei_start_variable_in_partition): Likewise.
693         * symtab.c (insert_to_assembler_name_hash): Likewise.
694         (unlink_from_assembler_name_hash): Likewise.
695         (symtab_unregister_node): Likewise.
696         (symtab_remove_node): Likewise.
697         (dump_symtab_node): Likewise.
698         (verify_symtab_base): Likewise.
699         (verify_symtab_node): Likewise.
700         (symtab_make_decl_local): Likewise.
701         (symtab_alias_ultimate_target): Likewise.
702         (symtab_resolve_alias): Likewise.
703         (symtab_get_symbol_partitioning_class): Likewise.
704         * tree-phinodes.c (allocate_phi_node): Likewise.
705         (reserve_phi_args_for_new_edge): Likewise.
706         (remove_phi_args): Likewise.
707         * varpool.c (varpool_node_for_asm): Likewise.
708         (varpool_remove_unreferenced_decls): Likewise.
709
710 2014-04-23  Jeff Law  <law@redhat.com>
711
712         PR tree-optimization/60902
713         * tree-ssa-threadedge.c
714         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
715         invalidate outputs from statements that do not produce useful
716         outputs for threading.
717
718 2014-04-23 Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
719
720         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
721         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
722         machine descriptions for Stack Smashing Protector.
723
724 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
725
726         * aarch64.md (<optab>_rol<mode>3): New pattern.
727         (<optab>_rolsi3_uxtw): Likewise.
728         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
729
730 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
731
732         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
733         (arm_cortex_a12_tune): Likewise.
734
735 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
736
737         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
738
739 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
740
741         * config/arm/arm.md (arm_rev16si2): New pattern.
742         (arm_rev16si2_alt): Likewise.
743         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
744
745 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
746
747        * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
748        (rev16<mode>2_alt): Likewise.
749        * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
750        * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
751        (aarch_rev16_shleft_mask_imm_p): Likewise.
752        (aarch_rev16_p_1): Likewise.
753        (aarch_rev16_p): Likewise.
754        * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
755        (aarch_rev16_shright_mask_imm_p): Likewise.
756        (aarch_rev16_shleft_mask_imm_p): Likewise.
757
758 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
759
760        * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
761        * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
762        rev cost.
763        (cortex_a53_extra_costs): Likewise.
764        (cortex_a57_extra_costs): Likewise.
765        * config/arm/arm.c (cortexa9_extra_costs): Likewise.
766        (cortexa7_extra_costs): Likewise.
767        (cortexa8_extra_costs): Likewise.
768        (cortexa12_extra_costs): Likewise.
769        (cortexa15_extra_costs): Likewise.
770        (v7m_extra_costs): Likewise.
771        (arm_new_rtx_costs): Handle BSWAP.
772
773 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
774
775        * config/arm/arm.c (cortexa8_extra_costs): New table.
776        (arm_cortex_a8_tune): New tuning struct.
777        * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
778
779 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
780
781        * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
782
783 2014-04-23  Richard Biener  <rguenther@suse.de>
784
785         * Makefile.in (OBJS): Remove loop-unswitch.o.
786         * loop-unswitch.c: Delete.
787         * tree-pass.h (make_pass_rtl_unswitch): Remove.
788         * passes.def (pass_rtl_unswitch): Likewise.
789         * loop-init.c (gate_rtl_unswitch): Likewise.
790         (rtl_unswitch): Likewise.
791         (pass_data_rtl_unswitch): Likewise.
792         (pass_rtl_unswitch): Likewise.
793         (make_pass_rtl_unswitch): Likewise.
794         * rtl.h (reversed_condition): Likewise.
795         (compare_and_jump_seq): Likewise.
796         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
797         and make static.
798         * loop-unroll.c (compare_and_jump_seq): Likewise.
799
800 2014-04-23  Richard Biener  <rguenther@suse.de>
801
802         PR tree-optimization/60903
803         * tree-ssa-loop-im.c (analyze_memory_references): Remove
804         commented code block.
805         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
806         loop flags to newly created BBs and edges.
807
808 2014-04-23  Nick Clifton  <nickc@redhat.com>
809
810         * config/msp430/msp430.c (msp430_handle_option): Move function
811         to msp430-common.c
812         (msp430_option_override): Simplify mcu and mcpu option handling.
813         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
814         support for -mhwmult command line option.
815         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
816         -mhwmult command line option.
817         (msp430_hwmult_enabled): Delete.
818         (msp43o_output_labelref): Add support for -mhwmult command line
819         option.
820         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
821         (umulsidi3): Likewise.
822         * config/msp430/msp430.opt (mmcu): Add Report attribute.
823         (mcpu, mlarge, msmall): Likewise.
824         (mhwmult): New option.
825         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
826         prototype.
827         (msp430_is_f5_mcu): Remove prototype.
828         (msp430_use_f5_series_hwmult): Add prototype.
829         * config/msp430/msp430-opts.h: New file.
830         * common/config/msp430: New directory.
831         * common/config/msp430/msp430-common.c: New file.
832         * config.gcc (msp430): Remove target_has_targetm_common.
833         * doc/invoke.texi: Document -mhwmult command line option.
834
835 2014-04-23  Nick Clifton  <nickc@redhat.com>
836
837         * config/i386/cygwin.h (ENDFILE_SPEC): Include
838         default-manifest.o if it can be found in the search path.
839         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
840
841 2014-04-23  Terry Guo  <terry.guo@arm.com>
842
843         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
844
845 2014-04-23  Richard Biener  <rguenther@suse.de>
846
847         PR middle-end/60895
848         * tree-inline.c (declare_return_variable): Use mark_addressable.
849
850 2014-04-23  Richard Biener  <rguenther@suse.de>
851
852         PR middle-end/60891
853         * loop-init.c (loop_optimizer_init): Make sure to apply
854         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
855
856 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
857
858         PR sanitizer/60275
859         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
860         New options.
861         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
862         if flag_sanitize_undefined_trap_on_error.
863         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
864         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
865         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
866         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
867         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
868         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
869         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
870         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
871         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
872         * ubsan.c (ubsan_instrument_unreachable): Return
873         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
874         (ubsan_expand_null_ifn): Emit __builtin_trap ()
875         if flag_sanitize_undefined_trap_on_error and
876         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
877         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
878         instrument_bool_enum_load): Emit __builtin_trap () if
879         flag_sanitize_undefined_trap_on_error and
880         __builtin_handle_*_abort () if !flag_sanitize_recover.
881         * doc/invoke.texi (-fsanitize-recover,
882         -fsanitize-undefined-trap-on-error): Document.
883
884 2014-04-22  Christian Bruel  <christian.bruel@st.com>
885
886         * config/sh/sh.md (mov<mode>): Replace movQIHI.
887          Force immediates to SImode.
888
889 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
890
891         * config/nios2/nios2.md (UNSPEC_ROUND): New.
892         (lroundsfsi2): New.
893         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
894         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
895         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
896         (nios2_fpu_insn): Add entry for round.
897         (N2FPU_NO_ERRNO_P): Define.
898         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
899         flag_errno_math.
900         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
901
902 2014-04-22  Richard Henderson  <rth@redhat.com>
903
904         * config/aarch64/aarch64 (addti3, subti3): New expanders.
905         (add<GPI>3_compare0): Remove leading * from name.
906         (add<GPI>3_carryin): Likewise.
907         (sub<GPI>3_compare0): Likewise.
908         (sub<GPI>3_carryin): Likewise.
909         (<su_optab>mulditi3): New expander.
910         (multi3): New expander.
911         (madd<GPI>): Remove leading * from name.
912
913 2014-04-22  Martin Jambor  <mjambor@suse.cz>
914
915         * cgraphclones.c (cgraph_function_versioning): Copy
916         ipa_transforms_to_apply instead of asserting it is empty.
917
918 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
919
920         PR target/60868
921         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
922         on count_exp to get mode.
923
924 2014-04-22  Andrew Pinski  <apinski@cavium.com>
925
926         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
927         Handle TLS for ILP32.
928         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
929         (tlsie_small_<mode>): this and handle PTR.
930         (tlsie_small_sidi): New pattern.
931         (tlsle_small): Change to an expand to handle ILP32.
932         (tlsle_small_<mode>): New pattern.
933         (tlsdesc_small): Rename to ...
934         (tlsdesc_small_<mode>): this and handle PTR.
935
936 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
937
938         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
939
940 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
941
942         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
943         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
944         (aarch64_types_signed_poly_qualifiers): Likewise.
945         (aarch64_types_unsigned_signed_qualifiers): Likewise.
946         (aarch64_types_poly_signed_qualifiers): Likewise.
947         (TYPES_REINTERP_SS): Type macro added.
948         (TYPES_REINTERP_SU): Likewise.
949         (TYPES_REINTERP_SP): Likewise.
950         (TYPES_REINTERP_US): Likewise.
951         (TYPES_REINTERP_PS): Likewise.
952         (aarch64_fold_builtin): New expression folding added.
953         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
954         Declarations removed.
955         (REINTERP_SS): Declarations added.
956         (REINTERP_US): Likewise.
957         (REINTERP_PS): Likewise.
958         (REINTERP_SU): Likewise.
959         (REINTERP_SP): Likewise.
960         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
961         (vreinterpretq_p8_f64): Likewise.
962         (vreinterpret_p16_f64): Likewise.
963         (vreinterpretq_p16_f64): Likewise.
964         (vreinterpret_f32_f64): Likewise.
965         (vreinterpretq_f32_f64): Likewise.
966         (vreinterpret_f64_f32): Likewise.
967         (vreinterpret_f64_p8): Likewise.
968         (vreinterpret_f64_p16): Likewise.
969         (vreinterpret_f64_s8): Likewise.
970         (vreinterpret_f64_s16): Likewise.
971         (vreinterpret_f64_s32): Likewise.
972         (vreinterpret_f64_s64): Likewise.
973         (vreinterpret_f64_u8): Likewise.
974         (vreinterpret_f64_u16): Likewise.
975         (vreinterpret_f64_u32): Likewise.
976         (vreinterpret_f64_u64): Likewise.
977         (vreinterpretq_f64_f32): Likewise.
978         (vreinterpretq_f64_p8): Likewise.
979         (vreinterpretq_f64_p16): Likewise.
980         (vreinterpretq_f64_s8): Likewise.
981         (vreinterpretq_f64_s16): Likewise.
982         (vreinterpretq_f64_s32): Likewise.
983         (vreinterpretq_f64_s64): Likewise.
984         (vreinterpretq_f64_u8): Likewise.
985         (vreinterpretq_f64_u16): Likewise.
986         (vreinterpretq_f64_u32): Likewise.
987         (vreinterpretq_f64_u64): Likewise.
988         (vreinterpret_s64_f64): Likewise.
989         (vreinterpretq_s64_f64): Likewise.
990         (vreinterpret_u64_f64): Likewise.
991         (vreinterpretq_u64_f64): Likewise.
992         (vreinterpret_s8_f64): Likewise.
993         (vreinterpretq_s8_f64): Likewise.
994         (vreinterpret_s16_f64): Likewise.
995         (vreinterpretq_s16_f64): Likewise.
996         (vreinterpret_s32_f64): Likewise.
997         (vreinterpretq_s32_f64): Likewise.
998         (vreinterpret_u8_f64): Likewise.
999         (vreinterpretq_u8_f64): Likewise.
1000         (vreinterpret_u16_f64): Likewise.
1001         (vreinterpretq_u16_f64): Likewise.
1002         (vreinterpret_u32_f64): Likewise.
1003         (vreinterpretq_u32_f64): Likewise.
1004
1005 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
1006
1007         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
1008         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
1009         (vreinterpret_p8_s8): Likewise.
1010         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
1011         (vreinterpret_p8_s16): Likewise.
1012         (vreinterpret_p8_s32): Likewise.
1013         (vreinterpret_p8_s64): Likewise.
1014         (vreinterpret_p8_f32): Likewise.
1015         (vreinterpret_p8_u8): Likewise.
1016         (vreinterpret_p8_u16): Likewise.
1017         (vreinterpret_p8_u32): Likewise.
1018         (vreinterpret_p8_u64): Likewise.
1019         (vreinterpret_p8_p16): Likewise.
1020         (vreinterpretq_p8_s8): Likewise.
1021         (vreinterpretq_p8_s16): Likewise.
1022         (vreinterpretq_p8_s32): Likewise.
1023         (vreinterpretq_p8_s64): Likewise.
1024         (vreinterpretq_p8_f32): Likewise.
1025         (vreinterpretq_p8_u8): Likewise.
1026         (vreinterpretq_p8_u16): Likewise.
1027         (vreinterpretq_p8_u32): Likewise.
1028         (vreinterpretq_p8_u64): Likewise.
1029         (vreinterpretq_p8_p16): Likewise.
1030         (vreinterpret_p16_s8): Likewise.
1031         (vreinterpret_p16_s16): Likewise.
1032         (vreinterpret_p16_s32): Likewise.
1033         (vreinterpret_p16_s64): Likewise.
1034         (vreinterpret_p16_f32): Likewise.
1035         (vreinterpret_p16_u8): Likewise.
1036         (vreinterpret_p16_u16): Likewise.
1037         (vreinterpret_p16_u32): Likewise.
1038         (vreinterpret_p16_u64): Likewise.
1039         (vreinterpret_p16_p8): Likewise.
1040         (vreinterpretq_p16_s8): Likewise.
1041         (vreinterpretq_p16_s16): Likewise.
1042         (vreinterpretq_p16_s32): Likewise.
1043         (vreinterpretq_p16_s64): Likewise.
1044         (vreinterpretq_p16_f32): Likewise.
1045         (vreinterpretq_p16_u8): Likewise.
1046         (vreinterpretq_p16_u16): Likewise.
1047         (vreinterpretq_p16_u32): Likewise.
1048         (vreinterpretq_p16_u64): Likewise.
1049         (vreinterpretq_p16_p8): Likewise.
1050         (vreinterpret_f32_s8): Likewise.
1051         (vreinterpret_f32_s16): Likewise.
1052         (vreinterpret_f32_s32): Likewise.
1053         (vreinterpret_f32_s64): Likewise.
1054         (vreinterpret_f32_u8): Likewise.
1055         (vreinterpret_f32_u16): Likewise.
1056         (vreinterpret_f32_u32): Likewise.
1057         (vreinterpret_f32_u64): Likewise.
1058         (vreinterpret_f32_p8): Likewise.
1059         (vreinterpret_f32_p16): Likewise.
1060         (vreinterpretq_f32_s8): Likewise.
1061         (vreinterpretq_f32_s16): Likewise.
1062         (vreinterpretq_f32_s32): Likewise.
1063         (vreinterpretq_f32_s64): Likewise.
1064         (vreinterpretq_f32_u8): Likewise.
1065         (vreinterpretq_f32_u16): Likewise.
1066         (vreinterpretq_f32_u32): Likewise.
1067         (vreinterpretq_f32_u64): Likewise.
1068         (vreinterpretq_f32_p8): Likewise.
1069         (vreinterpretq_f32_p16): Likewise.
1070         (vreinterpret_s64_s8): Likewise.
1071         (vreinterpret_s64_s16): Likewise.
1072         (vreinterpret_s64_s32): Likewise.
1073         (vreinterpret_s64_f32): Likewise.
1074         (vreinterpret_s64_u8): Likewise.
1075         (vreinterpret_s64_u16): Likewise.
1076         (vreinterpret_s64_u32): Likewise.
1077         (vreinterpret_s64_u64): Likewise.
1078         (vreinterpret_s64_p8): Likewise.
1079         (vreinterpret_s64_p16): Likewise.
1080         (vreinterpretq_s64_s8): Likewise.
1081         (vreinterpretq_s64_s16): Likewise.
1082         (vreinterpretq_s64_s32): Likewise.
1083         (vreinterpretq_s64_f32): Likewise.
1084         (vreinterpretq_s64_u8): Likewise.
1085         (vreinterpretq_s64_u16): Likewise.
1086         (vreinterpretq_s64_u32): Likewise.
1087         (vreinterpretq_s64_u64): Likewise.
1088         (vreinterpretq_s64_p8): Likewise.
1089         (vreinterpretq_s64_p16): Likewise.
1090         (vreinterpret_u64_s8): Likewise.
1091         (vreinterpret_u64_s16): Likewise.
1092         (vreinterpret_u64_s32): Likewise.
1093         (vreinterpret_u64_s64): Likewise.
1094         (vreinterpret_u64_f32): Likewise.
1095         (vreinterpret_u64_u8): Likewise.
1096         (vreinterpret_u64_u16): Likewise.
1097         (vreinterpret_u64_u32): Likewise.
1098         (vreinterpret_u64_p8): Likewise.
1099         (vreinterpret_u64_p16): Likewise.
1100         (vreinterpretq_u64_s8): Likewise.
1101         (vreinterpretq_u64_s16): Likewise.
1102         (vreinterpretq_u64_s32): Likewise.
1103         (vreinterpretq_u64_s64): Likewise.
1104         (vreinterpretq_u64_f32): Likewise.
1105         (vreinterpretq_u64_u8): Likewise.
1106         (vreinterpretq_u64_u16): Likewise.
1107         (vreinterpretq_u64_u32): Likewise.
1108         (vreinterpretq_u64_p8): Likewise.
1109         (vreinterpretq_u64_p16): Likewise.
1110         (vreinterpret_s8_s16): Likewise.
1111         (vreinterpret_s8_s32): Likewise.
1112         (vreinterpret_s8_s64): Likewise.
1113         (vreinterpret_s8_f32): Likewise.
1114         (vreinterpret_s8_u8): Likewise.
1115         (vreinterpret_s8_u16): Likewise.
1116         (vreinterpret_s8_u32): Likewise.
1117         (vreinterpret_s8_u64): Likewise.
1118         (vreinterpret_s8_p8): Likewise.
1119         (vreinterpret_s8_p16): Likewise.
1120         (vreinterpretq_s8_s16): Likewise.
1121         (vreinterpretq_s8_s32): Likewise.
1122         (vreinterpretq_s8_s64): Likewise.
1123         (vreinterpretq_s8_f32): Likewise.
1124         (vreinterpretq_s8_u8): Likewise.
1125         (vreinterpretq_s8_u16): Likewise.
1126         (vreinterpretq_s8_u32): Likewise.
1127         (vreinterpretq_s8_u64): Likewise.
1128         (vreinterpretq_s8_p8): Likewise.
1129         (vreinterpretq_s8_p16): Likewise.
1130         (vreinterpret_s16_s8): Likewise.
1131         (vreinterpret_s16_s32): Likewise.
1132         (vreinterpret_s16_s64): Likewise.
1133         (vreinterpret_s16_f32): Likewise.
1134         (vreinterpret_s16_u8): Likewise.
1135         (vreinterpret_s16_u16): Likewise.
1136         (vreinterpret_s16_u32): Likewise.
1137         (vreinterpret_s16_u64): Likewise.
1138         (vreinterpret_s16_p8): Likewise.
1139         (vreinterpret_s16_p16): Likewise.
1140         (vreinterpretq_s16_s8): Likewise.
1141         (vreinterpretq_s16_s32): Likewise.
1142         (vreinterpretq_s16_s64): Likewise.
1143         (vreinterpretq_s16_f32): Likewise.
1144         (vreinterpretq_s16_u8): Likewise.
1145         (vreinterpretq_s16_u16): Likewise.
1146         (vreinterpretq_s16_u32): Likewise.
1147         (vreinterpretq_s16_u64): Likewise.
1148         (vreinterpretq_s16_p8): Likewise.
1149         (vreinterpretq_s16_p16): Likewise.
1150         (vreinterpret_s32_s8): Likewise.
1151         (vreinterpret_s32_s16): Likewise.
1152         (vreinterpret_s32_s64): Likewise.
1153         (vreinterpret_s32_f32): Likewise.
1154         (vreinterpret_s32_u8): Likewise.
1155         (vreinterpret_s32_u16): Likewise.
1156         (vreinterpret_s32_u32): Likewise.
1157         (vreinterpret_s32_u64): Likewise.
1158         (vreinterpret_s32_p8): Likewise.
1159         (vreinterpret_s32_p16): Likewise.
1160         (vreinterpretq_s32_s8): Likewise.
1161         (vreinterpretq_s32_s16): Likewise.
1162         (vreinterpretq_s32_s64): Likewise.
1163         (vreinterpretq_s32_f32): Likewise.
1164         (vreinterpretq_s32_u8): Likewise.
1165         (vreinterpretq_s32_u16): Likewise.
1166         (vreinterpretq_s32_u32): Likewise.
1167         (vreinterpretq_s32_u64): Likewise.
1168         (vreinterpretq_s32_p8): Likewise.
1169         (vreinterpretq_s32_p16): Likewise.
1170         (vreinterpret_u8_s8): Likewise.
1171         (vreinterpret_u8_s16): Likewise.
1172         (vreinterpret_u8_s32): Likewise.
1173         (vreinterpret_u8_s64): Likewise.
1174         (vreinterpret_u8_f32): Likewise.
1175         (vreinterpret_u8_u16): Likewise.
1176         (vreinterpret_u8_u32): Likewise.
1177         (vreinterpret_u8_u64): Likewise.
1178         (vreinterpret_u8_p8): Likewise.
1179         (vreinterpret_u8_p16): Likewise.
1180         (vreinterpretq_u8_s8): Likewise.
1181         (vreinterpretq_u8_s16): Likewise.
1182         (vreinterpretq_u8_s32): Likewise.
1183         (vreinterpretq_u8_s64): Likewise.
1184         (vreinterpretq_u8_f32): Likewise.
1185         (vreinterpretq_u8_u16): Likewise.
1186         (vreinterpretq_u8_u32): Likewise.
1187         (vreinterpretq_u8_u64): Likewise.
1188         (vreinterpretq_u8_p8): Likewise.
1189         (vreinterpretq_u8_p16): Likewise.
1190         (vreinterpret_u16_s8): Likewise.
1191         (vreinterpret_u16_s16): Likewise.
1192         (vreinterpret_u16_s32): Likewise.
1193         (vreinterpret_u16_s64): Likewise.
1194         (vreinterpret_u16_f32): Likewise.
1195         (vreinterpret_u16_u8): Likewise.
1196         (vreinterpret_u16_u32): Likewise.
1197         (vreinterpret_u16_u64): Likewise.
1198         (vreinterpret_u16_p8): Likewise.
1199         (vreinterpret_u16_p16): Likewise.
1200         (vreinterpretq_u16_s8): Likewise.
1201         (vreinterpretq_u16_s16): Likewise.
1202         (vreinterpretq_u16_s32): Likewise.
1203         (vreinterpretq_u16_s64): Likewise.
1204         (vreinterpretq_u16_f32): Likewise.
1205         (vreinterpretq_u16_u8): Likewise.
1206         (vreinterpretq_u16_u32): Likewise.
1207         (vreinterpretq_u16_u64): Likewise.
1208         (vreinterpretq_u16_p8): Likewise.
1209         (vreinterpretq_u16_p16): Likewise.
1210         (vreinterpret_u32_s8): Likewise.
1211         (vreinterpret_u32_s16): Likewise.
1212         (vreinterpret_u32_s32): Likewise.
1213         (vreinterpret_u32_s64): Likewise.
1214         (vreinterpret_u32_f32): Likewise.
1215         (vreinterpret_u32_u8): Likewise.
1216         (vreinterpret_u32_u16): Likewise.
1217         (vreinterpret_u32_u64): Likewise.
1218         (vreinterpret_u32_p8): Likewise.
1219         (vreinterpret_u32_p16): Likewise.
1220         (vreinterpretq_u32_s8): Likewise.
1221         (vreinterpretq_u32_s16): Likewise.
1222         (vreinterpretq_u32_s32): Likewise.
1223         (vreinterpretq_u32_s64): Likewise.
1224         (vreinterpretq_u32_f32): Likewise.
1225         (vreinterpretq_u32_u8): Likewise.
1226         (vreinterpretq_u32_u16): Likewise.
1227         (vreinterpretq_u32_u64): Likewise.
1228         (vreinterpretq_u32_p8): Likewise.
1229         (vreinterpretq_u32_p16): Likewise.
1230
1231 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
1232
1233         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
1234         Pattern extended.
1235         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator
1236         extended.
1237         (sqabs): Likewise.
1238         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
1239         (vqnegd_s64): Likewise.
1240         (vqabs_s64): Likewise.
1241         (vqabsd_s64): Likewise.
1242
1243 2014-04-22  Richard Henderson  <rth@redhat.com>
1244
1245         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
1246         computation to the top of the loop.
1247
1248 2014-04-22  Renlin  <renlin.li@arm.com>
1249             Jiong Wang  <jiong.wang@arm.com>
1250
1251         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
1252         * config/aarch64/aarch64.c (aarch64_layout_frame)
1253         (aarch64_initial_elimination_offset): Likewise.
1254
1255 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1256
1257         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
1258         Fix indentation.
1259
1260 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
1261
1262         * machmode.h (bitwise_mode_for_mode): Declare.
1263         * stor-layout.h (bitwise_type_for_mode): Likewise.
1264         * stor-layout.c (bitwise_mode_for_mode): New function.
1265         (bitwise_type_for_mode): Likewise.
1266         * builtins.c (fold_builtin_memory_op): Use it instead of
1267         int_mode_for_mode and build_nonstandard_integer_type.
1268
1269 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1270
1271         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
1272         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
1273         (*-*-solaris2*): Simplify.
1274         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
1275         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
1276         *-*-solaris2.9* handling.
1277
1278         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
1279         as bug.
1280         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
1281         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
1282         handling, simplify.
1283         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
1284         * configure: Regenerate.
1285
1286         * config/i386/sol2-9.h: Remove.
1287
1288         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
1289         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
1290         Remove Solaris 9 references.
1291
1292 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
1293
1294         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
1295         (floatuns<GPI:mode><GPF:mode>2): Remove.
1296         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
1297         and floatuns conversions.
1298         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
1299         and floatuns conversions.
1300         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
1301         (w1,w2): New mode attributes for inequal width conversions.
1302
1303 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
1304
1305         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
1306         the output asm format.
1307
1308 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
1309
1310         * config/aarch64/aarch64-simd.md
1311         (aarch64_cm<optab>di): Always split.
1312         (*aarch64_cm<optab>di): New.
1313         (aarch64_cmtstdi): Always split.
1314         (*aarch64_cmtstdi): New.
1315
1316 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
1317
1318         PR tree-optimization/60823
1319         * omp-low.c (ipa_simd_modify_function_body): Go through
1320         all SSA_NAMEs and for those refering to vector arguments
1321         which are going to be replaced adjust SSA_NAME_VAR and,
1322         if it is a default definition, change it into a non-default
1323         definition assigned at the beginning of function from new_decl.
1324         (ipa_simd_modify_stmt_ops): Rewritten.
1325         * tree-dfa.c (set_ssa_default_def): When removing default def,
1326         check for NULL loc instead of NULL *loc.
1327
1328 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1329
1330         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
1331         restrictions on core registers for DImode values in Thumb2.
1332
1333 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
1334
1335         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
1336         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
1337
1338 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
1339
1340         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
1341         (*iordi_notzesidi_di): Likewise.
1342         (*iordi_notsesidi_di): Likewise.
1343
1344 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
1345
1346         * config/arm/arm-protos.h (tune_params): New struct members.
1347         * config/arm/arm.c: Initialise tune_params per processor.
1348         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
1349         for speed, based on new tune_params.
1350
1351 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
1352
1353         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro
1354         added.
1355         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added
1356         macro.
1357         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment
1358         corrected.
1359         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
1360         * config/aarch64/arm_neon.h (vrnd_f64): Added.
1361         (vrnda_f64): Likewise.
1362         (vrndi_f64): Likewise.
1363         (vrndm_f64): Likewise.
1364         (vrndn_f64): Likewise.
1365         (vrndp_f64): Likewise.
1366         (vrndx_f64): Likewise.
1367
1368 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1369
1370         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
1371         GET_MODE_SIZE argument is enum machine_mode.
1372
1373 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
1374
1375         PR target/60910
1376         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
1377         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
1378
1379 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
1380
1381         PR middle-end/60281
1382         * asan.c (asan_emit_stack_protection): Force the base to align to
1383         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
1384         appropriate bits if STRICT_ALIGNMENT.
1385         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
1386         when asan is on.
1387         (expand_used_vars): Leave a space in the stack frame for alignment
1388         if STRICT_ALIGNMENT.
1389
1390 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
1391
1392         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
1393         than a gimple.
1394         (gimple_store_p): Likewise.
1395         (gimple_assign_load_p): Likewise.
1396         (gimple_assign_cast_p): Likewise.
1397         (gimple_clobber_p): Likewise.
1398
1399         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
1400         rather than a gimple.
1401         (gimple_assign_cast_p): Likewise.
1402
1403 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1404
1405         PR target/60735
1406         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
1407         If mode is DDmode and TARGET_E500_DOUBLE allow move.
1408
1409         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
1410         more debug information for E500 if -mdebug=reg.
1411
1412 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
1413
1414         PR target/60909
1415         * config/i386/i386.c (ix86_expand_builtin)
1416         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
1417         register for target RTX.
1418         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
1419
1420 2014-04-18  Cong Hou  <congh@google.com>
1421
1422         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
1423         the widen-mult pattern by handling two operands with different sizes,
1424         and operands whose size is smaller than half of the result type.
1425
1426 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
1427
1428         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
1429         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
1430         (do_estimate_edge_time): Compute it.
1431         * ipa-inline.c (want_inline_small_function_p): Bypass
1432         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
1433
1434 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
1435
1436         * ipa-inline.c (spec_rem): New static variable.
1437         (dump_overall_stats): New function.
1438         (dump_inline_stats): New function.
1439
1440 2014-04-18  Richard Henderson  <rth@redhat.com>
1441
1442         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
1443         to GET_MODE_SIZE, not a reg_class_t.
1444
1445 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1446
1447         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
1448         (vsx_xxmrglw_<mode>): Likewise.
1449
1450 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
1451
1452         PR target/60876
1453         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
1454         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
1455         (rs6000_init_hard_regno_mode_ok): Likewise.
1456
1457 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
1458
1459         * ipa-inline.c (inline_small_functions): Account only non-cold
1460         functions.
1461         * doc/invoke.texi (inline-unit-growth): Update documentation.
1462
1463 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
1464
1465         * config/rs6000/rs6000.md (addti3, subti3): New.
1466
1467 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
1468
1469         PR target/60863
1470         * config/i386/i386.c (ix86_expand_clear): Remove outdated
1471         comment.  Check optimize_insn_for_size_p instead of
1472         optimize_insn_for_speed_p.
1473
1474 2014-04-17  Martin Jambor  <mjambor@suse.cz>
1475
1476         * gimple-iterator.c (gsi_start_edge): New function.
1477         * gimple-iterator.h (gsi_start_edge): Declare.
1478         * tree-sra.c (single_non_eh_succ): New function.
1479         (disqualify_ops_if_throwing_stmt): Renamed to
1480         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
1481         having one non-EH successor BB.
1482         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
1483         generate loads into replacements.
1484         (sra_modify_assign): Likewise and and also use the simple path for
1485         such statements.
1486         (sra_modify_function_body): Commit statements on edges.
1487
1488 2014-04-17  Richard Biener  <rguenther@suse.de>
1489
1490         PR middle-end/60849
1491         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
1492         comparison results and add clarifying comment.
1493
1494 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
1495
1496         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
1497         (blank_mode): Initialize it.
1498         (emit_mode_size_inline, emit_mode_nunits_inline,
1499         emit_mode_inner_inline): New functions.
1500         (emit_insn_modes_h): Call them and surround their output with
1501         #if GCC_VERSION >= 4001 ... #endif.
1502         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
1503         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
1504         mode_* arrays if the argument is __builtin_constant_p.
1505         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
1506         is enum machine_mode.
1507
1508 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
1509
1510         * passes.c (opt_pass::execute): Adjust.
1511         (pass_manager::execute_pass_mode_switching): Likewise.
1512         (early_local_passes::execute): Likewise.
1513         (execute_one_pass): Pass cfun to the pass's execute method.
1514         * tree-pass.h (opt_pass::execute): Add function * argument.
1515         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
1516         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
1517         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
1518         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
1519         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
1520         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
1521         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
1522         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
1523         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
1524         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
1525         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
1526         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
1527         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
1528         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
1529         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
1530         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
1531         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
1532         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
1533         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
1534         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1535         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
1536         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
1537         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
1538         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
1539         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
1540         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
1541         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
1542         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
1543         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
1544         Adjust.
1545
1546 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
1547
1548         * passes.c (opt_pass::gate): Take function * argument.
1549         (gate_all_early_local_passes): Merge into
1550         (early_local_passes::gate): this.
1551         (gate_all_early_optimizations): Merge into
1552         (all_early_optimizations::gate): this.
1553         (gate_all_optimizations): Mege into
1554         (all_optimizations::gate): this.
1555         (gate_all_optimizations_g): Merge into
1556         (all_optimizations_g::gate): this.
1557         (gate_rest_of_compilation): Mege into
1558         (rest_of_compilation::gate): this.
1559         (gate_postreload): Merge into
1560         (postreload::gate): this.
1561         (dump_one_pass): Pass cfun to the pass's gate method.
1562         (execute_ipa_summary_passes): Likewise.
1563         (execute_one_pass): Likewise.
1564         (ipa_write_summaries_2): Likewise.
1565         (ipa_write_optimization_summaries_1): Likewise.
1566         (ipa_read_summaries_1): Likewise.
1567         (ipa_read_optimization_summaries_1): Likewise.
1568         (execute_ipa_stmt_fixups): Likewise.
1569         * tree-pass.h (opt_pass::gate): Add function * argument.
1570         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
1571         combine-stack-adj.c, combine.c, compare-elim.c,
1572         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
1573         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
1574         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
1575         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
1576         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
1577         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
1578         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
1579         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
1580         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
1581         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
1582         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
1583         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
1584         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
1585         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
1586         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
1587         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1588         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
1589         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
1590         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
1591         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
1592         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
1593         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
1594         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
1595         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
1596         var-tracking.c, vtable-verify.c, web.c: Adjust.
1597
1598 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
1599
1600         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
1601         * configure: Regenerate.
1602
1603 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
1604
1605         * passes.c (dump_one_pass): don't check pass->has_gate.
1606         (execute_ipa_summary_passes): Likewise.
1607         (execute_one_pass): Likewise.
1608         (ipa_write_summaries_2): Likewise.
1609         (ipa_write_optimization_summaries_1): Likewise.
1610         (ipa_read_optimization_summaries_1): Likewise.
1611         (execute_ipa_stmt_fixups): Likewise.
1612         * tree-pass.h (pass_data::has_gate): Remove.
1613         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
1614         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
1615         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
1616         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
1617         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
1618         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
1619         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
1620         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
1621         gimple-low.c, gimple-ssa-isolate-paths.c,
1622         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
1623         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
1624         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
1625         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
1626         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
1627         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
1628         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
1629         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
1630         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
1631         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
1632         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
1633         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
1634         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1635         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
1636         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
1637         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
1638         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
1639         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
1640         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
1641         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
1642         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
1643         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
1644         Adjust.
1645
1646 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
1647
1648         * pass_manager.h (pass_manager::register_dump_files_1): Remove
1649         declaration.
1650         * passes.c (pass_manager::register_dump_files_1): Merge into
1651         (pass_manager::register_dump_files): this, and remove its handling of
1652         properties since the pass always has the properties anyway.
1653         (pass_manager::pass_manager): Adjust.
1654
1655 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
1656
1657         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
1658         * passes.c (pass_manager::register_dump_files_1): Remove dead code
1659         dealing with properties.
1660         (pass_manager::register_dump_files): Adjust.
1661
1662 2014-03-20  Mark Wielaard  <mjw@redhat.com>
1663
1664         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
1665         then represent the bound as normal constant value.
1666
1667 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
1668
1669         PR target/60847
1670         Forward port from 4.8 branch
1671         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
1672
1673         * config/i386/bmiintrin.h (_blsi_u32): New.
1674         (_blsi_u64): Ditto.
1675         (_blsr_u32): Ditto.
1676         (_blsr_u64): Ditto.
1677         (_blsmsk_u32): Ditto.
1678         (_blsmsk_u64): Ditto.
1679         (_tzcnt_u32): Ditto.
1680         (_tzcnt_u64): Ditto.
1681
1682 2014-04-17  Kito Cheng  <kito@0xlab.org>
1683
1684         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
1685
1686 2014-04-17  Richard Biener  <rguenther@suse.de>
1687
1688         PR middle-end/60849
1689         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
1690         boolean results for comparisons.
1691
1692 2014-04-17  Richard Biener  <rguenther@suse.de>
1693
1694         PR tree-optimization/60836
1695         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
1696         initial PHI args to be gimple values.
1697
1698 2014-04-17   Richard Biener  <rguenther@suse.de>
1699
1700         PR tree-optimization/60841
1701         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
1702         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
1703         of stmts to SLP build.
1704         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
1705         (vect_analyze_slp): Likewise.
1706         (vect_analyze_slp_instance): Likewise.
1707         (vect_build_slp_tree): Limit overall SLP tree growth.
1708         * tree-vectorizer.h (vect_analyze_data_refs,
1709         vect_analyze_slp): Adjust prototypes.
1710
1711 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
1712
1713         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
1714         Silvermont.
1715
1716 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
1717
1718         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
1719         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
1720         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
1721         for TARGET_SLOW_PSHUFB
1722
1723 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
1724
1725         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
1726         * config/i386/i386.c (intel_cost): Ditto.
1727
1728 2014-04-17  Joey Ye  <joey.ye@arm.com>
1729
1730         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
1731
1732 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
1733
1734         * opts.c (common_handle_option): Disable -fipa-reference coorectly
1735         with -fuse-profile.
1736
1737 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
1738
1739         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
1740         (type_all_derivations_known_p): New predicate.
1741         (type_all_ctors_visible_p): New predicate.
1742         (type_possibly_instantiated_p): New predicate.
1743         (get_odr_type): Compute all_derivations_known.
1744         (dump_odr_type): Dump the flag.
1745         (maybe_record_type): Cleanup.
1746         (record_target_from_binfo): Add bases_to_consider array;
1747         record bases for types w/o instances and skip CXX destructor.
1748         (possible_polymorphic_call_targets_1): Add bases_to_consider
1749         and consider_construction parameters; check if type may have instance.
1750         (get_polymorphic_call_info): Set maybe_in_construction to true
1751         when we know nothing.
1752         (record_targets_from_bases): Skip CXX destructors; they are
1753         never called for types in construction.
1754         (possible_polymorphic_call_targets): Do not record target when
1755         type may not have instance.
1756
1757 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
1758
1759         PR ipa/60854
1760         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
1761         external aliases alive, too.
1762
1763 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
1764
1765         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
1766         definition.
1767
1768 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
1769
1770         * final.c (compute_alignments): Do not apply loop alignment to a block
1771         falling through to the exit.
1772
1773 2014-04-16  Catherine Moore  <clm@codesourcery.com>
1774
1775         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
1776         Adjust constraints for microMIPS store patterns.
1777
1778 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
1779
1780         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
1781
1782 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
1783
1784         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
1785         (append_use): Run at -O0.
1786         (append_vdef): Likewise.
1787         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
1788         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
1789
1790 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
1791
1792         PR tree-optimization/60844
1793         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
1794         (propagate_op_to_single_use, remove_visited_stmt_chain,
1795         linearize_expr, repropagate_negates, reassociate_bb): Use it
1796         instead of gsi_remove.
1797
1798 2014-04-16  Martin Jambor  <mjambor@suse.cz>
1799
1800         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
1801         ipa_transforms_to_apply.
1802         (cgraph_function_versioning): Assert that old_node has empty
1803         ipa_transforms_to_apply.
1804         * trans-mem.c (ipa_tm_create_version): Likewise.
1805         * tree-inline.c (tree_function_versioning): Do not duplicate
1806         ipa_transforms_to_apply.
1807
1808 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1809
1810         PR target/60817
1811         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
1812         x86_64-*-* cases.
1813         Pass necessary as flags on 64-bit Solaris/x86.
1814         Use lowercase relocs for x86_64-*-*.
1815         * configure: Regenerate.
1816
1817 2014-04-15  Jan Hubicka  <jh@suse.cz>
1818
1819         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
1820         (maybe_record_node, likely_target_p): Use it.
1821
1822 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1823
1824         PR target/60839
1825         Revert following patch
1826
1827         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1828
1829         PR target/60735
1830         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
1831         software floating point or no floating point registers, do not
1832         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
1833         in GPRs that occurs after we tested for GPRs that would never be
1834         true.
1835
1836         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
1837         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
1838         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
1839         specifically allow DDmode, since that does not use the SPE SIMD
1840         instructions.
1841
1842 2014-03-21  Mark Wielaard  <mjw@redhat.com>
1843
1844         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
1845         as unsigned or int depending on type and value used.
1846
1847 2014-04-15  Richard Biener  <rguenther@suse.de>
1848
1849         PR rtl-optimization/56965
1850         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
1851         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
1852         ... here.
1853         * alias.c (true_dependence_1): Do not call
1854         nonoverlapping_component_refs_p.
1855         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
1856         nonoverlapping_component_refs_p.
1857         (indirect_refs_may_alias_p): Likewise.
1858
1859 2014-04-15  Teresa Johnson  <tejohnson@google.com>
1860
1861         * cfg.c (dump_bb_info): Fix flags check.
1862         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
1863
1864 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1865
1866         PR rtl-optimization/60663
1867         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
1868         avoid 0 cost.
1869
1870 2014-04-15  Richard Biener  <rguenther@suse.de>
1871
1872         * lto-streamer.h (LTO_major_version): Bump to 4.
1873
1874 2014-04-15  Richard Biener  <rguenther@suse.de>
1875
1876         * common.opt (lto_partition_model): New enum.
1877         (flto-partition=): Merge separate options with a single with argument,
1878         add -flto-partition=one support.
1879         * flag-types.h (enum lto_partition_model): Declare.
1880         * opts.c (finish_options): Remove duplicate -flto-partition=
1881         option check.
1882         * lto-wrapper.c (run_gcc): Adjust.
1883
1884 2014-04-15  Richard Biener  <rguenther@suse.de>
1885
1886         * alias.c (ncr_compar): New function.
1887         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
1888
1889 2014-04-15  Richard Biener  <rguenther@suse.de>
1890
1891         * alias.c (record_component_aliases): Do not walk BINFOs.
1892
1893 2014-04-15  Richard Biener  <rguenther@suse.de>
1894
1895         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1896         Add struct function argument and adjust.
1897         (find_func_aliases_for_call): Likewise.
1898         (find_func_aliases): Likewise.
1899         (find_func_clobbers): Likewise.
1900         (intra_create_variable_infos): Likewise.
1901         (compute_points_to_sets): Likewise.
1902         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
1903
1904 2014-04-15  Richard Biener  <rguenther@suse.de>
1905
1906         * tree.c (iterative_hash_expr): Use enum tree_code_class
1907         to store TREE_CODE_CLASS.
1908         (tree_block): Likewise.
1909         (tree_set_block): Likewise.
1910         * tree.h (fold_build_pointer_plus_loc): Use
1911         convert_to_ptrofftype_loc.
1912
1913 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
1914
1915         PR plugins/59335
1916         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
1917         added in 4.9.
1918
1919 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1920
1921         * cfgloop.h (struct loop): Move force_vectorize down.
1922         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
1923         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
1924         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
1925         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
1926         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
1927         * tree-core.h (enum annot_expr_kind): Add new kind values.
1928         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
1929         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
1930         kinds.
1931         * tree.def (ANNOTATE_EXPR): Tweak comment.
1932
1933 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
1934
1935         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
1936         cxa_pure_virtual).
1937
1938 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
1939
1940         * tree.h (TYPE_IDENTIFIER): Declare.
1941         * tree.c (subrange_type_for_debug_p): Use it.
1942         * godump.c (go_format_type): Likewise.
1943         * dwarf2out.c (is_cxx_auto, modified_type_die,
1944         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
1945         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
1946
1947 2014-04-14  Jan Hubicka   <hubicka@ucw.cz>
1948
1949         PR lto/60820
1950         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
1951
1952 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
1953
1954         * config/i386/i386.c (examine_argument): Return bool.  Return true if
1955         parameter should be passed in memory.
1956         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
1957         (construct_container): Update calls to examine_argument.
1958         (function_arg_advance_64): Ditto.
1959         (return_in_memory_32): Merge with ix86_return_in_memory.
1960         (return_in_memory_64): Ditto.
1961         (return_in_memory_ms_64): Ditto.
1962
1963 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
1964
1965         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
1966         * coverage.c (coverage_compute_profile_id): Handle externally visible
1967         symbols.
1968
1969 2014-04-14  Martin Jambor  <mjambor@suse.cz>
1970
1971         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
1972         DECL_DISREGARD_INLINE_LIMITS functions.
1973
1974 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1975
1976         PR target/60827
1977         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
1978
1979 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1980
1981         PR target/60827
1982         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
1983         optimize_insn_for_speed_p instead of
1984         optimize_function_for_speed_p.
1985
1986 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
1987
1988         * doc/invoke.texi (free): Document AArch64.
1989
1990 2014-04-14  Richard Biener  <rguenther@suse.de>
1991
1992         PR tree-optimization/60042
1993         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
1994         (insert_into_preds_of_block): Do not prevent PHI insertion
1995         for REFERENCE exprs here ...
1996         (eliminate_dom_walker::before_dom_children): ... but prevent
1997         their use here under similar conditions when applied to the
1998         IL after PRE optimizations.
1999
2000 2014-04-14  Richard Biener  <rguenther@suse.de>
2001
2002         * passes.def: Move early points-to after early SRA.
2003
2004 2014-04-14  Richard Biener  <rguenther@suse.de>
2005
2006         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
2007         check for which sign-changes we allow when forwarding
2008         a converted value into a switch.
2009
2010 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
2011
2012         * stor-layout.c (place_field): Finalize non-constant offset for the
2013         field, if any.
2014
2015 2014-04-14  Richard Biener  <rguenther@suse.de>
2016
2017         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
2018         as argument.
2019         (expand_switch_using_bit_tests_p): Likewise.
2020         (process_switch): Compute and pass on speed_p based on the
2021         switch stmt.
2022         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
2023         optimize_bb_for_speed_p.
2024
2025 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
2026
2027         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
2028         * function.h (struct function): Rename has_force_vect_loops into
2029         has_force_vectorize_loops.
2030         * lto-streamer-in.c (input_cfg): Adjust for renaming.
2031         (input_struct_function_base): Likewise.
2032         * lto-streamer-out.c (output_cfg): Likewise.
2033         (output_struct_function_base): Likewise.
2034         * omp-low.c (expand_omp_simd): Likewise.
2035         * tree-cfg.c (move_sese_region_to_fn): Likewise.
2036         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
2037         (version_loop_for_if_conversion): Likewise.
2038         (tree_if_conversion): Likewise.
2039         (main_tree_if_conversion): Likewise.
2040         (gate_tree_if_conversion): Likewise.
2041         * tree-inline.c (copy_loops): Likewise.
2042         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
2043         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
2044         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
2045         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
2046         * tree-vectorizer.c (vectorize_loops): Likewise.
2047         * tree-vectorizer.h (unlimited_cost_model): Likewise.
2048
2049 2014-04-14  Richard Biener  <rguenther@suse.de>
2050
2051         PR lto/60720
2052         * lto-streamer-out.c (wrap_refs): New function.
2053         (lto_output): Wrap symbol references in global initializes in
2054         type-preserving MEM_REFs.
2055
2056 2014-04-14  Christian Bruel  <christian.bruel@st.com>
2057
2058         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
2059
2060 2014-04-14  Christian Bruel  <christian.bruel@st.com>
2061
2062         * config/sh/sh.md (setmemqi): New expand pattern.
2063         * config/sh/sh.h (CLEAR_RATIO): Define.
2064         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
2065         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
2066
2067 2014-04-14  Richard Biener  <rguenther@suse.de>
2068
2069         PR middle-end/55022
2070         * fold-const.c (negate_expr_p): Don't negate directional rounding
2071         division.
2072         (fold_negate_expr): Likewise.
2073
2074 2014-04-14  Richard Biener  <rguenther@suse.de>
2075
2076         PR tree-optimization/59817
2077         PR tree-optimization/60453
2078         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
2079         recursion to catch all CHRECs in the scalar evolution and restrict
2080         the predicate for the remains appropriately.
2081
2082 2014-04-12  Catherine Moore  <clm@codesourcery.com>
2083
2084         * config/mips/constraints.md: Add new register constraint "kb".
2085         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
2086         (*movhi_internal): Likewise.
2087         (*movqi_internal): Likewise.
2088         * config/mips/mips.h (M16_STORE_REGS): New register class.
2089         (REG_CLASS_NAMES): Add M16_STORE_REGS.
2090         (REG_CLASS_CONTENTS): Likewise.
2091         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
2092
2093 2014-04-11  Tobias Burnus  <burnus@net-b.de>
2094
2095         PR c/60194
2096         * doc/invoke.texi (-Wformat-signedness): Document it.
2097         (Wformat=2): Mention that this enables -Wformat-signedness.
2098
2099 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
2100
2101         * common/config/epiphany/epiphany-common.c
2102         (epiphany_option_optimization_table): Enable section anchors by
2103         default at -O1 or higher.
2104         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
2105         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
2106         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
2107         carries no extra cost.
2108         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
2109         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
2110         * config/epiphany/predicates.md (memclob_operand): New predicate.
2111         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
2112         Use memclob_operand predicate and X constraint for operand 3.
2113
2114 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
2115
2116         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
2117         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
2118         its operands.
2119
2120 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
2121
2122         PR rtl-optimization/60651
2123         * mode-switching.c (optimize_mode_switching): Make sure to emit
2124         sets of a lower numbered entity before sets of a higher numbered
2125         entity to a mode of the same or lower priority.
2126         When creating a seginfo for a basic block that starts with a code
2127         label, move the insertion point past the code label.
2128         (new_seginfo): Document and enforce requirement that
2129         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
2130         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
2131         * doc/tm.texi: Regenerate.
2132
2133 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
2134
2135         PR target/60811
2136         * config/arc/arc.c (arc_save_restore): Fix assert typo.
2137
2138 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
2139
2140         * BASE-VER: Set to 4.10.0.
2141
2142 2014-04-11  Tobias Burnus  <burnus@net-b.de>
2143
2144         PR other/59055
2145         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
2146         * doc/gcc.texi (Service): Update description in the @menu
2147         * doc/invoke.texi (Option Summary): Remove misplaced and
2148         duplicated @menu.
2149
2150 2014-04-11  Steve Ellcey  <sellcey@mips.com>
2151             Jakub Jelinek  <jakub@redhat.com>
2152
2153         PR middle-end/60556
2154         * expr.c (convert_move): Use emit_store_flag_force instead of
2155         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
2156         argument to it.
2157
2158 2014-04-11  Richard Biener  <rguenther@suse.de>
2159
2160         PR middle-end/60797
2161         * varasm.c (assemble_alias): Avoid endless error reporting
2162         recursion by setting TREE_ASM_WRITTEN.
2163
2164 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2165
2166         * config/s390/s390.md: Add a splitter for NOT rtx.
2167
2168 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
2169
2170         PR rtl-optimization/60663
2171         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
2172
2173 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
2174             Jakub Jelinek  <jakub@redhat.com>
2175
2176         PR lto/60567
2177         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
2178         flag from decl_node to node.
2179
2180 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2181
2182         PR debug/60655
2183         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
2184         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
2185         ameliorating the cases where it can be.
2186
2187 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
2188
2189         Revert
2190         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
2191
2192         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
2193         (loadsync_<mode>): Change mode.
2194         (load_quadpti, store_quadpti): New.
2195         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
2196         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
2197         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
2198
2199 2014-04-09  Cong Hou  <congh@google.com>
2200
2201         PR testsuite/60773
2202         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
2203         documentation.
2204
2205 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2206
2207         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
2208         instead of vnor to exploit possible fusion opportunity in the
2209         future.
2210         (altivec_expand_vec_perm_const_le): Likewise.
2211
2212 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
2213
2214         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
2215         (loadsync_<mode>): Change mode.
2216         (load_quadpti, store_quadpti): New.
2217         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
2218         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
2219
2220 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
2221
2222         PR target/60763
2223         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
2224         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
2225         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
2226
2227 2014-04-08  Richard Biener  <rguenther@suse.de>
2228
2229         PR middle-end/60706
2230         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
2231         a 64bit widest int print double-int similar to on HWI64 hosts.
2232
2233 2014-04-08  Richard Biener  <rguenther@suse.de>
2234
2235         PR tree-optimization/60785
2236         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
2237         default defs properly.
2238
2239 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
2240
2241         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
2242         (Weffc++): Likewise.
2243
2244 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
2245
2246         * ipa-devirt.c (maybe_record_node): When node is not recorded,
2247         set completep to false rather than true.
2248
2249 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
2250
2251         PR target/60504
2252         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
2253         ARM_TARGET2_DWARF_FORMAT.
2254
2255 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
2256
2257         PR target/60609
2258         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
2259         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
2260         ADDR_DIFF_VEC.
2261
2262 2014-04-07  Richard Biener  <rguenther@suse.de>
2263
2264         PR tree-optimization/60766
2265         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
2266         (may_eliminate_iv): Convert cand_value_at result to desired type.
2267
2268 2014-04-07  Jason Merrill  <jason@redhat.com>
2269
2270         PR c++/60731
2271         * common.opt (-fno-gnu-unique): Add.
2272         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
2273
2274 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2275
2276         * haifa-sched.c: Fix outdated function reference and minor
2277         grammar errors in introductory comment.
2278
2279 2014-04-07  Richard Biener  <rguenther@suse.de>
2280
2281         PR middle-end/60750
2282         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
2283         for noreturn calls.
2284         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
2285
2286 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
2287
2288         PR debug/55794
2289         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
2290         size accounting for thunks.
2291         (pa_asm_output_mi_thunk): Use final_start_function() and
2292         final_end_function() to output function start and end directives.
2293
2294 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
2295
2296         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
2297         device specific ISA/ feature information. Remove short_sp and
2298         errata_skip ds.  Add avr_device_specific_features enum to have device
2299         specific info.
2300         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
2301         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
2302         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
2303         updated device specific info.
2304         * config/avr/avr-mcus.def: Merge device specific details to
2305         dev_attribute field.
2306         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
2307         errata_skip.
2308         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
2309         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
2310         assembler if RMW isa supported by current device.
2311         * config/avr/genmultilib.awk: Update as device info structure changed.
2312         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
2313
2314 2014-04-04  Cong Hou  <congh@google.com>
2315
2316         PR tree-optimization/60656
2317         * tree-vect-stmts.c (supportable_widening_operation):
2318         Fix a bug that elements in a vector with vect_used_by_reduction
2319         property are incorrectly reordered when the operation on it is not
2320         consistant with the one in reduction operation.
2321
2322 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
2323
2324         PR rtl-optimization/60155
2325         * gcse.c (record_set_data): New function.
2326         (single_set_gcse): New function.
2327         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
2328         (hoist_code): Likewise.
2329         (get_pressure_class_and_nregs): Likewise.
2330
2331 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
2332
2333         * explow.c (probe_stack_range): Emit a final optimization blockage.
2334
2335 2014-04-04  Anthony Green  <green@moxielogic.com>
2336
2337         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
2338         typos.
2339
2340 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
2341
2342         PR ipa/59626
2343         * lto-cgraph.c (input_overwrite_node): Check that partitioning
2344         flags are set only during streaming.
2345         * ipa.c (process_references, walk_polymorphic_call_targets,
2346         symtab_remove_unreachable_nodes): Drop bodies of always inline
2347         after early inlining.
2348         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
2349
2350 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
2351         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2352
2353         PR debug/60655
2354         * dwarf2out.c (const_ok_for_output_1): Reject expressions
2355         containing a NOT.
2356
2357 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2358
2359         PR bootstrap/60743
2360         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
2361         duration.
2362         (cortex_a53_fdivd): Likewise.
2363
2364 2014-04-04  Martin Jambor  <mjambor@suse.cz>
2365
2366         PR ipa/60640
2367         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
2368         Adjust all callers.
2369         * cgraph.c (clone_of_p): Also return true if thunks match.
2370         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
2371         cgraph_function_or_thunk_node and an obsolete comment.
2372         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
2373         file.
2374         (build_function_decl_skip_args): Likewise.
2375         (set_new_clone_decl_and_node_flags): New function.
2376         (duplicate_thunk_for_node): Likewise.
2377         (redirect_edge_duplicating_thunks): Likewise.
2378         (cgraph_clone_node): New parameter args_to_skip, pass it to
2379         redirect_edge_duplicating_thunks which is called instead of
2380         cgraph_redirect_edge_callee.
2381         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
2382         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
2383
2384 2014-04-04  Jeff Law  <law@redhat.com>
2385
2386         PR target/60657
2387         * config/arm/predicates.md (const_int_I_operand): New predicate.
2388         (const_int_M_operand): Similarly.
2389         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
2390         const_int_operand.
2391         (insv_t2, extv_reg, extzv_t2): Likewise.
2392         (load_multiple_with_writeback): Similarly for const_int_I_operand.
2393         (pop_multiple_with_writeback_and_return): Likewise.
2394         (vfp_pop_multiple_with_writeback): Likewise
2395
2396 2014-04-04  Richard Biener  <rguenther@suse.de>
2397
2398         PR ipa/60746
2399         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
2400         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
2401         non-GIMPLE_LABELs.
2402         * gimplify.h (gimple_add_tmp_var_fn): Declare.
2403         * gimplify.c (gimple_add_tmp_var_fn): New function.
2404         * gimple-expr.h (create_tmp_reg_fn): Declare.
2405         * gimple-expr.c (create_tmp_reg_fn): New function.
2406         * gimple-low.c (record_vars_into): Don't change cfun.
2407         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
2408         code generation without cfun.
2409
2410 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
2411
2412         PR bootstrap/60719
2413         * Makefile.in (install-driver): Fix shell scripting.
2414
2415 2014-04-03  Cong Hou  <congh@google.com>
2416
2417         PR tree-optimization/60505
2418         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
2419         threshold of number of iterations below which no vectorization
2420         will be done.
2421         * tree-vect-loop.c (new_loop_vec_info):
2422         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
2423         * tree-vect-loop.c (vect_analyze_loop_operations):
2424         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
2425         * tree-vect-loop.c (vect_transform_loop):
2426         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
2427         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
2428         of iterations of the loop and see if we should build the epilogue.
2429
2430 2014-04-03  Richard Biener  <rguenther@suse.de>
2431
2432         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
2433         (streamer_tree_cache_create): Adjust.
2434         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
2435         to allow optional nodes array.
2436         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
2437         (streamer_tree_cache_append): Likewise.
2438         (streamer_tree_cache_create): Create nodes array optionally
2439         as specified by parameter.
2440         * lto-streamer-out.c (create_output_block): Avoid maintaining
2441         the node array in the writer cache.
2442         (DFS_write_tree): Remove assertion.
2443         (produce_asm_for_decls): Free the out decl state hash table early.
2444         * lto-streamer-in.c (lto_data_in_create): Adjust for
2445         streamer_tree_cache_create prototype change.
2446
2447 2014-04-03  Richard Biener  <rguenther@suse.de>
2448
2449         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
2450         set TREE_CHAIN to NULL_TREE.
2451
2452 2014-04-03  Richard Biener  <rguenther@suse.de>
2453
2454         PR tree-optimization/60740
2455         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
2456         over all GIMPLE_COND operands.
2457
2458 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
2459
2460         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
2461         (Weffc++): Remove Scott's numbering, merge lists and reference
2462         Wnon-virtual-dtor.
2463
2464 2014-04-03  Nick Clifton  <nickc@redhat.com>
2465
2466         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
2467         properly.
2468
2469 2014-04-03  Martin Jambor  <mjambor@suse.cz>
2470
2471         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
2472         mention gcc_unreachable before failing.
2473         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
2474         removed symbols.
2475
2476 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
2477
2478         PR ipa/60659
2479         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
2480         inconsistent code and instead mark the context inconsistent.
2481         (possible_polymorphic_call_targets): For inconsistent contexts
2482         return empty complete list.
2483
2484 2014-04-02  Anthony Green  <green@moxielogic.com>
2485
2486         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
2487         (extendqisi2, extendhisi2): Define.
2488         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
2489         (WCHAR_TYPE): Change to unsigned int.
2490
2491 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2492
2493         PR tree-optimization/60733
2494         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
2495         insertion point for PHI candidates to be the end of the feeding
2496         block for the PHI argument.
2497
2498 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2499
2500         PR rtl-optimization/60650
2501         * lra-constraints.c (process_alt_operands): Decrease reject for
2502         earlyclobber matching.
2503
2504 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2505
2506         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
2507
2508 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2509
2510         * config/spu/spu.c (pad_bb): Do not crash when the last
2511         insn is CODE_FOR_blockage.
2512
2513 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2514
2515         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
2516         lies outside the target mode.
2517
2518 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2519
2520         PR target/60735
2521         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
2522         software floating point or no floating point registers, do not
2523         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
2524         in GPRs that occurs after we tested for GPRs that would never be
2525         true.
2526
2527         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
2528         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
2529         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
2530         specifically allow DDmode, since that does not use the SPE SIMD
2531         instructions.
2532
2533 2014-04-02  Richard Biener  <rguenther@suse.de>
2534
2535         PR middle-end/60729
2536         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
2537         MODE_INTs.  Properly use negv_optab.
2538         (expand_abs): Likewise.
2539
2540 2014-04-02  Richard Biener  <rguenther@suse.de>
2541
2542         PR bootstrap/60719
2543         * Makefile.in (install-driver): Guard extra installs with special
2544         names properly.
2545
2546 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2547
2548         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2549         Document vec_vgbbd.
2550
2551 2014-04-01  Richard Henderson  <rth@redhat.com>
2552
2553         PR target/60704
2554         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
2555         alternative enabled before register allocation.
2556
2557 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
2558
2559         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
2560         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
2561         typo.
2562         (nios2_large_got_address): Remove unneeded 'sym' parameter.
2563         (nios2_got_address): Update nios2_large_got_address call site.
2564         (nios2_delegitimize_address): New function.
2565         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
2566         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
2567         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
2568
2569 2014-04-01  Martin Husemann  <martin@duskware.de>
2570
2571         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
2572         for -mabi=32.
2573
2574 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
2575
2576         PR rtl-optimization/60604
2577         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
2578         check from register_operand.
2579         (register_operand): Redefine in terms of general_operand.
2580         (nonmemory_operand): Use register_operand for the non-constant cases.
2581
2582 2014-04-01  Richard Biener  <rguenther@suse.de>
2583
2584         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
2585
2586 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2587
2588         * doc/invoke.texi (mapp-regs): Clarify.
2589
2590 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
2591
2592         * config/i386/avx512fintrin.h (__v32hi): Define type.
2593         (__v64qi): Likewise.
2594         (_mm512_set1_epi8): Define.
2595         (_mm512_set1_epi16): Define.
2596         (_mm512_set4_epi32): Define.
2597         (_mm512_set4_epi64): Define.
2598         (_mm512_set4_pd): Define.
2599         (_mm512_set4_ps): Define.
2600         (_mm512_setr4_epi64): Define.
2601         (_mm512_setr4_epi32): Define.
2602         (_mm512_setr4_pd): Define.
2603         (_mm512_setr4_ps): Define.
2604         (_mm512_setzero_epi32): Define.
2605
2606 2014-03-31  Martin Jambor  <mjambor@suse.cz>
2607
2608         PR middle-end/60647
2609         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
2610         callsite_arguments_match_p.  Updated all callers.  Also check types of
2611         corresponding formal parameters and actual arguments.
2612         (not_all_callers_have_enough_arguments_p) Renamed to
2613         some_callers_have_mismatched_arguments_p.
2614
2615 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
2616
2617         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
2618
2619 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
2620
2621         PR target/60034
2622         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
2623         section anchor.
2624
2625 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
2626
2627         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
2628         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
2629         Split out
2630         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
2631         Use FMAMODE_NOVF512 mode iterator.
2632         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
2633         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
2634         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
2635         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
2636         Split out
2637         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
2638         Use VF_128_256 mode iterator.
2639         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
2640         Ditto.
2641
2642 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
2643
2644         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
2645         static chain if needed.
2646
2647 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
2648
2649         PR target/60697
2650         * lra-constraints.c (index_part_to_reg): New.
2651         (process_address): Use it.
2652
2653 2014-03-27  Jeff Law  <law@redhat.com>
2654             Jakub Jelinek  <jakub@redhat.com>
2655
2656         PR target/60648
2657         * expr.c (do_tablejump): Use simplify_gen_binary rather than
2658         gen_rtx_{PLUS,MULT} to build up the address expression.
2659
2660         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
2661         creating non-canonical RTL.
2662
2663 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
2664
2665         PR ipa/60243
2666         * ipa-inline.c (want_inline_small_function_p): Short circuit large
2667         functions; reorganize to make cheap checks first.
2668         (inline_small_functions): Do not estimate growth when dumping;
2669         it is expensive.
2670         * ipa-inline.h (inline_summary): Add min_size.
2671         (growth_likely_positive): New function.
2672         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
2673         (set_cond_stmt_execution_predicate): Cleanup.
2674         (estimate_edge_size_and_time): Compute min_size.
2675         (estimate_calls_size_and_time): Likewise.
2676         (estimate_node_size_and_time): Likewise.
2677         (inline_update_overall_summary): Update min_size.
2678         (do_estimate_edge_time): Likewise.
2679         (do_estimate_edge_size): Update.
2680         (do_estimate_edge_hints): Update.
2681         (growth_likely_positive): New function.
2682
2683 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
2684
2685         PR target/60693
2686         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
2687         also if addr has VOIDmode.
2688
2689 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2690
2691         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
2692         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
2693         Declare extern.
2694         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
2695         instructions as well as AdvancedSIMD loads.
2696
2697 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2698
2699         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
2700         Use crypto_aese type.
2701         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
2702         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
2703         crypto_aese, crypto_aesmc.  Move to types.md.
2704         * config/arm/types.md (crypto_aes): Split into crypto_aese,
2705         crypto_aesmc.
2706         * config/arm/iterators.md (crypto_type): Likewise.
2707
2708 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
2709
2710         * cgraph.c: Include expr.h and tree-dfa.h.
2711         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
2712         remove LHS.
2713
2714 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
2715
2716         PR target/60675
2717         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
2718         regs from checking multi-reg pseudos.
2719
2720 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2721
2722         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
2723
2724 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2725
2726         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
2727         if it would clobber the stack pointer, even temporarily.
2728
2729 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2730
2731         * mode-switching.c: Make small adjustments to the top comment.
2732
2733 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
2734
2735         * config/rs6000/constraints.md (wD constraint): New constraint to
2736         match the constant integer to get the top DImode/DFmode out of a
2737         vector in a VSX register.
2738
2739         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
2740         match the constant integer to get the top DImode/DFmode out of a
2741         vector in a VSX register.
2742
2743         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
2744         for ISA 2.07.
2745
2746         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2747         vbpermq builtins.
2748
2749         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
2750         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
2751
2752         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
2753         Optimize vec_extract of 64-bit values, where the value being
2754         extracted is in the top word, where we can use scalar
2755         instructions.  Add direct move and store support.  Combine the big
2756         endian/little endian vector select load support into a single insn.
2757         (vsx_extract_<mode>_internal1): Likewise.
2758         (vsx_extract_<mode>_internal2): Likewise.
2759         (vsx_extract_<mode>_load): Likewise.
2760         (vsx_extract_<mode>_store): Likewise.
2761         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
2762         combined into vsx_extract_<mode>_load.
2763         (vsx_extract_<mode>_one_le): Likewise.
2764
2765         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
2766         define the top 64-bit vector element.
2767
2768         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
2769         constraint.
2770
2771         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2772         Document vec_vbpermq builtin.
2773
2774         PR target/60672
2775         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
2776         enable use of xxsldwi and xxpermdi builtin functions.
2777         (vec_xxpermdi): Likewise.
2778
2779         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
2780         Document use of vec_xxsldwi and vec_xxpermdi builtins.
2781
2782 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
2783
2784         PR rtl-optimization/60650
2785         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
2786         first_p.  Use it.
2787         (find_spills_for): New.
2788         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
2789         Spill all pseudos on the second iteration.
2790
2791 2014-03-27  Marek Polacek  <polacek@redhat.com>
2792
2793         PR c/50347
2794         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
2795         types.
2796
2797 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2798
2799         * config/s390/s390.c (s390_can_use_return_insn): Check for
2800         call-saved FPRs on 31 bit.
2801
2802 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
2803
2804         PR middle-end/60682
2805         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
2806         if they need regimplification, just drop them instead of
2807         calling gimple_regimplify_operands on them.
2808
2809 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2810
2811         PR target/60580
2812         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
2813         (aarch64_frame_pointer_required): Adjust logic.
2814         (aarch64_can_eliminate): Adjust logic.
2815         (aarch64_override_options_after_change): Adjust logic.
2816
2817 2014-03-27  Dehao Chen  <dehao@google.com>
2818
2819         * ipa-inline.c (early_inliner): Update node's inline info.
2820
2821 2014-03-26  Dehao Chen  <dehao@google.com>
2822
2823         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
2824         compiler inserted conditional jumps for NAN float check.
2825
2826 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
2827
2828         * ubsan.h (ubsan_create_data): Change second argument's type
2829         to const location_t *.
2830         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
2831         _("<unknown>").
2832         (ubsan_create_data): Change second argument to const location_t *PLOC.
2833         Create Loc field whenever PLOC is non-NULL.
2834         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
2835         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
2836         callers.
2837
2838         PR other/59545
2839         * real.c (real_to_integer2): Change type of low to UHWI.
2840
2841 2014-03-26  Tobias Burnus  <burnus@net-b.de>
2842
2843         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
2844         (CILK_SELF_SPECS): New define.
2845         (driver_self_specs): Use it.
2846
2847 2014-03-26  Richard Biener  <rguenther@suse.de>
2848
2849         * tree-pretty-print.c (percent_K_format): Implement special
2850         case for LTO and its stripped down BLOCK tree.
2851
2852 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
2853
2854         PR sanitizer/60636
2855         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
2856
2857         * tree-vrp.c (simplify_internal_call_using_ranges): If only
2858         one range is range_int_cst_p, but not both, at least optimize
2859         addition/subtraction of 0 and multiplication by 0 or 1.
2860         * gimple-fold.c (gimple_fold_call): Fold
2861         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
2862         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
2863         INTEGER_CSTs, try to fold at least x * 0 and y - y.
2864
2865 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2866
2867         PR rtl-optimization/60452
2868         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
2869         <case REG>: Return 1 for invalid offsets from the frame pointer.
2870
2871 2014-03-26  Marek Polacek  <polacek@redhat.com>
2872
2873         PR c/37428
2874         * doc/extend.texi (C Extensions): Mention variable-length arrays in
2875         a structure/union.
2876
2877 2014-03-26  Marek Polacek  <polacek@redhat.com>
2878
2879         PR c/39525
2880         * doc/extend.texi (Designated Inits): Describe what happens to omitted
2881         field members.
2882
2883 2014-03-26  Marek Polacek  <polacek@redhat.com>
2884
2885         PR other/59545
2886         * ira-color.c (update_conflict_hard_regno_costs): Perform the
2887         multiplication in unsigned type.
2888
2889 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
2890
2891         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
2892
2893 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
2894
2895         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
2896
2897 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
2898
2899         PR ipa/60315
2900         * cif-code.def (UNREACHABLE) New code.
2901         * ipa-inline.c (inline_small_functions): Skip edges to
2902         __builtlin_unreachable.
2903         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
2904         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
2905         predicate to __bulitin_unreachable.
2906         (set_cond_stmt_execution_predicate): Fix issue when
2907         invert_tree_comparison returns ERROR_MARK.
2908         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
2909         propagate to inline clones.
2910         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
2911         to unreachable.
2912         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
2913         * cgraphclones.c (cgraph_clone_node): If call destination is already
2914         ureachable, do not redirect it back.
2915         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
2916         unreachable.
2917
2918 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
2919
2920         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
2921         Do not modify inline clones.
2922
2923 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
2924
2925         * config/i386/i386.md (general_sext_operand): New mode attr.
2926         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
2927         don't generate (sign_extend (const_int)).
2928         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
2929         operands[2].  Use We constraint instead of <i> and
2930         <general_sext_operand> predicate instead of <general_operand>.
2931         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
2932         * config/i386/constraints.md (We): New constraint.
2933         * config/i386/predicates.md (x86_64_sext_operand,
2934         sext_operand): New predicates.
2935
2936 2014-03-25  Martin Jambor  <mjambor@suse.cz>
2937
2938         PR ipa/60600
2939         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
2940         inconsistent devirtualizations to __builtin_unreachable.
2941
2942 2014-03-25  Marek Polacek  <polacek@redhat.com>
2943
2944         PR c/35449
2945         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
2946
2947 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
2948
2949         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
2950         order of elements for big-endian.
2951
2952 2014-03-25  Richard Biener  <rguenther@suse.de>
2953
2954         PR middle-end/60635
2955         * gimplify-me.c (gimple_regimplify_operands): Update the
2956         re-gimplifed stmt.
2957
2958 2014-03-25  Martin Jambor  <mjambor@suse.cz>
2959
2960         PR ipa/59176
2961         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
2962         (lto_output_varpool_node): Likewise.
2963         (input_overwrite_node): Likewise.
2964         (input_varpool_node): Likewise.
2965
2966 2014-03-25  Richard Biener  <rguenther@suse.de>
2967
2968         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
2969         (run_gcc): Likewise.
2970
2971 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
2972
2973         * combine.c (simplify_compare_const): Add MODE argument.
2974         Handle mode_width 0 as very large mode_width.
2975         (try_combine, simplify_comparison): Adjust callers.
2976
2977         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
2978         type to avoid signed integer overflow.
2979         * explow.c (plus_constant): Likewise.
2980
2981 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2982
2983         * doc/generic.texi: Correct typos.
2984
2985 2014-03-24  Tobias Burnus  <burnus@net-b.de>
2986
2987         * doc/invoke.texi (-flto): Expand section about
2988         using static libraries with LTO.
2989
2990 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2991
2992         PR rtl-optimization/60501
2993         * optabs.def (addptr3_optab): New optab.
2994         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
2995         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
2996         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
2997
2998         * lra.c (emit_add3_insn): Use the addptr pattern if available.
2999
3000         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
3001
3002 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
3003
3004         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
3005         _mm512_set1_pd.
3006
3007         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
3008         (_mm256_undefined_ps): Define.
3009         (_mm256_undefined_pd): Define.
3010         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
3011         (_mm_undefined_pd): Define.
3012         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
3013         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
3014         (_mm512_undefined_ps): Define.
3015         (_mm512_undefined_pd): Define.
3016         Use _mm*_undefined_*.
3017         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
3018
3019 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
3020
3021         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
3022         (lshr_simd): DI mode added.
3023         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
3024         (aarch64_ushr_simddi): Likewise.
3025         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
3026         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
3027         (vshrd_n_u64): Likewise.
3028
3029 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3030
3031         * Makefile.in (s-macro_list): Depend on cc1.
3032
3033 2014-03-23  Teresa Johnson  <tejohnson@google.com>
3034
3035         * ipa-utils.c (ipa_print_order): Use specified dump file.
3036
3037 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3038
3039         PR rtl-optimization/60601
3040         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
3041
3042         * gcc.c (eval_spec_function): Initialize save_growing_value.
3043
3044 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
3045
3046         PR sanitizer/60613
3047         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
3048         code == MINUS_EXPR, never swap op0 with op1.
3049
3050         * toplev.c (init_local_tick): Avoid signed integer multiplication
3051         overflow.
3052         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
3053         shift by first operand's bitsize.
3054
3055 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
3056
3057         PR target/60610
3058         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
3059         redefine to 1 or 0.
3060         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
3061         TARGET_ISA_64BIT_P(x).
3062
3063 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3064
3065         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
3066         pattern for vector nor instead of subtract from splat(-1).
3067         (altivec_expand_vec_perm_const_le): Likewise.
3068
3069 2014-03-21  Richard Henderson  <rth@twiddle.net>
3070
3071         PR target/60598
3072         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
3073         related insns after epilogue_completed.
3074
3075 2014-03-21  Martin Jambor  <mjambor@suse.cz>
3076
3077         PR ipa/59176
3078         * cgraph.h (symtab_node): New flag body_removed.
3079         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
3080         when removing bodies.
3081         * symtab.c (dump_symtab_base): Dump body_removed flag.
3082         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
3083         had their bodies removed.
3084
3085 2014-03-21  Martin Jambor  <mjambor@suse.cz>
3086
3087         PR ipa/60419
3088         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
3089         in the border.
3090
3091 2014-03-21  Richard Biener  <rguenther@suse.de>
3092
3093         PR tree-optimization/60577
3094         * tree-core.h (struct tree_base): Document nothrow_flag use
3095         in VAR_DECL_NONALIASED.
3096         * tree.h (VAR_DECL_NONALIASED): New.
3097         (may_be_aliased): Adjust.
3098         * coverage.c (build_var): Set VAR_DECL_NONALIASED.
3099
3100 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
3101
3102         * expr.c (expand_expr_real_1): Remove outdated comment.
3103
3104 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
3105
3106         PR middle-end/60597
3107         * ira.c (adjust_cleared_regs): Call copy_rtx on
3108         *reg_equiv[REGNO (loc)].src_p before passing it to
3109         simplify_replace_fn_rtx.
3110
3111         PR target/60568
3112         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
3113         into CONST, put pic register as first operand of PLUS.  Use
3114         gen_const_mem for both 32-bit and 64-bit PIC got loads.
3115
3116 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3117
3118         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
3119
3120 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
3121
3122         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
3123         around for store forwarding issue in the FPU on the UT699.
3124         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
3125         loads and operations if -mfix-ut699 is specified.
3126         (divtf3_hq): Tweak attribute.
3127         (sqrttf2_hq): Likewise.
3128
3129 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
3130
3131         * calls.c (store_one_arg): Remove incorrect const qualification on the
3132         type of the temporary.
3133         * cfgexpand.c (expand_return): Likewise.
3134         * expr.c (expand_constructor): Likewise.
3135         (expand_expr_real_1): Likewise.
3136
3137 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3138
3139         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
3140         of parts.
3141
3142 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3143
3144         PR target/60039
3145         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
3146
3147 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
3148
3149         * config/arm/aarch-common-protos.h
3150         (alu_cost_table): Fix spelling of "extend".
3151         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
3152
3153 2014-03-19  Richard Biener  <rguenther@suse.de>
3154
3155         PR middle-end/60553
3156         * tree-core.h (tree_type_common): Re-order pointer members
3157         to reduce recursion depth during GC walks.
3158
3159 2014-03-19  Marek Polacek  <polacek@redhat.com>
3160
3161         PR sanitizer/60569
3162         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
3163         before accessing it.
3164
3165 2014-03-19  Richard Biener  <rguenther@suse.de>
3166
3167         PR lto/59543
3168         * lto-streamer-in.c (input_function): In WPA stage do not drop
3169         debug stmts.
3170
3171 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
3172
3173         PR tree-optimization/60559
3174         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
3175         with build_zero_cst assignment.
3176
3177 2014-03-18  Kai Tietz  <ktietz@redhat.com>
3178
3179         PR rtl-optimization/56356
3180         * sdbout.c (sdbout_parms): Verify that parms'
3181         incoming argument is valid.
3182         (sdbout_reg_parms): Likewise.
3183
3184 2014-03-18  Richard Henderson  <rth@redhat.com>
3185
3186         PR target/60562
3187         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
3188         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
3189         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
3190
3191 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
3192
3193         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
3194         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
3195         Italicize plugin event names in description.  Explain that
3196         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
3197         Remind that no GCC functions should be called after PLUGIN_FINISH.
3198         Explain what pragmas with expansion are.
3199
3200 2014-03-18  Martin Liska  <mliska@suse.cz>
3201
3202         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
3203         gimple call statement is update.
3204         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
3205         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
3206
3207 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
3208
3209         PR sanitizer/60557
3210         * ubsan.c (ubsan_instrument_unreachable): Call
3211         initialize_sanitizer_builtins.
3212         (ubsan_pass): Likewise.
3213
3214         PR sanitizer/60535
3215         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
3216         varpool_finalize_decl instead of rest_of_decl_compilation.
3217
3218 2014-03-18  Richard Biener  <rguenther@suse.de>
3219
3220         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
3221         by using bitmap_and_compl instead of bitmap_and_compl_into.
3222         (df_rd_transfer_function): Likewise.
3223
3224 2014-03-18  Richard Biener  <rguenther@suse.de>
3225
3226         * doc/lto.texi (fresolution): Fix typo.
3227
3228 2014-03-18  Richard Biener  <rguenther@suse.de>
3229
3230         * doc/invoke.texi (flto): Update for changes in 4.9.
3231
3232 2014-03-18  Richard Biener  <rguenther@suse.de>
3233
3234         * doc/loop.texi: Remove section on the removed lambda framework.
3235         Update loop docs with recent changes in preserving loop structure.
3236
3237 2014-03-18  Richard Biener  <rguenther@suse.de>
3238
3239         * doc/lto.texi (-fresolution): Document.
3240
3241 2014-03-18  Richard Biener  <rguenther@suse.de>
3242
3243         * doc/contrib.texi: Adjust my name.
3244
3245 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
3246
3247         PR ipa/58721
3248         * internal-fn.c: Include diagnostic-core.h.
3249         (expand_BUILTIN_EXPECT): New function.
3250         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
3251         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
3252         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
3253         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
3254         IFN_BUILTIN_EXPECT.
3255         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
3256         Revert 3 argument __builtin_expect code.
3257         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
3258         * gimple-fold.c (gimple_fold_call): Likewise.
3259         * tree.h (fold_builtin_expect): New prototype.
3260         * builtins.c (build_builtin_expect_predicate): Add predictor
3261         argument, if non-NULL, create 3 argument __builtin_expect.
3262         (fold_builtin_expect): No longer static.  Add ARG2 argument,
3263         pass it through to build_builtin_expect_predicate.
3264         (fold_builtin_2): Adjust caller.
3265         (fold_builtin_3): Handle BUILT_IN_EXPECT.
3266         * internal-fn.def (BUILTIN_EXPECT): New.
3267
3268 2014-03-18  Tobias Burnus  <burnus@net-b.de>
3269
3270         PR ipa/58721
3271         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
3272         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
3273         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
3274
3275 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
3276
3277         PR ipa/58721
3278         * predict.c (combine_predictions_for_bb): Fix up formatting.
3279         (expr_expected_value_1, expr_expected_value): Add predictor argument,
3280         fill what it points to if non-NULL.
3281         (tree_predict_by_opcode): Adjust caller, use the predictor.
3282         * predict.def (PRED_COMPARE_AND_SWAP): Add.
3283
3284 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3285
3286         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
3287         proper constant for the store mode.
3288
3289 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
3290
3291         * symtab.c (change_decl_assembler_name): Fix transparent alias
3292         chain construction.
3293
3294 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
3295
3296         * config/aarch64/aarch64.c: Correct the comments about the
3297         aarch64 stack layout.
3298
3299 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
3300
3301         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
3302         check for GF_OMP_FOR_KIND_FOR.
3303
3304 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
3305
3306         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
3307         ymm and zmm register names.
3308
3309 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
3310
3311         PR target/60516
3312         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
3313         note creation for the 2010-08-31 changes.
3314
3315 2014-03-17  Marek Polacek  <polacek@redhat.com>
3316
3317         PR middle-end/60534
3318         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
3319         as -fno-tree-loop-vectorize.
3320         (expand_omp_simd): Likewise.
3321
3322 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
3323
3324         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
3325         (eligible_for_call_delay): New prototype.
3326         * config/sparc/sparc.c (tls_call_delay): Rename into...
3327         (eligible_for_call_delay): ...this.  Return false if the instruction
3328         cannot be put in the delay slot of a branch.
3329         (eligible_for_restore_insn): Simplify.
3330         (eligible_for_return_delay): Return false if the instruction cannot be
3331         put in the delay slot of a branch and simplify.
3332         (eligible_for_sibcall_delay): Return false if the instruction cannot be
3333         put in the delay slot of a branch.
3334         * config/sparc/sparc.md (fix_ut699): New attribute.
3335         (tls_call_delay): Delete.
3336         (in_call_delay): Reimplement.
3337         (eligible_for_sibcall_delay): Rename into...
3338         (in_sibcall_delay): ...this.
3339         (eligible_for_return_delay): Rename into...
3340         (in_return_delay): ...this.
3341         (in_branch_delay): Reimplement.
3342         (in_uncond_branch_delay): Delete.
3343         (in_annul_branch_delay): Delete.
3344
3345 2014-03-14  Richard Henderson  <rth@redhat.com>
3346
3347         PR target/60525
3348         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
3349         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
3350         (*floathi<X87MODEF>2_i387_with_temp): Remove.
3351         (floathi splitters): Remove.
3352         (float<SWI48x>xf2): New pattern.
3353         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
3354         code that tried to handle DImode for 32-bit, but which was excluded
3355         by the pattern's condition.  Drop allocation of stack temporary.
3356         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
3357         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
3358         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
3359         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
3360         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
3361         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
3362         (*float<SWI48><MODEF>2_sse_interunit): Remove.
3363         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
3364         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
3365         (*float<SWI48x><X87MODEF>2_i387): Remove.
3366         (all float _with_temp splitters): Remove.
3367         (*float<SWI48x><MODEF>2_i387): New pattern.
3368         (*float<SWI48><MODEF>2_sse): New pattern.
3369         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
3370         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
3371
3372 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
3373             Marek Polacek  <polacek@redhat.com>
3374
3375         PR middle-end/60484
3376         * common.opt (dump_base_name_prefixed): New Variable.
3377         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
3378         if x_dump_base_name_prefixed is already set, set it at the end.
3379
3380 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
3381
3382         PR rtl-optimization/60508
3383         * lra-constraints.c (get_reload_reg): Add new parameter
3384         in_subreg_p.
3385         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
3386         Pass the new parameter values.
3387
3388 2014-03-14  Richard Biener  <rguenther@suse.de>
3389
3390         * common.opt: Revert unintented changes from r205065.
3391         * opts.c: Likewise.
3392
3393 2014-03-14  Richard Biener  <rguenther@suse.de>
3394
3395         PR middle-end/60518
3396         * cfghooks.c (split_block): Properly adjust all loops the
3397         block was a latch of.
3398
3399 2014-03-14  Martin Jambor  <mjambor@suse.cz>
3400
3401         PR lto/60461
3402         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
3403         and simplify it.
3404
3405 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
3406
3407         PR target/59396
3408         * config/avr/avr.c (avr_set_current_function): Pass function name
3409         through default_strip_name_encoding before sanity checking instead
3410         of skipping the first char of the assembler name.
3411
3412 2014-03-13  Richard Henderson  <rth@redhat.com>
3413
3414         PR debug/60438
3415         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
3416         (ix86_force_to_memory, ix86_free_from_memory): Remove.
3417         * config/i386/i386-protos.h: Likewise.
3418         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
3419         in the expander instead of a splitter.
3420         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
3421         any possibility of requiring a memory.
3422         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
3423         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
3424         (fp branch splitters): Update for ix86_split_fp_branch.
3425         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
3426         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
3427         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
3428         (*fop_<MODEF>_2_i387): Remove f/r alternative.
3429         (*fop_<MODEF>_3_i387): Likewise.
3430         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
3431         (splitters for the fop_* register patterns): Remove.
3432         (fscalexf4_i387): Rename from *fscalexf4_i387.
3433         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
3434
3435 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
3436
3437         PR tree-optimization/59779
3438         * tree-dfa.c (get_ref_base_and_extent): Use double_int
3439         type for bitsize and maxsize instead of HOST_WIDE_INT.
3440
3441 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
3442
3443         PR rtl-optimization/57320
3444         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
3445         the CFG after thread_prologue_and_epilogue_insns.
3446
3447 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
3448
3449         PR rtl-optimization/57189
3450         * lra-constraints.c (process_alt_operands): Disfavor spilling
3451         vector pseudos.
3452
3453 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
3454
3455         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
3456
3457 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
3458
3459         PR tree-optimization/59025
3460         PR middle-end/60418
3461         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
3462         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
3463
3464 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
3465
3466         PR target/60486
3467         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
3468         calls of avr_out_plus_1.
3469
3470 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
3471
3472         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
3473         BB's single pred and update the father loop's latch info later.
3474
3475 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3476
3477         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
3478         (VEC_M): Likewise.
3479         (VEC_N): Likewise.
3480         (VEC_R): Likewise.
3481         (VEC_base): Likewise.
3482         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
3483         registers, we need to swap double words in little endian mode.
3484
3485         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
3486         to be a container mode for 128-bit integer operations added in ISA
3487         2.07.  Unlike TImode and PTImode, the preferred register set is
3488         the Altivec/VMX registers for the 128-bit operations.
3489
3490         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
3491         declarations.
3492         (rs6000_split_128bit_ok_p): Likewise.
3493
3494         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
3495         macros for creating ISA 2.07 normal and overloaded builtin
3496         functions with 3 arguments.
3497         (BU_P8V_OVERLOAD_3): Likewise.
3498         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
3499         for use as overloaded functions.
3500         (VPERM_1TI_UNS): Likewise.
3501         (VSEL_1TI): Likewise.
3502         (VSEL_1TI_UNS): Likewise.
3503         (ST_INTERNAL_1ti): Likewise.
3504         (LD_INTERNAL_1ti): Likewise.
3505         (XXSEL_1TI): Likewise.
3506         (XXSEL_1TI_UNS): Likewise.
3507         (VPERM_1TI): Likewise.
3508         (VPERM_1TI_UNS): Likewise.
3509         (XXPERMDI_1TI): Likewise.
3510         (SET_1TI): Likewise.
3511         (LXVD2X_V1TI): Likewise.
3512         (STXVD2X_V1TI): Likewise.
3513         (VEC_INIT_V1TI): Likewise.
3514         (VEC_SET_V1TI): Likewise.
3515         (VEC_EXT_V1TI): Likewise.
3516         (EQV_V1TI): Likewise.
3517         (NAND_V1TI): Likewise.
3518         (ORC_V1TI): Likewise.
3519         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
3520         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
3521         overloaded builtin.
3522         (VADDUQM): Likewise.
3523         (VSUBCUQ): Likewise.
3524         (VADDEUQM): Likewise.
3525         (VADDECUQ): Likewise.
3526         (VSUBEUQM): Likewise.
3527         (VSUBECUQ): Likewise.
3528
3529         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
3530         __int128_t and __uint128_t types.
3531         (__uint128_type): Likewise.
3532         (altivec_categorize_keyword): Add support for vector __int128_t,
3533         vector __uint128_t, vector __int128, and vector unsigned __int128
3534         as a container type for TImode operations that need to be done in
3535         VSX/Altivec registers.
3536         (rs6000_macro_to_expand): Likewise.
3537         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
3538         to support 128-bit integer instructions vaddcuq, vadduqm,
3539         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
3540         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
3541
3542         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
3543         for V1TImode, and set up preferences to use VSX/Altivec registers.
3544         Setup VSX reload handlers.
3545         (rs6000_debug_reg_global): Likewise.
3546         (rs6000_init_hard_regno_mode_ok): Likewise.
3547         (rs6000_preferred_simd_mode): Likewise.
3548         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
3549         (easy_altivec_constant): Likewise.
3550         (output_vec_const_move): Likewise.
3551         (rs6000_expand_vector_set): Convert V1TImode set and extract to
3552         simple move.
3553         (rs6000_expand_vector_extract): Likewise.
3554         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
3555         addressing.
3556         (rs6000_const_vec): Add support for V1TImode.
3557         (rs6000_emit_le_vsx_load): Swap double words when loading or
3558         storing TImode/V1TImode.
3559         (rs6000_emit_le_vsx_store): Likewise.
3560         (rs6000_emit_le_vsx_move): Likewise.
3561         (rs6000_emit_move): Add support for V1TImode.
3562         (altivec_expand_ld_builtin): Likewise.
3563         (altivec_expand_st_builtin): Likewise.
3564         (altivec_expand_vec_init_builtin): Likewise.
3565         (altivec_expand_builtin): Likewise.
3566         (rs6000_init_builtins): Add support for V1TImode type.  Add
3567         support for ISA 2.07 128-bit integer builtins.  Define type names
3568         for the VSX/Altivec vector types.
3569         (altivec_init_builtins): Add support for overloaded vector
3570         functions with V1TImode type.
3571         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
3572         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
3573         external function.
3574         (rs6000_split_128bit_ok_p): Likewise.
3575         (rs6000_handle_altivec_attribute): Create V1TImode from vector
3576         __int128_t and vector __uint128_t.
3577
3578         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
3579         and mode attributes.
3580         (VSX_M): Likewise.
3581         (VSX_M2): Likewise.
3582         (VSm): Likewise.
3583         (VSs): Likewise.
3584         (VSr): Likewise.
3585         (VSv): Likewise.
3586         (VS_scalar): Likewise.
3587         (VS_double): Likewise.
3588         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
3589
3590         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
3591         we support the ISA 2.07 128-bit integer arithmetic instructions.
3592         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
3593         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
3594         and TImode types for use with the builtin functions.
3595         (V1TI_type_node): Likewise.
3596         (unsigned_V1TI_type_node): Likewise.
3597         (intTI_type_internal_node): Likewise.
3598         (uintTI_type_internal_node): Likewise.
3599
3600         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
3601         128-bit builtin functions.
3602         (UNSPEC_VADDEUQM): Likewise.
3603         (UNSPEC_VADDECUQ): Likewise.
3604         (UNSPEC_VSUBCUQ): Likewise.
3605         (UNSPEC_VSUBEUQM): Likewise.
3606         (UNSPEC_VSUBECUQ): Likewise.
3607         (VM): Add V1TImode to vector mode iterators.
3608         (VM2): Likewise.
3609         (VI_unit): Likewise.
3610         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
3611         (altivec_vaddcuq): Likewise.
3612         (altivec_vsubuqm): Likewise.
3613         (altivec_vsubcuq): Likewise.
3614         (altivec_vaddeuqm): Likewise.
3615         (altivec_vaddecuq): Likewise.
3616         (altivec_vsubeuqm): Likewise.
3617         (altivec_vsubecuq): Likewise.
3618
3619         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
3620         mode iterators.
3621         (BOOL_128): Likewise.
3622         (BOOL_REGS_OUTPUT): Likewise.
3623         (BOOL_REGS_OP1): Likewise.
3624         (BOOL_REGS_OP2): Likewise.
3625         (BOOL_REGS_UNARY): Likewise.
3626         (BOOL_REGS_AND_CR0): Likewise.
3627
3628         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
3629         128-bit integer builtin support.
3630         (vec_vadduqm): Likewise.
3631         (vec_vaddecuq): Likewise.
3632         (vec_vaddeuqm): Likewise.
3633         (vec_vsubecuq): Likewise.
3634         (vec_vsubeuqm): Likewise.
3635         (vec_vsubcuq): Likewise.
3636         (vec_vsubuqm): Likewise.
3637
3638         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
3639         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
3640         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
3641         128-bit integer add/subtract to ISA 2.07.
3642
3643 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
3644
3645         * config/arc/arc.c (arc_predicate_delay_insns):
3646         Fix third argument passed to conditionalize_nonjump.
3647
3648 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
3649
3650         * config/aarch64/aarch64-builtins.c
3651         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
3652         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
3653         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
3654         instead of __builtin_lfloor.
3655         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
3656
3657 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
3658
3659         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
3660         (tree_ssa_ifcombine_bb_1): New function.
3661         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
3662         is an empty forwarder block to then_bb or vice versa and then_bb
3663         and else_bb are effectively swapped.
3664
3665 2014-03-12  Christian Bruel  <christian.bruel@st.com>
3666
3667         PR target/60264
3668         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
3669         REG_CFA_DEF_CFA note.
3670         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
3671         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
3672
3673 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3674
3675         PR tree-optimization/60454
3676         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
3677
3678 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3679
3680         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
3681         Do not define target_cpu_default2 to generic.
3682         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
3683         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
3684         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
3685
3686 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
3687             Marc Glisse  <marc.glisse@inria.fr>
3688
3689         PR tree-optimization/60502
3690         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
3691         instead of build_low_bits_mask.
3692
3693 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
3694
3695         PR middle-end/60482
3696         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
3697         if there are multiple uses, but op doesn't live on E edge.
3698         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
3699         clobber stmts before __builtin_unreachable.
3700
3701 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
3702
3703         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
3704         hard_frame_pointer_rtx.
3705         * cse.c (cse_insn): Remove volatile check.
3706         * cselib.c (cselib_process_insn): Likewise.
3707         * dse.c (scan_insn): Likewise.
3708
3709 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
3710
3711         * config/arc/arc.c (conditionalize_nonjump): New function,
3712         broken out of ...
3713         (arc_ifcvt): ... this.
3714         (arc_predicate_delay_insns): Use it.
3715
3716 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
3717
3718         * config/arc/predicates.md (extend_operand): During/after reload,
3719         allow const_int_operand.
3720         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
3721         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
3722         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
3723         to "i".
3724         (umulsi3_highpart_i): Likewise.
3725
3726 2014-03-11  Richard Biener  <rguenther@suse.de>
3727
3728         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
3729         Add asserts to guard possible wrong-code bugs.
3730
3731 2014-03-11  Richard Biener  <rguenther@suse.de>
3732
3733         PR tree-optimization/60429
3734         PR tree-optimization/60485
3735         * tree-ssa-structalias.c (set_union_with_increment): Properly
3736         take into account all fields that overlap the shifted vars.
3737         (do_sd_constraint): Likewise.
3738         (do_ds_constraint): Likewise.
3739         (get_constraint_for_ptr_offset): Likewise.
3740
3741 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
3742
3743         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
3744         (nios2_compute_frame_layout):
3745         Add calculation of cfun->machine->fp_save_offset.
3746         (nios2_expand_prologue): Correct setting of frame pointer register
3747         in prologue.
3748         (nios2_expand_epilogue): Update recovery of stack pointer from
3749         frame pointer accordingly.
3750         (nios2_initial_elimination_offset): Update calculation of offset
3751         for eliminating to HARD_FRAME_POINTER_REGNUM.
3752
3753 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
3754
3755         PR ipa/60457
3756         * ipa.c (symtab_remove_unreachable_nodes): Don't call
3757         cgraph_get_create_node on VAR_DECLs.
3758
3759 2014-03-10  Richard Biener  <rguenther@suse.de>
3760
3761         PR middle-end/60474
3762         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
3763
3764 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
3765
3766         * config/vms/vms.opt (vms_float_format): New variable.
3767
3768 2014-03-08  Tobias Burnus  <burnus@net-b.de>
3769
3770         * doc/invoke.texi (-fcilkplus): Update implementation status.
3771
3772 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
3773             Richard Biener  <rguenther@suse.de>
3774
3775         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
3776         consistently accross all TUs.
3777         (run_gcc): Enable -fshort-double automatically at link at link-time
3778         and disallow override.
3779
3780 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
3781
3782         PR target/58271
3783         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
3784         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
3785         if they can't be used.
3786
3787 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3788
3789         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
3790         for Solaris 11/x86 ld.
3791         * configure: Regenerate.
3792
3793 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3794
3795         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
3796         (LIB_TLS_SPEC): Save as ld_tls_libs.
3797         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
3798         (HAVE_AS_IX86_TLSLDM): New test.
3799         * configure, config.in: Regenerate.
3800         * config/i386/i386.c (legitimize_tls_address): Fall back to
3801         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
3802         cannot support TLS_MODEL_LOCAL_DYNAMIC.
3803         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
3804         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
3805
3806 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
3807
3808         * common.opt (fira-loop-pressure): Mark as optimization.
3809
3810 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
3811
3812         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
3813         an OpenMP mappable type.
3814
3815 2014-03-06  Matthias Klose  <doko@ubuntu.com>
3816
3817         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
3818         MULTILIB_OSDIRNAMES is not defined.
3819
3820 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
3821             Meador Inge  <meadori@codesourcery.com>
3822
3823         PR target/58595
3824         * config/arm/arm.c (arm_tls_symbol_p): Remove.
3825         (arm_legitimize_address): Call legitimize_tls_address for any
3826         arm_tls_referenced_p expression, handle constant addend.  Call it
3827         before testing for !TARGET_ARM.
3828         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
3829
3830 2014-03-06  Richard Biener  <rguenther@suse.de>
3831
3832         PR middle-end/60445
3833         PR lto/60424
3834         PR lto/60427
3835         Revert
3836         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
3837
3838         * tree-streamer.c (record_common_node): Assert we don't record
3839         nodes with type double.
3840         (preload_common_node): Skip type double, complex double and double
3841         pointer since it is now frontend dependent due to fshort-double option.
3842
3843 2014-03-06  Richard Biener  <rguenther@suse.de>
3844
3845         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
3846         or -fno-lto is specified and the linker has full plugin support.
3847         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
3848         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
3849         * lto-wrapper.c (merge_and_complain): Merge compile-time
3850         optimization levels.
3851         (run_gcc): And pass it through to the link options.
3852
3853 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
3854
3855         PR debug/60381
3856         Revert:
3857         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
3858         PR debug/59992
3859         * cselib.c (remove_useless_values): Skip to avoid quadratic
3860         behavior if the condition moved from...
3861         (cselib_process_insn): ... here holds.
3862
3863 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
3864
3865         PR plugins/59335
3866         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
3867         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
3868
3869         PR plugins/59335
3870         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
3871         (TM_H): Add x86-tune.def.
3872
3873 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3874
3875         * config/aarch64/aarch64.c (generic_tunings):
3876         Use cortexa57_extra_costs.
3877
3878 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
3879
3880         PR lto/60404
3881         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
3882         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
3883         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
3884         cost for in_lto_p.
3885
3886 2014-03-04  Heiher  <r@hev.cc>
3887
3888         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
3889         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
3890
3891 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
3892
3893         * config/i386/predicates.md (const2356_operand): Change to ...
3894         (const2367_operand): ... this.
3895         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
3896         const2367_operand.
3897         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
3898         (*avx512pf_scatterpf<mode>sf): Ditto.
3899         (avx512pf_scatterpf<mode>df): Ditto.
3900         (*avx512pf_scatterpf<mode>df_mask): Ditto.
3901         (*avx512pf_scatterpf<mode>df): Ditto.
3902         * config/i386/i386.c (ix86_expand_builtin): Update
3903         incorrect hint operand error message.
3904
3905 2014-03-04  Richard Biener  <rguenther@suse.de>
3906
3907         * lto-section-in.c (lto_get_section_data): Fix const cast.
3908
3909 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
3910
3911         * tree-streamer.c (record_common_node): Assert we don't record
3912         nodes with type double.
3913         (preload_common_node): Skip type double, complex double and double
3914         pointer since it is now frontend dependent due to fshort-double option.
3915
3916 2014-03-04  Richard Biener  <rguenther@suse.de>
3917
3918         PR lto/60405
3919         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
3920         (lto_input_toplevel_asms): Likewise.
3921         * lto-section-in.c (lto_get_section_data): Instead do it here
3922         for every section.
3923
3924 2014-03-04  Richard Biener  <rguenther@suse.de>
3925
3926         PR tree-optimization/60382
3927         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
3928         dead PHIs a reduction.
3929
3930 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
3931
3932         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
3933         hint value.
3934         (_mm_prefetch): Move out of GCC target("sse") pragma.
3935         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
3936         GCC target("prfchw") pragma.
3937         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
3938         for locality <= 2.
3939         * config/i386/i386.c (ix86_option_override_internal): Enable
3940         -mprfchw with -mprefetchwt1.
3941
3942 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3943
3944         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
3945         Mark as varying.
3946
3947 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
3948
3949         * opts.h (CL_PCH_IGNORE): Define.
3950         * targhooks.c (option_affects_pch_p):
3951         Return false for options that have CL_PCH_IGNORE set.
3952         * opt-functions.awk: Process PchIgnore.
3953         * doc/options.texi: Document PchIgnore.
3954
3955         * config/arc/arc.opt (misize): Add PchIgnore property.
3956
3957 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3958
3959         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
3960         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
3961         constraint on constants to permit them being loaded into
3962         GENERAL_REGS or BASE_REGS.
3963
3964 2014-03-03  Nick Clifton  <nickc@redhat.com>
3965
3966         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
3967         anti-cacnonical alternatives.
3968         (negandhi3_real): New pattern.
3969         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
3970
3971 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3972
3973         * config/avr/avr-mcus.def: Remove atxmega16x1.
3974         * config/avr/avr-tables.opt: Regenerate.
3975         * config/avr/t-multilib: Regenerate.
3976         * doc/avr-mmcu.texi: Regenerate.
3977
3978 2014-03-03  Tobias Grosser  <tobias@grosser.es>
3979             Mircea Namolaru  <mircea.namolaru@inria.fr>
3980
3981         PR tree-optimization/58028
3982         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
3983         scalar dimensions.
3984
3985 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3986
3987         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
3988         not handled by recognizers.
3989
3990 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
3991
3992         PR middle-end/60175
3993         * function.c (expand_function_end): Don't emit
3994         clobber_return_register sequence if clobber_after is a BARRIER.
3995         * cfgexpand.c (construct_exit_block): Append instructions before
3996         return_label to prev_bb.
3997
3998 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3999
4000         * config/rs6000/constraints.md: Document reserved use of "wc".
4001
4002 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
4003
4004         PR ipa/60150
4005         * ipa.c (function_and_variable_visibility): When dissolving comdat
4006         group, also set all symbols to local.
4007
4008 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
4009
4010         PR ipa/60306
4011
4012         Revert:
4013         2013-12-14   Jan Hubicka  <jh@suse.cz>
4014         PR middle-end/58477
4015         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
4016
4017 2014-03-02  Jon Beniston  <jon@beniston.com>
4018
4019         PR bootstrap/48230
4020         PR bootstrap/50927
4021         PR bootstrap/52466
4022         PR target/46898
4023         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
4024           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
4025         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
4026         (simple_return, *simple_return): New patterns
4027         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
4028         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
4029
4030 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
4031
4032         * dwarf2out.c (gen_subprogram_die): Tidy.
4033
4034 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
4035
4036         PR target/60071
4037         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
4038         (*mov_t_msb_neg_negc): ... this new insn.
4039
4040 2014-02-28  Jason Merrill  <jason@redhat.com>
4041
4042         PR c++/58678
4043         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
4044         function.
4045
4046 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
4047
4048         PR c++/60314
4049         * dwarf2out.c (decltype_auto_die): New static.
4050         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
4051         (gen_type_die_with_usage): Handle 'decltype(auto)'.
4052         (is_cxx_auto): Likewise.
4053
4054 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
4055
4056         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
4057         we are not using general regs only.
4058
4059 2014-02-28  Richard Biener  <rguenther@suse.de>
4060
4061         PR target/60280
4062         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
4063         previous fix and only allow to remove trivial pre-headers
4064         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
4065         (remove_forwarder_block): Properly update the latch of a loop.
4066
4067 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
4068
4069         PR debug/59992
4070         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
4071         (cselib_preserved_hash_table): New.
4072         (preserve_constants_and_equivs): Move preserved vals to it.
4073         (cselib_find_slot): Look it up first.
4074         (cselib_init): Initialize it.
4075         (cselib_finish): Release it.
4076         (dump_cselib_table): Dump it.
4077
4078 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
4079
4080         PR debug/59992
4081         * cselib.c (remove_useless_values): Skip to avoid quadratic
4082         behavior if the condition moved from...
4083         (cselib_process_insn): ... here holds.
4084
4085 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
4086
4087         PR debug/57232
4088         * var-tracking.c (vt_initialize): Apply the same condition to
4089         preserve the CFA base value.
4090
4091 2014-02-28  Joey Ye  <joey.ye@arm.com>
4092
4093         PR target/PR60169
4094         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
4095         if reload in progress or completed.
4096
4097 2014-02-28  Tobias Burnus  <burnus@net-b.de>
4098
4099         PR middle-end/60147
4100         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
4101         NAMELIST_DECL.
4102
4103 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4104
4105         * doc/tm.texi.in (Condition Code Status): Update documention for
4106         relative locations of cc0-setter and cc0-user.
4107
4108 2014-02-27  Jeff Law  <law@redhat.com>
4109
4110         PR rtl-optimization/52714
4111         * combine.c (try_combine): When splitting an unrecognized PARALLEL
4112         into two independent simple sets, if I3 is a jump, ensure the
4113         pattern we place into I3 is a (set (pc) ...).
4114
4115 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
4116             Jeff Law  <law@redhat.com>
4117
4118         PR rtl-optimization/49847
4119         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
4120         are in different blocks.
4121         * doc/tm.texi (Condition Code Status): Update documention for
4122         relative locations of cc0-setter and cc0-user.
4123
4124 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
4125
4126         PR target/59222
4127         * lra.c (lra_emit_add): Check SUBREG too.
4128
4129 2014-02-27  Andreas Schwab  <schwab@suse.de>
4130
4131         * config/m68k/m68k.c (m68k_option_override): Disable
4132         -flive-range-shrinkage for classic m68k.
4133         (m68k_override_options_after_change): Likewise.
4134
4135 2014-02-27  Marek Polacek  <polacek@redhat.com>
4136
4137         PR middle-end/59223
4138         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
4139         -Wmaybe-uninitialized.
4140
4141 2014-02-27  Alan Modra  <amodra@gmail.com>
4142
4143         PR target/57936
4144         * reload1.c (emit_input_reload_insns): When reload_override_in,
4145         set old to rl->in_reg when rl->in_reg is a subreg.
4146
4147 2014-02-26  Richard Biener  <rguenther@suse.de>
4148
4149         PR bootstrap/60343
4150         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
4151
4152 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
4153
4154         * common/config/i386/predicates.md (const1256_operand): Remove.
4155         (const2356_operand): New.
4156         (const_1_to_2_operand): Remove.
4157         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
4158         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
4159         (*avx512pf_gatherpf<mode>sf): Ditto.
4160         (avx512pf_gatherpf<mode>df): Ditto.
4161         (*avx512pf_gatherpf<mode>df_mask): Ditto.
4162         (*avx512pf_gatherpf<mode>df): Ditto.
4163         (avx512pf_scatterpf<mode>sf): Ditto.
4164         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
4165         (*avx512pf_scatterpf<mode>sf): Ditto.
4166         (avx512pf_scatterpf<mode>df): Ditto.
4167         (*avx512pf_scatterpf<mode>df_mask): Ditto.
4168         (*avx512pf_scatterpf<mode>df): Ditto.
4169         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
4170
4171 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
4172
4173         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
4174         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
4175         (_mm512_mask_testn_epi64_mask): Move to ...
4176         * config/i386/avx512cdintrin.h: Here.
4177         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
4178         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
4179         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
4180         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
4181         TARGET_AVX512F from TARGET_AVX512CD.
4182
4183 2014-02-26  Richard Biener  <rguenther@suse.de>
4184
4185         PR ipa/60327
4186         * ipa.c (walk_polymorphic_call_targets): Properly guard
4187         call to inline_update_overall_summary.
4188
4189 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
4190
4191         PR target/60280
4192         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
4193         and latches only if requested.  Fix latch if it is removed.
4194         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
4195         LOOPS_HAVE_PREHEADERS.
4196
4197 2014-02-25  Andrew Pinski  <apinski@cavium.com>
4198
4199         * builtins.c (expand_builtin_thread_pointer): Create a new target
4200         when the target is NULL.
4201
4202 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
4203
4204         PR rtl-optimization/60317
4205         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
4206         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
4207         * lra-assigns.c: Include params.h.
4208         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
4209         other reload pseudos considerations.
4210
4211 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4212
4213         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
4214         to use canonical form for nor<mode>3.
4215
4216 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4217
4218         PR target/55426
4219         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
4220         conversions.
4221
4222 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
4223
4224         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
4225         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
4226         (ix86_handle_option): Handle OPT_mprefetchwt1.
4227         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
4228         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4229         PREFETCHWT1 CPUID.
4230         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4231         OPTION_MASK_ISA_PREFETCHWT1.
4232         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
4233         (PTA_PREFETCHWT1): New.
4234         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
4235         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
4236         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
4237         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
4238         (*prefetch_avx512pf_<mode>_: Change into ...
4239         (*prefetch_prefetchwt1_<mode>: This.
4240         * config/i386/i386.opt (mprefetchwt1): New.
4241         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
4242         (_mm_prefetch): Handle intent to write.
4243         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
4244
4245 2014-02-25  Richard Biener  <rguenther@suse.de>
4246
4247         PR middle-end/60291
4248         * emit-rtl.c (mem_attrs_htab): Remove.
4249         (mem_attrs_htab_hash): Likewise.
4250         (mem_attrs_htab_eq): Likewise.
4251         (set_mem_attrs): Always allocate new mem-attrs when something changed.
4252         (init_emit_once): Do not allocate mem_attrs_htab.
4253
4254 2014-02-25  Richard Biener  <rguenther@suse.de>
4255
4256         PR lto/60319
4257         * lto-opts.c (lto_write_options): Output non-explicit conservative
4258         -fwrapv, -fno-trapv and -fno-strict-overflow.
4259         * lto-wrapper.c (merge_and_complain): Handle merging those options.
4260         (run_gcc): And pass them through.
4261
4262 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
4263
4264         * sel-sched.c (calculate_new_fences): New parameter ptime.
4265         Calculate it as a maximum over all fence cycles.
4266         (sel_sched_region_2): Adjust the call to calculate_new_fences.
4267         Print the final schedule timing when sched_verbose.
4268
4269 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
4270
4271         PR rtl-optimization/60292
4272         * sel-sched.c (fill_vec_av_set): Do not reset target availability
4273         bit fot the fence instruction.
4274
4275 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
4276
4277         * calls.h: Fix typo in comment.
4278
4279 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
4280
4281         * config/pa/pa.c (pa_output_move_double): Don't valididate when
4282         adjusting offsetable addresses.
4283
4284 2014-02-24  Guozhi Wei  <carrot@google.com>
4285
4286         * sparseset.h (sparseset_pop): Fix the wrong index.
4287
4288 2014-02-24  Walter Lee  <walt@tilera.com>
4289
4290         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
4291         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
4292         triplet.
4293         * common/config/tilegx/tilegx-common.c
4294         (TARGET_DEFAULT_TARGET_FLAGS): Define.
4295         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
4296         (LINK_SPEC): Ditto.
4297         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
4298         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
4299         (tilegx_gimplify_va_arg_expr): Handle big endian.
4300         (tilegx_expand_unaligned_load): Ditto.
4301         (tilegx_expand_unaligned_store): Ditto.
4302         (TARGET_RETURN_IN_MSB): New.
4303         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
4304         (TARGET_ENDIAN_DEFAULT): New.
4305         (TARGET_BIG_ENDIAN): Handle big endian.
4306         (BYTES_BIG_ENDIAN): Ditto.
4307         (WORDS_BIG_ENDIAN): Ditto.
4308         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
4309         (ENDIAN_SPEC): New.
4310         (EXTRA_SPECS): New.
4311         * config/tilegx/tilegx.md (extv): Handle big endian.
4312         (extzv): Ditto.
4313         (insn_st<n>): Ditto.
4314         (insn_st<n>_add<bitsuffix>): Ditto.
4315         (insn_stnt<n>): Ditto.
4316         (insn_stnt<n>_add<bitsuffix>):Ditto.
4317         (vec_interleave_highv8qi): Handle big endian.
4318         (vec_interleave_highv8qi_be): New.
4319         (vec_interleave_highv8qi_le): New.
4320         (insn_v1int_h): Handle big endian.
4321         (vec_interleave_lowv8qi): Handle big endian.
4322         (vec_interleave_lowv8qi_be): New.
4323         (vec_interleave_lowv8qi_le): New.
4324         (insn_v1int_l): Handle big endian.
4325         (vec_interleave_highv4hi): Handle big endian.
4326         (vec_interleave_highv4hi_be): New.
4327         (vec_interleave_highv4hi_le): New.
4328         (insn_v2int_h): Handle big endian.
4329         (vec_interleave_lowv4hi): Handle big endian.
4330         (vec_interleave_lowv4hi_be): New.
4331         (vec_interleave_lowv4hi_le): New.
4332         (insn_v2int_l): Handle big endian.
4333         (vec_interleave_highv2si): Handle big endian.
4334         (vec_interleave_highv2si_be): New.
4335         (vec_interleave_highv2si_le): New.
4336         (insn_v4int_h): Handle big endian.
4337         (vec_interleave_lowv2si): Handle big endian.
4338         (vec_interleave_lowv2si_be): New.
4339         (vec_interleave_lowv2si_le): New.
4340         (insn_v4int_l): Handle big endian.
4341         * config/tilegx/tilegx.opt (mbig-endian): New option.
4342         (mlittle-endian): New option.
4343         * doc/install.texi: Document tilegxbe-linux.
4344         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
4345
4346 2014-02-24  Martin Jambor  <mjambor@suse.cz>
4347
4348         PR ipa/60266
4349         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
4350         there are no parameter descriptors.
4351
4352 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
4353
4354         PR rtl-optimization/60268
4355         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
4356         initialization to ...
4357         (sched_rgn_init): ... here.
4358         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
4359
4360 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
4361
4362         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
4363         names.
4364
4365 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
4366
4367         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
4368         definition.
4369
4370 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
4371
4372         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
4373         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
4374
4375 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
4376
4377         * config/microblaze/predicates.md: Add cmp_op predicate.
4378         * config/microblaze/microblaze.md: Add branch_compare instruction
4379         which uses cmp_op predicate and emits cmp insn before branch.
4380         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
4381         to microblaze_expand_conditional_branch and consolidate logic.
4382         (microblaze_expand_conditional_branch): emit branch_compare
4383         insn instead of handling cmp op separate from branch insn.
4384
4385 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4386
4387         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
4388         to permit subregs.
4389
4390 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4391
4392         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
4393         define_insn with define_expand and new define_insn
4394         *altivec_lve<VI_char>x_internal.
4395         (altivec_stve<VI_char>x): Replace define_insn with define_expand
4396         and new define_insn *altivec_stve<VI_char>x_internal.
4397         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
4398         prototype.
4399         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
4400         lve*x built-ins.
4401         (altivec_expand_stvex_be): New function.
4402
4403 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
4404
4405         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
4406         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
4407         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
4408         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
4409
4410 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
4411
4412         PR target/60298
4413         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
4414         instead of emit_move_insn.
4415
4416 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4417
4418         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
4419         vspltw with vsldoi.
4420         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
4421         gen_altivec_vsumsws.
4422
4423 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4424
4425         * config/rs6000/altivec.md (altivec_lvxl): Rename as
4426         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
4427         (altivec_lvxl_<mode>): New define_expand incorporating
4428         -maltivec=be semantics where needed.
4429         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
4430         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
4431         semantics where needed.
4432         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
4433         (altivec_stvx_<mode>): New define_expand incorporating
4434         -maltivec=be semantics where needed.
4435         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
4436         VM2 iterator instead of V4SI.
4437         (altivec_stvxl_<mode>): New define_expand incorporating
4438         -maltivec=be semantics where needed.
4439         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
4440         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
4441         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
4442         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
4443         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
4444         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
4445         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
4446         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
4447         ALTIVEC_BUILTIN_STVXL.
4448         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
4449         (altivec_expand_stvx_be): Likewise.
4450         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
4451         (altivec_expand_lvx_be): Likewise.
4452         (altivec_expand_stvx_be): Likewise.
4453         (altivec_expand_builtin): Add cases for
4454         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
4455         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
4456         (altivec_init_builtins): Add definitions for
4457         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
4458         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
4459
4460 2014-02-21  Catherine Moore  <clm@codesourcery.com>
4461
4462         * doc/invoke.texi (mvirt, mno-virt): Document.
4463         * config/mips/mips.opt (mvirt): New option.
4464         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
4465
4466 2014-02-21  Richard Biener  <rguenther@suse.de>
4467
4468         PR tree-optimization/60276
4469         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
4470         (STMT_VINFO_MIN_NEG_DIST): New macro.
4471         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
4472         STMT_VINFO_MIN_NEG_DIST.
4473         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
4474         made for negative dependence distances still hold.
4475
4476 2014-02-21  Richard Biener  <rguenther@suse.de>
4477
4478         PR middle-end/60291
4479         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
4480         DECL_INITIAL for globals not in the current function context.
4481
4482 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
4483
4484         PR tree-optimization/56490
4485         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
4486         * tree-ssa-uninit.c: Include params.h.
4487         (compute_control_dep_chain): Add num_calls argument, return false
4488         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
4489         num_calls to recursive call.
4490         (find_predicates): Change dep_chain into normal array,
4491         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
4492         variable and adjust compute_control_dep_chain caller.
4493         (find_def_preds): Likewise.
4494
4495 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
4496
4497         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
4498         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
4499
4500 2014-02-21  Nick Clifton  <nickc@redhat.com>
4501
4502         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
4503         (pushhi1): Likewise.
4504         (popqi1): Add mode to pre_dec.
4505         (pophi1): Likewise.
4506
4507 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
4508
4509         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
4510         mode for mask of V8SFmode permutation.
4511
4512 2014-02-20  Richard Henderson  <rth@redhat.com>
4513
4514         PR c++/60272
4515         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
4516         a new pseudo for OLDVAL.
4517
4518 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
4519
4520         PR target/57896
4521         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
4522         gen_reg_rtx if d->testing_p.
4523         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
4524         if d->testing_p and we will certainly return true.
4525         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
4526         if d->testing_p.
4527
4528 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
4529
4530         * emit-rtl.c (gen_reg_rtx): Assert that
4531         crtl->emit.regno_pointer_align_length is non-zero.
4532
4533 2014-02-20  Richard Henderson  <rth@redhat.com>
4534
4535         PR c++/60272
4536         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
4537         on failure the store back into EXPECT.
4538
4539 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
4540             Sandra Loosemore  <sandra@codesourcery.com>
4541
4542         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
4543         * config/nios2/nios2.c (nios2_function_profiler): Add
4544         -fPIC (flag_pic == 2) support.
4545         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
4546         (nios2_large_offset_p): New function.
4547         (nios2_unspec_reloc_p): Move up position, update to use
4548         nios2_large_offset_p.
4549         (nios2_unspec_address): Remove function.
4550         (nios2_unspec_offset): New function.
4551         (nios2_large_got_address): New function.
4552         (nios2_got_address): Add large offset support.
4553         (nios2_legitimize_tls_address): Update usage of removed and new
4554         functions.
4555         (nios2_symbol_binds_local_p): New function.
4556         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
4557         (nios2_legitimize_address): Update to use nios2_large_offset_p.
4558         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
4559         (nios2_print_operand): Merge H/L processing, add hiadj/lo
4560         processing for (const (unspec ...)).
4561         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
4562
4563 2014-02-20  Richard Biener  <rguenther@suse.de>
4564
4565         * tree-cfg.c (replace_uses_by): Mark altered BBs before
4566         doing the substitution.
4567         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
4568
4569 2014-02-20  Martin Jambor  <mjambor@suse.cz>
4570
4571         PR ipa/55260
4572         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
4573         info when checking whether lattices are bottom.
4574
4575 2014-02-20  Richard Biener  <rguenther@suse.de>
4576
4577         PR middle-end/60221
4578         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
4579         regions at -O0.
4580
4581 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
4582
4583         PR ipa/58555
4584         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
4585         parameter specifying the scaling.
4586         (inline_call): Update.
4587         (want_inline_recursively): Guard division by zero.
4588         (recursive_inlining): Update.
4589         * ipa-inline.h (clone_inlined_nodes): Update.
4590
4591 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
4592
4593         PR target/60204
4594         * config/i386/i386.c (classify_argument): Pass structures of size
4595         64 bytes or less in register.
4596
4597 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
4598             Kirill Yukhin  <kirill.yukhin@intel.com>
4599
4600         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
4601         (_mm_rcp28_round_ss): Ditto.
4602         (_mm_rsqrt28_round_sd): Ditto.
4603         (_mm_rsqrt28_round_ss): Ditto.
4604         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
4605         (_mm_rcp14_round_ss): Ditto.
4606         (_mm_rsqrt14_round_sd): Ditto.
4607         (_mm_rsqrt14_round_ss): Ditto.
4608         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
4609         the first input operand, get rid of match_dup.
4610         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
4611         attribute to sse.
4612         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
4613         Ditto.
4614         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
4615         operand as the first input operand, set type attribute.
4616         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
4617         Set type attribute.
4618         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
4619         operand as the first input operand, set type attribute.
4620
4621 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4622
4623         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
4624         bit of zero.
4625
4626 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4627
4628         PR target/60207
4629         * config/i386/i386.c (construct_container): Remove TFmode check
4630         for X86_64_INTEGER_CLASS.
4631
4632 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
4633
4634         PR target/59794
4635         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
4636         only when -Wpsabi is enabled.
4637
4638 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
4639
4640          PR target/59799
4641         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
4642         passing arrays in registers are the same as for structs, so remove the
4643         special case for them.
4644
4645 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
4646
4647         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
4648         destination type, extract only the valid bits if the source type is not
4649         integral and has a different mode.
4650
4651 2014-02-19  Richard Biener  <rguenther@suse.de>
4652
4653         PR ipa/60243
4654         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
4655         for all calls.
4656
4657 2014-02-19  Richard Biener  <rguenther@suse.de>
4658
4659         PR ipa/60243
4660         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
4661         (ipa_modify_call_arguments): Emit an argument load explicitely and
4662         preserve virtual SSA form there and for the replacement call.
4663         Do not update SSA form nor free dominance info.
4664
4665 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
4666
4667         * ipa.c (function_and_variable_visibility): Also clear WEAK
4668         flag when disolving COMDAT_GROUP.
4669
4670 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
4671
4672         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
4673         * ipa-prop.c (ipa_set_jf_known_type): Return early when
4674         not devirtualizing.
4675         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
4676         do more sanity checks.
4677         (detect_type_change): Return true when giving up early.
4678         (compute_complex_assign_jump_func): Fix type parameter of
4679         ipa_set_ancestor_jf.
4680         (compute_complex_ancestor_jump_func): Likewise.
4681         (update_jump_functions_after_inlining): Fix updating of
4682         ancestor function.
4683         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
4684
4685 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
4686
4687         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
4688         inline clones when edge disappears.
4689
4690 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4691
4692         PR target/60203
4693         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
4694         Split 64-bit moves into 2 patterns.  Do not allow the use of
4695         direct move for TDmode in little endian, since the decimal value
4696         has little endian bytes within a word, but the 64-bit pieces are
4697         ordered in a big endian fashion, and normal subreg's of TDmode are
4698         not allowed.
4699         (mov<mode>_64bit_dm): Likewise.
4700         (movtd_64bit_nodm): Likewise.
4701
4702 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
4703
4704         PR tree-optimization/60174
4705         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
4706         statement of an SSA_NAME that occurs in an abnormal PHI node.
4707
4708 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
4709
4710         PR sanitizer/60142
4711         * final.c (SEEN_BB): Remove.
4712         (SEEN_NOTE, SEEN_EMITTED): Renumber.
4713         (final_scan_insn): Don't force_source_line on second
4714         NOTE_INSN_BASIC_BLOCK.
4715
4716 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
4717
4718         PR target/60205
4719         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
4720         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
4721         (type_natural_mode): Warn ABI change when %zmm register is not
4722         available for AVX512F vector value passing.
4723
4724 2014-02-18  Kai Tietz  <ktietz@redhat.com>
4725
4726         PR target/60193
4727         * config/i386/i386.c (ix86_expand_prologue): Use value in
4728         rax register as displacement when restoring %r10 or %rax.
4729         Fix wrong offset when restoring both registers.
4730
4731 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
4732
4733         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
4734         assertion with conditional return.
4735
4736 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
4737             Uros Bizjak  <ubizjak@gmail.com>
4738
4739         PR driver/60233
4740         * config/i386/driver-i386.c (host_detect_local_cpu): If
4741         YMM state is not saved by the OS, also clear has_f16c.  Move
4742         CPUID 0x80000001 handling before YMM state saving checking.
4743
4744 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
4745
4746         PR rtl-optimization/58960
4747         * haifa-sched.c (alloc_global_sched_pressure_data): New,
4748         factored out from ...
4749         (sched_init): ... here.
4750         (free_global_sched_pressure_data): New, factored out from ...
4751         (sched_finish): ... here.
4752         * sched-int.h (free_global_sched_pressure_data): Declare.
4753         * sched-rgn.c (nr_regions_initial): New static global.
4754         (haifa_find_rgns): Initialize it.
4755         (schedule_region): Disable sched-pressure for the newly
4756         generated regions.
4757
4758 2014-02-17  Richard Biener  <rguenther@suse.de>
4759
4760         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
4761         release SSA defs of pattern stmts.
4762
4763 2014-02-17  Richard Biener  <rguenther@suse.de>
4764
4765         * tree-inline.c (expand_call_inline): Release the virtual
4766         operand defined by the call we are about to inline.
4767
4768 2014-02-17  Richard Biener  <rguenther@suse.de>
4769
4770         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
4771
4772 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
4773             Ilya Tocar  <ilya.tocar@intel.com>
4774
4775         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
4776         arguments order in builtin.
4777         (_mm512_permutexvar_epi64): Ditto.
4778         (_mm512_mask_permutexvar_epi64): Ditto
4779         (_mm512_maskz_permutexvar_epi32): Ditto
4780         (_mm512_permutexvar_epi32): Ditto
4781         (_mm512_mask_permutexvar_epi32): Ditto
4782
4783 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4784
4785         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
4786         (p8_vmrgow): Likewise.
4787
4788 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4789
4790         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
4791         endian targets.
4792
4793 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
4794
4795         PR target/60203
4796         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
4797         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
4798         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
4799         using direct move instructions on ISA 2.07.  Also adjust
4800         instruction length for 64-bit.
4801         (mov<mode>_64bit, TFmode/TDmode): Likewise.
4802         (mov<mode>_32bit, TFmode/TDmode): Likewise.
4803
4804 2014-02-15  Alan Modra  <amodra@gmail.com>
4805
4806         PR target/58675
4807         PR target/57935
4808         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
4809         find_replacement on parts of insn rtl that might be reloaded.
4810
4811 2014-02-15  Richard Biener  <rguenther@suse.de>
4812
4813         PR tree-optimization/60183
4814         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
4815         (tree_ssa_phiprop): Calculate and free post-dominators.
4816
4817 2014-02-14  Jeff Law  <law@redhat.com>
4818
4819         PR rtl-optimization/60131
4820         * ree.c (get_extended_src_reg): New function.
4821         (combine_reaching_defs): Use it rather than assuming location of REG.
4822         (find_and_remove_re): Verify first operand of extension is
4823         a REG before adding the insns to the copy list.
4824
4825 2014-02-14  Roland McGrath  <mcgrathr@google.com>
4826
4827         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
4828         * configure: Regenerated.
4829         * config.in: Regenerated.
4830         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
4831         instead of ASM_SHORT.
4832
4833 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
4834             Richard Earnshaw  <rearnsha@arm.com>
4835
4836         PR rtl-optimization/59535
4837         * lra-constraints.c (process_alt_operands): Encourage alternative
4838         when unassigned pseudo class is superset of the alternative class.
4839         (inherit_reload_reg): Don't inherit when optimizing for code size.
4840         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
4841         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
4842         modes not less than 4 for Thumb1.
4843
4844 2014-02-14  Kyle McMartin  <kyle@redhat.com>
4845
4846         PR pch/60010
4847         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
4848
4849 2014-02-14  Richard Biener  <rguenther@suse.de>
4850
4851         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
4852         (get_frame_arg): Drop the assert with langhook types_compatible_p.
4853         Do not strip INDIRECT_REFs.
4854
4855 2014-02-14  Richard Biener  <rguenther@suse.de>
4856
4857         PR lto/60179
4858         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
4859         DECL_FUNCTION_SPECIFIC_TARGET.
4860         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
4861         * tree-streamer-out.c (pack_ts_target_option): Remove.
4862         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
4863         (write_ts_function_decl_tree_pointers): Do not stream
4864         DECL_FUNCTION_SPECIFIC_TARGET.
4865         * tree-streamer-in.c (unpack_ts_target_option): Remove.
4866         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
4867         (lto_input_ts_function_decl_tree_pointers): Do not stream
4868         DECL_FUNCTION_SPECIFIC_TARGET.
4869
4870 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
4871
4872         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
4873         (get_initial_def_for_induction, vectorizable_induction): Ignore
4874         debug stmts when looking for exit_phi.
4875         (vectorizable_live_operation): Fix up condition.
4876
4877 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
4878
4879         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
4880         nreverse() because it changes the content of original tree list.
4881
4882 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
4883
4884         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
4885         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
4886
4887 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
4888
4889         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
4890         GNU coding standards.
4891
4892 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
4893
4894         PR debug/60152
4895         * dwarf2out.c (gen_subprogram_die): Don't call
4896         add_calling_convention_attribute if subr_die is old_die.
4897
4898 2014-02-13  Sharad Singhai  <singhai@google.com>
4899
4900         * doc/optinfo.texi: Fix order of nodes.
4901
4902 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
4903
4904         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
4905         operands[2], not operands[3].
4906
4907 2014-02-13  Richard Biener  <rguenther@suse.de>
4908
4909         PR bootstrap/59878
4910         * doc/install.texi (ISL): Update recommended version to 0.12.2,
4911         mention the possibility of an in-tree build.
4912         (CLooG): Update recommended version to 0.18.1, mention the
4913         possibility of an in-tree build and clarify that the ISL
4914         bundled with CLooG does not work.
4915
4916 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
4917
4918         PR target/43546
4919         * expr.c (compress_float_constant): If x is a hard register,
4920         extend into a pseudo and then move to x.
4921
4922 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4923
4924         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
4925         caused by bad second argument to warning_at() with -mhotpatch and
4926         nested functions (e.g. with gfortran).
4927
4928 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
4929
4930         * opts.c (option_name): Remove "enabled by default" rider.
4931
4932 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
4933
4934         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
4935
4936 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4937             Uros Bizjak  <ubizjak@gmail.com>
4938
4939         PR target/60151
4940         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
4941         * configure: Regenerated.
4942
4943 2014-02-12  Richard Biener  <rguenther@suse.de>
4944
4945         * vec.c (vec_prefix::calculate_allocation): Move as
4946         inline variant to vec.h.
4947         (vec_prefix::calculate_allocation_1): New out-of-line version.
4948         * vec.h (vec_prefix::calculate_allocation_1): Declare.
4949         (vec_prefix::m_has_auto_buf): Rename to ...
4950         (vec_prefix::m_using_auto_storage): ... this.
4951         (vec_prefix::calculate_allocation): Inline the easy cases
4952         and dispatch to calculate_allocation_1 which doesn't need the
4953         prefix address.
4954         (va_heap::reserve): Use gcc_checking_assert.
4955         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
4956         m_using_auto_storage.
4957         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
4958         member and adjust.
4959         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
4960         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
4961         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
4962
4963 2014-02-12  Richard Biener  <rguenther@suse.de>
4964
4965         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
4966         when we found a dependence.
4967
4968 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
4969
4970         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
4971         common code...
4972         (maybe_fold_stmt): ... into this new function.
4973         * omp-low.c (lower_omp): Update comment.
4974
4975         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
4976         last use.
4977
4978         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
4979         dereference.
4980
4981 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
4982
4983         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
4984         identifiers in comments.
4985         (cortexa53_extra_costs): Likewise.
4986         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
4987         (cortexa7_extra_costs): Likewise.
4988         (cortexa12_extra_costs): Likewise.
4989         (cortexa15_extra_costs): Likewise.
4990         (v7m_extra_costs): Likewise.
4991
4992 2014-02-12  Richard Biener  <rguenther@suse.de>
4993
4994         PR middle-end/60092
4995         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
4996         of posix_memalign being successful.
4997         (lower_stmt): Restrict lowering of posix_memalign to when
4998         -ftree-bit-ccp is enabled.
4999
5000 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5001
5002         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
5003         arg_loc.
5004         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
5005
5006 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
5007
5008         PR rtl-optimization/60116
5009         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
5010         other_insn once the combination has been validated.
5011
5012 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
5013
5014         PR lto/59468
5015         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
5016         and wrapper.
5017         * ipa-devirt.c: Include demangle.h
5018         (odr_violation_reported): New static variable.
5019         (add_type_duplicate): Update odr_violations.
5020         (maybe_record_node): Add completep parameter; update it.
5021         (record_target_from_binfo): Add COMPLETEP parameter;
5022         update it as needed.
5023         (possible_polymorphic_call_targets_1): Likewise.
5024         (struct polymorphic_call_target_d): Add nonconstruction_targets;
5025         rename FINAL to COMPLETE.
5026         (record_targets_from_bases): Sanity check we found the binfo;
5027         fix COMPLETEP updating.
5028         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
5029         parameter, fix computing of COMPLETEP.
5030         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
5031         at LTO time do demangling.
5032         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
5033         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
5034         parameter.
5035         (gimple_get_virt_method_for_binfo): Likewise.
5036         * gimple-fold.h (gimple_get_virt_method_for_binfo,
5037         gimple_get_virt_method_for_vtable): Update prototypes.
5038
5039 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
5040
5041         PR target/49008
5042         * genautomata.c (add_presence_absence): Fix typo with
5043         {final_}presence_list.
5044
5045 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5046
5047         PR target/60137
5048         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
5049         for VSX/Altivec vectors that land in GPR registers.
5050
5051 2014-02-11  Richard Henderson  <rth@redhat.com>
5052             Jakub Jelinek  <jakub@redhat.com>
5053
5054         PR debug/59776
5055         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
5056         around drhs if type conversion to lacc->type is not useless.
5057
5058 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5059
5060         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
5061         tuning struct.
5062         (cortex-a57.cortex-a53): Likewise.
5063         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
5064
5065 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5066
5067         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
5068         arm_restrict_it.
5069
5070 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
5071
5072         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
5073         add_options_for_arm_vfp3.
5074
5075 2014-02-11  Jeff Law  <law@redhat.com>
5076
5077         PR middle-end/54041
5078         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
5079         object with an undesirable mode.
5080
5081 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5082
5083         PR libgomp/60107
5084         * config/i386/sol2-9.h: New file.
5085         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
5086         *-*-solaris2.9*): Use it.
5087
5088 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
5089
5090         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
5091         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
5092
5093 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
5094
5095         * config/microblaze/microblaze.c: Extend mcpu version format
5096
5097 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
5098
5099         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
5100
5101 2014-02-10  Richard Henderson  <rth@redhat.com>
5102
5103         PR target/59927
5104         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
5105         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
5106         ms-abi vs -mno-accumulate-outgoing-args.
5107         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
5108         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
5109         respect to ms-abi.
5110
5111 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5112
5113         PR middle-end/60080
5114         * cfgexpand.c (expand_asm_operands): Attach source location to
5115         ASM_INPUT rtx objects.
5116         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
5117
5118 2014-02-10  Nick Clifton  <nickc@redhat.com>
5119
5120         * config/mn10300/mn10300.c (popcount): New function.
5121         (mn10300_expand_prologue): Include saved registers in stack usage
5122         count.
5123
5124 2014-02-10  Jeff Law  <law@redhat.com>
5125
5126         PR middle-end/52306
5127         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
5128         when changing the SET_DEST of a prior insn to avoid an input reload.
5129
5130 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5131
5132         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
5133         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
5134         -mcall-openbsd, or -mcall-linux.
5135         (CC1_ENDIAN_BIG_SPEC): Remove.
5136         (CC1_ENDIAN_LITTLE_SPEC): Remove.
5137         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
5138         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
5139         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
5140         and %cc1_endian_default.
5141         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
5142
5143 2014-02-10  Richard Biener  <rguenther@suse.de>
5144
5145         PR tree-optimization/60115
5146         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
5147         MEM_REF handling.  Properly verify that the accesses are not
5148         out of the objects bound.
5149
5150 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5151
5152         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
5153         coretex to cortex.
5154
5155 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
5156
5157         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
5158         proper constants and fix formatting.
5159         (possible_polymorphic_call_targets): Fix formatting.
5160
5161 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
5162             Ilya Tocar  <ilya.tocar@intel.com>
5163
5164         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
5165         (_mm512_loadu_epi32): Renamed into...
5166         (_mm512_loadu_si512): This.
5167         (_mm512_storeu_epi32): Renamed into...
5168         (_mm512_storeu_si512): This.
5169         (_mm512_maskz_ceil_ps): Removed.
5170         (_mm512_maskz_ceil_pd): Ditto.
5171         (_mm512_maskz_floor_ps): Ditto.
5172         (_mm512_maskz_floor_pd): Ditto.
5173         (_mm512_floor_round_ps): Ditto.
5174         (_mm512_floor_round_pd): Ditto.
5175         (_mm512_ceil_round_ps): Ditto.
5176         (_mm512_ceil_round_pd): Ditto.
5177         (_mm512_mask_floor_round_ps): Ditto.
5178         (_mm512_mask_floor_round_pd): Ditto.
5179         (_mm512_mask_ceil_round_ps): Ditto.
5180         (_mm512_mask_ceil_round_pd): Ditto.
5181         (_mm512_maskz_floor_round_ps): Ditto.
5182         (_mm512_maskz_floor_round_pd): Ditto.
5183         (_mm512_maskz_ceil_round_ps): Ditto.
5184         (_mm512_maskz_ceil_round_pd): Ditto.
5185         (_mm512_expand_pd): Ditto.
5186         (_mm512_expand_ps): Ditto.
5187         * config/i386/i386.c (ix86_builtins): Remove
5188         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
5189         (bdesc_args): Ditto.
5190         * config/i386/predicates.md (const1256_operand): New.
5191         (const_1_to_2_operand): Ditto.
5192         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
5193         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
5194         (*avx512pf_gatherpf<mode>sf): Ditto.
5195         (avx512pf_gatherpf<mode>df): Ditto.
5196         (*avx512pf_gatherpf<mode>df_mask): Ditto.
5197         (*avx512pf_gatherpf<mode>df): Ditto.
5198         (avx512pf_scatterpf<mode>sf): Ditto.
5199         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
5200         (*avx512pf_scatterpf<mode>sf): Ditto.
5201         (avx512pf_scatterpf<mode>df): Ditto.
5202         (*avx512pf_scatterpf<mode>df_mask): Ditto.
5203         (*avx512pf_scatterpf<mode>df): Ditto.
5204         (avx512f_expand<mode>): Removed.
5205         (<shift_insn><mode>3<mask_name>): Change predicate type.
5206
5207 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
5208
5209         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
5210         not at the end of datarefs vector use ordered_remove to avoid
5211         reordering datarefs vector.
5212
5213         PR c/59984
5214         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
5215         mark local addressable non-static vars as GOVD_PRIVATE
5216         instead of GOVD_LOCAL.
5217         * omp-low.c (lower_omp_for): Move gimple_bind_vars
5218         and BLOCK_VARS of gimple_bind_block to new_stmt rather
5219         than copying them.
5220
5221         PR middle-end/60092
5222         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
5223         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
5224         assume_aligned or alloc_align attributes.
5225         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
5226         arguments.  Handle also assume_aligned and alloc_align attributes.
5227         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
5228         calls to functions with assume_aligned or alloc_align attributes.
5229         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
5230
5231 2014-02-08  Terry Guo  <terry.guo@arm.com>
5232
5233         * doc/invoke.texi: Document ARM -march=armv7e-m.
5234
5235 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
5236
5237         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
5238         flag on __cilkrts_rethrow builtin.
5239
5240         PR ipa/60026
5241         * ipa-cp.c (determine_versionability): Fail at -O0
5242         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
5243         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
5244
5245         Revert:
5246         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
5247
5248         PR ipa/60026
5249         * tree-inline.c (copy_forbidden): Fail for
5250         __attribute__((optimize (0))) functions.
5251
5252 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
5253
5254         * varpool.c: Include pointer-set.h.
5255         (varpool_remove_unreferenced_decls): Variables in other partitions
5256         will not be output; be however careful to not lose information
5257         about partitioning.
5258
5259 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
5260
5261         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
5262         lookup in the vtable constructor.
5263
5264 2014-02-07  Jeff Law  <law@redhat.com>
5265
5266         PR target/40977
5267         * config/m68k/m68k.md (ashldi_extsi): Turn into a
5268         define_insn_and_split.
5269
5270         * ipa-inline.c (inline_small_functions): Fix typos.
5271
5272 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
5273
5274         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
5275         (s390_can_use_return_insn): Declare.
5276         * config/s390/s390.h (EPILOGUE_USES): Define.
5277         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
5278         instructions.
5279         (s390_chunkify_start): Handle return JUMP_LABELs.
5280         (s390_early_mach): Emit a main_pool instruction on the entry edge.
5281         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
5282         (s390_can_use_return_insn): New functions.
5283         (s390_fix_long_loop_prediction): Handle conditional returns.
5284         (TARGET_SET_UP_BY_PROLOGUE): Define.
5285         * config/s390/s390.md (ANY_RETURN): New code iterator.
5286         (*creturn, *csimple_return, return, simple_return): New patterns.
5287
5288 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
5289
5290         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
5291         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
5292         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
5293         REG_CFA_RESTORE list when deciding not to restore a register.
5294
5295 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
5296
5297         * config/s390/s390.c: Include tree-pass.h and context.h.
5298         (s390_early_mach): New function, split out from...
5299         (s390_emit_prologue): ...here.
5300         (pass_data_s390_early_mach): New pass structure.
5301         (pass_s390_early_mach): New class.
5302         (s390_option_override): Create and register early_mach pass.
5303         Move to end of file.
5304
5305 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
5306
5307         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
5308         to match for the exit block.
5309
5310 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5311
5312         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
5313         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
5314         Reject misaligned operands.
5315
5316 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5317
5318         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
5319
5320 2014-02-07  Richard Biener  <rguenther@suse.de>
5321
5322         PR middle-end/60092
5323         * gimple-low.c (lower_builtin_posix_memalign): New function.
5324         (lower_stmt): Call it to lower posix_memalign in a way
5325         to make alignment info accessible.
5326
5327 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
5328
5329         PR c++/60082
5330         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
5331         __builtin_setjmp_receiver.
5332
5333 2014-02-07  Richard Biener  <rguenther@suse.de>
5334
5335         PR middle-end/60092
5336         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
5337         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
5338         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5339         Handle BUILT_IN_POSIX_MEMALIGN.
5340         (find_func_clobbers): Likewise.
5341         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5342         (call_may_clobber_ref_p_1): Likewise.
5343
5344 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
5345
5346         PR ipa/59918
5347         * ipa-devirt.c (record_target_from_binfo): Remove overactive
5348         sanity check.
5349
5350 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
5351
5352         PR ipa/59469
5353         * lto-cgraph.c (lto_output_node): Use
5354         symtab_get_symbol_partitioning_class.
5355         (lto_output_varpool_node): likewise.
5356         (symtab_get_symbol_partitioning_class): Move here from
5357         lto/lto-partition.c
5358         * cgraph.h (symbol_partitioning_class): Likewise.
5359         (symtab_get_symbol_partitioning_class): Declare.
5360
5361 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
5362
5363         * ggc.h (ggc_internal_cleared_alloc): New macro.
5364         * vec.h (vec_safe_copy): Handle memory stats.
5365         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
5366         * target-globals.c (save_target_globals): Likewise.
5367
5368 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
5369
5370         PR target/60077
5371         * expr.c (emit_move_resolve_push): Export; be bit more selective
5372         on when to clear alias set.
5373         * expr.h (emit_move_resolve_push): Declare.
5374         * function.h (struct function): Add tail_call_marked.
5375         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
5376         * config/i386/i386-protos.h (ix86_expand_push): Remove.
5377         * config/i386/i386.md (TImode move expander): De not call
5378         ix86_expand_push.
5379         (FP push expanders): Preserve memory attributes.
5380         * config/i386/sse.md (push<mode>1): Remove.
5381         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
5382         (ix86_expand_push): Remove.
5383         * config/i386/mmx.md (push<mode>1): Remove.
5384
5385 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
5386
5387         PR rtl-optimization/60030
5388         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
5389         lopart with paradoxical subreg before shifting it up by hprec.
5390
5391 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5392
5393         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
5394         Remove extra newline at end of file.
5395         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
5396         (arm_issue_rate): Handle cortexa57.
5397         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
5398         (cortex-a57.cortex-a53): Likewise.
5399
5400 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
5401
5402         PR target/59575
5403         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
5404         don't record in REG_FRAME_RELATED_EXPR registers not set in that
5405         bitmask.
5406         (arm_expand_prologue): Adjust all callers.
5407         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
5408         info, registers also at the lowest numbered registers side.  Use
5409         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
5410         XEXP.
5411
5412         PR debug/59992
5413         * var-tracking.c (adjust_mems): Before adding a SET to
5414         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
5415
5416 2014-02-06  Alan Modra  <amodra@gmail.com>
5417
5418         PR target/60032
5419         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
5420         change SDmode to DDmode when lra_in_progress.
5421
5422 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
5423
5424         PR middle-end/59150
5425         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
5426         free_data_ref on the dr first, and before goto again also set dr
5427         to the next dr.  For simd_lane_access, free old datarefs[i] before
5428         overwriting it.  For get_vectype_for_scalar_type failure, don't
5429         free_data_ref if simd_lane_access.
5430
5431         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
5432
5433         PR target/60062
5434         * tree.h (opts_for_fn): New inline function.
5435         (opt_for_fn): Define.
5436         * config/i386/i386.c (ix86_function_regparm): Use
5437         opt_for_fn (decl, optimize) instead of optimize.
5438
5439 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5440
5441         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
5442         for SYMBOL_REF in large memory model.
5443
5444 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5445
5446         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
5447         and crypto support.
5448         (cortex-a57): Likewise.
5449         (cortex-a57.cortex-a53): Likewise.
5450
5451 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
5452             Kugan Vivekanandarajah  <kuganv@linaro.org>
5453
5454         * config/arm/arm.c (arm_vector_alignment_reachable): Check
5455         unaligned_access.
5456         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
5457
5458 2014-02-06  Richard Biener  <rguenther@suse.de>
5459
5460         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
5461         set_loop_copy and initialize_original_copy_tables.
5462
5463 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
5464
5465         * config/aarch64/aarch64-simd.md
5466         (aarch64_ashr_simddi): Change QI to SI.
5467
5468 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
5469             Jakub Jelinek  <jakub@redhat.com>
5470
5471         PR middle-end/60013
5472         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
5473         of the dataflow.
5474
5475 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5476
5477         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
5478         CODE_FOR_altivec_vpku[hw]um to
5479         CODE_FOR_altivec_vpku[hw]um_direct.
5480         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
5481         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
5482         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
5483         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
5484
5485 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5486
5487         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
5488         generation for -maltivec=be.
5489         (altivec_vsumsws): Simplify redundant test.
5490
5491 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5492
5493         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
5494         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
5495         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
5496         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
5497         gen_altivec_vpkuwum.
5498         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
5499         BYTES_BIG_ENDIAN.
5500         (altivec_vpks<VI_char>ss): Likewise.
5501         (altivec_vpks<VI_char>us): Likewise.
5502         (altivec_vpku<VI_char>us): Likewise.
5503         (altivec_vpku<VI_char>um): Likewise.
5504         (altivec_vpku<VI_char>um_direct): New (copy of
5505         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
5506         internal use).
5507         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
5508         target is little endian and -maltivec=be is not specified.
5509         (*altivec_vupkhs<VU_char>_direct): New (copy of
5510         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
5511         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
5512         target is little endian and -maltivec=be is not specified.
5513         (*altivec_vupkls<VU_char>_direct): New (copy of
5514         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
5515         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
5516         little endian and -maltivec=be is not specified.
5517         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
5518         little endian and -maltivec=be is not specified.
5519
5520 2014-02-05  Richard Henderson  <rth@redhat.com>
5521
5522         PR debug/52727
5523         * combine-stack-adj.c: Revert r206943.
5524         * sched-int.h (struct deps_desc): Add last_args_size.
5525         * sched-deps.c (init_deps): Initialize it.
5526         (sched_analyze_insn): Add OUTPUT dependencies between insns that
5527         contain REG_ARGS_SIZE notes.
5528
5529 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
5530
5531         * lto-cgraph.c (asm_nodes_output): Make global.
5532         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
5533         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
5534         (driver_handle_option): Handle OPT_fwpa.
5535
5536 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
5537
5538         PR ipa/59947
5539         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
5540         a comment typo and formatting issue.  If odr_hash hasn't been
5541         created, return vNULL and set *completep to false.
5542
5543         PR middle-end/57499
5544         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
5545         bb with no successors.
5546
5547 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
5548
5549         PR target/59718
5550         * doc/invoke.texi (-march): Clarify documentation for ARM.
5551         (-mtune): Likewise.
5552         (-mcpu): Likewise.
5553
5554 2014-02-05  Richard Biener  <rguenther@suse.de>
5555
5556         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
5557         when not vectorizing because of too many alias checks.
5558         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
5559         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
5560
5561 2014-02-05  Nick Clifton  <nickc@redhat.com>
5562
5563         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
5564         accept extended registers in any mode when compiling for the MN10300.
5565
5566 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
5567
5568         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
5569         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
5570         sanitization attributes.
5571         (can_inline_edge_p): Likewise.
5572         (sanitize_attrs_match_for_inline_p): New function.
5573
5574 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
5575
5576         * ipa-prop.c (detect_type_change): Shor circuit testing of
5577         type changes on THIS pointer.
5578
5579 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
5580
5581         PR target/59777
5582         * config/pa/pa.c (legitimize_tls_address): Return original address
5583         if not passed a SYMBOL_REF rtx.
5584         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
5585         addresses.
5586         (pa_emit_move_sequence): Simplify TLS source operands.
5587         (pa_legitimate_constant_p): Reject all TLS constants.
5588         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
5589         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
5590
5591 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
5592
5593         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
5594         groups when we know they are controlled by LTO.
5595         * varasm.c (default_binds_local_p_1): If object is in other partition,
5596         it will be resolved locally.
5597
5598 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5599
5600         * config/host-linux.c (linux_gt_pch_use_address): Don't
5601         use SSIZE_MAX because it is not always defined.
5602
5603 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
5604
5605         PR bootstrap/59913
5606         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
5607         threshold for pseudo splitting.
5608         (update_ebb_live_info): Process call argument hard registers and
5609         hard registers from insn definition too.
5610         (max_small_class_regs_num): New constant.
5611         (inherit_in_ebb): Update live hard regs through EBBs.  Update
5612         reloads_num only for small register classes.  Don't split for
5613         outputs of jumps.
5614
5615 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
5616
5617         PR ipa/60058
5618         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
5619         is non-null.
5620
5621 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
5622
5623         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
5624         visibility is safe.
5625
5626 2014-02-04  Marek Polacek  <polacek@redhat.com>
5627
5628         * gdbinit.in (pel): Define.
5629
5630 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5631
5632         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
5633         behavior.
5634
5635 2014-02-04  Richard Biener  <rguenther@suse.de>
5636
5637         PR lto/59723
5638         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
5639         in function context local.
5640         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
5641         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
5642         similar to LTO_imported_decl_ref.
5643
5644 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
5645
5646         PR tree-optimization/60002
5647         * cgraphclones.c (build_function_decl_skip_args): Clear
5648         DECL_LANG_SPECIFIC.
5649
5650         PR tree-optimization/60023
5651         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
5652         false to gsi_replace.
5653         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
5654         has been in some EH region and vec_stmt could throw, add
5655         vec_stmt into the same EH region.
5656         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
5657         has no lhs, ignore it.
5658         * internal-fn.c (expand_MASK_LOAD): Likewise.
5659
5660         PR ipa/60026
5661         * tree-inline.c (copy_forbidden): Fail for
5662         __attribute__((optimize (0))) functions.
5663
5664         PR other/58712
5665         * omp-low.c (simd_clone_struct_copy): If from->inbranch
5666         is set, copy one less argument.
5667         (expand_simd_clones): Don't subtract clone_info->inbranch
5668         from simd_clone_struct_alloc argument.
5669
5670         PR rtl-optimization/57915
5671         * recog.c (simplify_while_replacing): If all unary/binary/relational
5672         operation arguments are constant, attempt to simplify those.
5673
5674         PR middle-end/59261
5675         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
5676         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
5677
5678 2014-02-04  Richard Biener  <rguenther@suse.de>
5679
5680         PR tree-optimization/60012
5681         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
5682         TBAA disambiguation to all DDRs.
5683
5684 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5685
5686         PR target/59788
5687         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
5688         (LINK_SPEC): Use it for -shared, -shared-libgcc.
5689
5690 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
5691
5692         PR ipa/59882
5693         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
5694
5695 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
5696
5697         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
5698         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
5699
5700 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
5701
5702         PR ipa/59831
5703         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
5704         to figure out targets of polymorphic calls with known decl.
5705         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5706         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
5707         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
5708         (get_polymorphic_call_info): ... here.
5709         (get_polymorphic_call_info_from_invariant): New function.
5710
5711 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
5712
5713         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
5714         lookup via vtable pointer; check for type consistency
5715         and turn inconsitent facts into UNREACHABLE.
5716         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5717         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
5718         type inconsistent querries; return UNREACHABLE instead.
5719
5720 2014-02-03  Richard Henderson  <rth@twiddle.net>
5721
5722         PR tree-opt/59924
5723         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
5724         already processed this node.
5725         (normalize_one_pred_1): Pass along mark_set.
5726         (normalize_one_pred): Create and destroy a pointer_set_t.
5727         (normalize_one_pred_chain): Likewise.
5728
5729 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
5730
5731         PR gcov-profile/58602
5732         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
5733
5734 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
5735
5736         PR ipa/59831
5737         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
5738         -fno-devirtualize; try to devirtualize by the knowledge of
5739         virtual table pointer given by aggregate propagation.
5740         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5741         (ipa_print_node_jump_functions): Dump also offset that
5742         is relevant for polymorphic calls.
5743         (determine_known_aggregate_parts): Add arg_type parameter; use it
5744         instead of determining the type from pointer type.
5745         (ipa_compute_jump_functions_for_edge): Update call of
5746         determine_known_aggregate_parts.
5747         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
5748         (gimple_get_virt_method_for_binfo): ... here; simplify using
5749         vtable_pointer_value_to_vtable.
5750         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
5751         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
5752         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
5753         (vtable_pointer_value_to_vtable): Break out from ...; handle also
5754         POINTER_PLUS_EXPR.
5755         (vtable_pointer_value_to_binfo): ... here.
5756         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
5757
5758 2014-02-03  Teresa Johnson  <tejohnson@google.com>
5759
5760         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
5761         redef of outer loop index variable.
5762
5763 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
5764
5765         PR c++/53017
5766         PR c++/59211
5767         * doc/extend.texi (Function Attributes): Typo.
5768
5769 2014-02-03  Cong Hou  <congh@google.com>
5770
5771         PR tree-optimization/60000
5772         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
5773         if the vectorized statement is a store.  A store statement can only
5774         appear at the end of pattern statements.
5775
5776 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
5777
5778         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
5779         (ix86_option_override_internal): Default long double to 64-bit for
5780         32-bit Bionic and to 128-bit for 64-bit Bionic.
5781
5782         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
5783         TARGET_LONG_DOUBLE_128 is true.
5784         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
5785
5786         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
5787         (mlong-double-64): Negate -mlong-double-128.
5788         (mlong-double-128): New option.
5789
5790         * config/i386/i386-c.c (ix86_target_macros): Define
5791         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
5792
5793         * doc/invoke.texi: Document -mlong-double-128.
5794
5795 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
5796
5797         PR rtl-optimization/60024
5798         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
5799
5800 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
5801
5802         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
5803
5804 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
5805
5806         PR rtl-optimization/57662
5807         * sel-sched.c (code_motion_path_driver): Do not mark already not
5808         existing blocks in the visiting bitmap.
5809
5810 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
5811
5812         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
5813         on the insn being emitted.
5814
5815 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
5816             Will Deacon  <will.deacon@arm.com>
5817
5818         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
5819
5820 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5821
5822         * config/arm/arm-tables.opt: Regenerate.
5823
5824 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5825
5826         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
5827         for vector types other than V16QImode.
5828         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
5829         define_expand, and call altivec_expand_vec_perm_le when producing
5830         code with little endian element order.
5831         (*altivec_vperm_<mode>_internal): New insn having previous
5832         behavior of altivec_vperm_<mode>.
5833         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
5834         altivec_expand_vec_perm_le when producing code with little endian
5835         element order.
5836         (*altivec_vperm_<mode>_uns_internal): New insn having previous
5837         behavior of altivec_vperm_<mode>_uns.
5838
5839 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5840
5841         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
5842         (altivec_vsumsws): Add handling for -maltivec=be with a little
5843         endian target.
5844         (altivec_vsumsws_direct): New.
5845         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
5846         gen_altivec_vsumsws.
5847
5848 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
5849
5850         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
5851         vtable_pointer_value_to_binfo): New functions.
5852         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
5853         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
5854
5855 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
5856
5857         * config/nios2/nios2.md (load_got_register): Initialize GOT
5858         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
5859         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
5860
5861 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
5862
5863         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
5864         preserverd by passthrough, do not propagate the type.
5865
5866 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5867
5868         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
5869         (mips_atomic_assign_expand_fenv): New function.
5870         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
5871
5872 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5873
5874         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
5875         (__builtin_mips_set_fcsr): Likewise.
5876         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
5877         MIPS_USI_FTYPE_VOID.
5878         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
5879         (mips16_expand_set_fcsr): Likewise.
5880         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
5881         (mips16_set_fcsr_stub): Likewise.
5882         (mips16_get_fcsr_one_only_stub): New class.
5883         (mips16_set_fcsr_one_only_stub): Likewise.
5884         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
5885         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
5886         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
5887         (hard_float): New availability predicate.
5888         (mips_builtins): Add get_fcsr and set_fcsr.
5889         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
5890         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
5891         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
5892         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
5893         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
5894         patterns.
5895
5896 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5897
5898         * config/mips/mips.c (mips_one_only_stub): New class.
5899         (mips_need_mips16_rdhwr_p): Replace with...
5900         (mips16_rdhwr_stub): ...this new variable.
5901         (mips16_stub_call_address): New function.
5902         (mips16_rdhwr_one_only_stub): New class.
5903         (mips_expand_thread_pointer): Use mips16_stub_call_address.
5904         (mips_output_mips16_rdhwr): Delete.
5905         (mips_finish_stub): New function.
5906         (mips_code_end): Use it to handle rdhwr stubs.
5907
5908 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
5909
5910         PR target/60017
5911         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
5912         when calculating size of integer atomic types.
5913
5914 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
5915
5916         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
5917
5918 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
5919
5920         PR tree-optimization/60003
5921         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
5922         * profile.c (branch_prob): Use gimple_call_builtin_p
5923         to check for BUILT_IN_SETJMP_RECEIVER.
5924         * tree-inline.c (copy_bb): Call notice_special_calls.
5925
5926 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
5927
5928         PR bootstrap/59985
5929         * lra-constraints.c (process_alt_operands): Update reload_sum only
5930         on the first pass.
5931
5932 2014-01-31  Richard Henderson  <rth@redhat.com>
5933
5934         PR middle-end/60004
5935         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
5936         until after else_eh is processed.
5937
5938 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
5939
5940         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
5941         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
5942         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
5943         in smmintrin.h, remove them.
5944         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
5945         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
5946         * config/i386/i386.md (ROUND_SAE): Fix value.
5947         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
5948         (const48_operand): New.
5949         * config/i386/subst.md (round), (round_expand): Use
5950         const_4_or_8_to_11_operand.
5951         (round_saeonly), (round_saeonly_expand): Use const48_operand.
5952
5953 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
5954
5955         * config/i386/constraints.md (Yk): Swap meaning with k.
5956         * config/i386/i386.md (movhi_internal): Change Yk to k.
5957         (movqi_internal): Ditto.
5958         (*k<logic><mode>): Ditto.
5959         (*andhi_1): Ditto.
5960         (*andqi_1): Ditto.
5961         (kandn<mode>): Ditto.
5962         (*<code>hi_1): Ditto.
5963         (*<code>qi_1): Ditto.
5964         (kxnor<mode>): Ditto.
5965         (kortestzhi): Ditto.
5966         (kortestchi): Ditto.
5967         (kunpckhi): Ditto.
5968         (*one_cmplhi2_1): Ditto.
5969         (*one_cmplqi2_1): Ditto.
5970         * config/i386/sse.md (): Change k to Yk.
5971         (avx512f_load<mode>_mask): Ditto.
5972         (avx512f_blendm<mode>): Ditto.
5973         (avx512f_store<mode>_mask): Ditto.
5974         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
5975         (avx512f_storedqu<mode>_mask): Ditto.
5976         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
5977         Ditto.
5978         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
5979         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
5980         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
5981         (avx512f_maskcmp<mode>3): Ditto.
5982         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
5983         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
5984         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
5985         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
5986         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
5987         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
5988         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
5989         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
5990         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
5991         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
5992         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
5993         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
5994         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
5995         (vec_extract_lo_<mode>_maskm): Ditto.
5996         (vec_extract_hi_<mode>_maskm): Ditto.
5997         (avx512f_vternlog<mode>_mask): Ditto.
5998         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
5999         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
6000         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
6001         (avx512f_<code>v8div16qi2_mask): Ditto.
6002         (avx512f_<code>v8div16qi2_mask_store): Ditto.
6003         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
6004         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
6005         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
6006         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
6007         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6008         (*avx512pf_gatherpf<mode>df_mask): Ditto.
6009         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6010         (*avx512pf_scatterpf<mode>df_mask): Ditto.
6011         (avx512cd_maskb_vec_dupv8di): Ditto.
6012         (avx512cd_maskw_vec_dupv16si): Ditto.
6013         (avx512f_vpermi2var<mode>3_maskz): Ditto.
6014         (avx512f_vpermi2var<mode>3_mask): Ditto.
6015         (avx512f_vpermi2var<mode>3_mask): Ditto.
6016         (avx512f_vpermt2var<mode>3_maskz): Ditto.
6017         (*avx512f_gathersi<mode>): Ditto.
6018         (*avx512f_gathersi<mode>_2): Ditto.
6019         (*avx512f_gatherdi<mode>): Ditto.
6020         (*avx512f_gatherdi<mode>_2): Ditto.
6021         (*avx512f_scattersi<mode>): Ditto.
6022         (*avx512f_scatterdi<mode>): Ditto.
6023         (avx512f_compress<mode>_mask): Ditto.
6024         (avx512f_compressstore<mode>_mask): Ditto.
6025         (avx512f_expand<mode>_mask): Ditto.
6026         * config/i386/subst.md (mask): Change k to Yk.
6027         (mask_scalar_merge): Ditto.
6028         (sd): Ditto.
6029
6030 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
6031
6032         * doc/extend.texi (Vector Extensions): Document ?: in C++.
6033
6034 2014-01-31  Richard Biener  <rguenther@suse.de>
6035
6036         PR middle-end/59990
6037         * builtins.c (fold_builtin_memory_op): Make sure to not
6038         use a floating-point mode or a boolean or enumeral type for
6039         the copy operation.
6040
6041 2014-01-30  DJ Delorie  <dj@redhat.com>
6042
6043         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
6044         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
6045         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
6046         whenever main() has an epilogue.
6047
6048 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6049
6050         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
6051         unused variable "field".
6052         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
6053         (vsx_mergeh_<mode>): Likewise.
6054         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
6055         (altivec_vmrghh): Likewise.
6056         (altivec_vmrghw): Likewise.
6057         (altivec_vmrglb): Likewise.
6058         (altivec_vmrglh): Likewise.
6059         (altivec_vmrglw): Likewise.
6060         (altivec_vspltb): Add missing uses.
6061         (altivec_vsplth): Likewise.
6062         (altivec_vspltw): Likewise.
6063         (altivec_vspltsf): Likewise.
6064
6065 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
6066
6067         PR target/59923
6068         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
6069         frame related instructions.
6070
6071 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
6072
6073         PR rtl-optimization/59959
6074         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
6075         any reload of register whose subreg is invalid.
6076
6077 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
6078
6079         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
6080         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
6081         Add missing return type - void.
6082
6083 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6084
6085         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
6086         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
6087         remove element index adjustment for endian (now handled in vsx.md
6088         and altivec.md).
6089         (altivec_expand_vec_perm_const): Use
6090         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
6091         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
6092         (vsx_xxspltw_<mode>): Adjust element index for little endian.
6093         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
6094         define_expand and a new define_insn *altivec_vspltb_internal;
6095         adjust for -maltivec=be on a little endian target.
6096         (altivec_vspltb_direct): New.
6097         (altivec_vsplth): Divide into a define_expand and a new
6098         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
6099         little endian target.
6100         (altivec_vsplth_direct): New.
6101         (altivec_vspltw): Divide into a define_expand and a new
6102         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
6103         little endian target.
6104         (altivec_vspltw_direct): New.
6105         (altivec_vspltsf): Divide into a define_expand and a new
6106         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
6107         a little endian target.
6108
6109 2014-01-30  Richard Biener  <rguenther@suse.de>
6110
6111         PR tree-optimization/59993
6112         * tree-ssa-forwprop.c (associate_pointerplus): Check we
6113         can propagate form the earlier stmt and avoid the transform
6114         when the intermediate result is needed.
6115
6116 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
6117
6118         * README.Portability: Fix typo.
6119
6120 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
6121
6122         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
6123         comparison_operator with ordered_comparison_operator.
6124
6125 2014-01-30  Nick Clifton  <nickc@redhat.com>
6126
6127         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
6128         Rename to mn10300_store_multiple_regs.
6129         * config/mn10300/mn10300.c: Likewise.
6130         * config/mn10300/mn10300.md (store_movm): Fix typo: call
6131         store_multiple_regs.
6132         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
6133         Call mn10300_store_multiple_regs.
6134
6135 2014-01-30  Nick Clifton  <nickc@redhat.com>
6136             DJ Delorie  <dj@redhat.com>
6137
6138         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
6139         %fp 2 to keep registers after it properly word-aligned.
6140         (rl78_alloc_physical_registers_umul): Handle the case where both
6141         input operands are the same.
6142
6143 2014-01-30  Richard Biener  <rguenther@suse.de>
6144
6145         PR tree-optimization/59903
6146         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
6147         check properly.
6148
6149 2014-01-30  Jason Merrill  <jason@redhat.com>
6150
6151         PR c++/59633
6152         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
6153
6154         PR c++/59645
6155         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
6156
6157 2014-01-30  Richard Biener  <rguenther@suse.de>
6158
6159         PR tree-optimization/59951
6160         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
6161
6162 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
6163
6164         PR target/59784
6165         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
6166         SFmode to DFmode case.
6167
6168 2014-01-29  DJ Delorie  <dj@redhat.com>
6169
6170         * config/msp430/msp430.opt (-minrt): New.
6171         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
6172         if -minrt given.
6173         (ENDFILE_SPEC): Likewise.
6174
6175 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
6176
6177         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
6178         (estimate_function_body_sizes): Use it.
6179
6180 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
6181
6182         PR c++/58561
6183         * dwarf2out.c (is_cxx_auto): New.
6184         (is_base_type): Use it.
6185         (gen_type_die_with_usage): Likewise.
6186
6187 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6188
6189         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
6190         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
6191         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
6192         -maltivec=be with LE targets.
6193         (vsx_mergeh_<mode>): Likewise.
6194         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
6195         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
6196         (altivec_vmrghb): Replace with define_expand and new
6197         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
6198         (altivec_vmrghb_direct): New define_insn.
6199         (altivec_vmrghh): Replace with define_expand and new
6200         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
6201         (altivec_vmrghh_direct): New define_insn.
6202         (altivec_vmrghw): Replace with define_expand and new
6203         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
6204         (altivec_vmrghw_direct): New define_insn.
6205         (*altivec_vmrghsf): Adjust for endianness.
6206         (altivec_vmrglb): Replace with define_expand and new
6207         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
6208         (altivec_vmrglb_direct): New define_insn.
6209         (altivec_vmrglh): Replace with define_expand and new
6210         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
6211         (altivec_vmrglh_direct): New define_insn.
6212         (altivec_vmrglw): Replace with define_expand and new
6213         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
6214         (altivec_vmrglw_direct): New define_insn.
6215         (*altivec_vmrglsf): Adjust for endianness.
6216         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
6217         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
6218         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
6219         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
6220         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
6221         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
6222         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
6223         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
6224
6225 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6226
6227         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
6228         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
6229         whitespace.
6230
6231 2014-01-29  Richard Biener  <rguenther@suse.de>
6232
6233         PR tree-optimization/58742
6234         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
6235         associate_pointerplus_align.
6236         (associate_pointerplus_diff): New function.
6237         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
6238         and associate_pointerplus_diff.
6239
6240 2014-01-29  Richard Biener  <rguenther@suse.de>
6241
6242         * lto-streamer.h (LTO_major_version): Bump to 3.
6243         (LTO_minor_version): Reset to 0.
6244
6245 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
6246
6247         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
6248         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
6249         (arm_file_start): Generate correct asm header for armv7ve.
6250         * config/arm/bpabi.h: Add multilib support for armv7ve.
6251         * config/arm/driver-arm.c: Change the architectures of cortex-a7
6252         and cortex-a15 to armv7ve.
6253         * config/arm/t-aprofile: Add multilib support for armv7ve.
6254         * doc/invoke.texi: Document -march=armv7ve.
6255
6256 2014-01-29  Richard Biener  <rguenther@suse.de>
6257
6258         PR tree-optimization/58742
6259         * tree-ssa-forwprop.c (associate_plusminus): Return true
6260         if we changed sth, defer EH cleanup to ...
6261         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
6262         (simplify_mult): New function.
6263
6264 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
6265
6266         PR middle-end/59917
6267         PR tree-optimization/59920
6268         * tree.c (build_common_builtin_nodes): Remove
6269         __builtin_setjmp_dispatcher initialization.
6270         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
6271         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
6272         instead of gsi_after_labels + manually skipping debug stmts.
6273         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
6274         ignore bbs with IFN_ABNORMAL_DISPATCHER.
6275         * tree-inline.c (copy_edges_for_bb): Remove
6276         can_make_abnormal_goto argument, instead add abnormal_goto_dest
6277         argument.  Ignore computed_goto_p stmts.  Don't call
6278         make_abnormal_goto_edges.  If a call might need abnormal edges
6279         for non-local gotos, see if it already has an edge to
6280         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
6281         with true argument, don't do anything then, otherwise add
6282         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
6283         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
6284         caller.
6285         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
6286         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
6287         (lower_stmt): Don't set data->calls_builtin_setjmp.
6288         (lower_builtin_setjmp): Adjust comment.
6289         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
6290         * tree-cfg.c (found_computed_goto): Remove.
6291         (factor_computed_gotos): Remove.
6292         (make_goto_expr_edges): Return bool, true for computed gotos.
6293         Don't call make_abnormal_goto_edges.
6294         (build_gimple_cfg): Don't set found_computed_goto, don't call
6295         factor_computed_gotos.
6296         (computed_goto_p): No longer static.
6297         (make_blocks): Don't set found_computed_goto.
6298         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
6299         (make_edges): If make_goto_expr_edges returns true, push bb
6300         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
6301         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
6302         vector.  Record mapping between bbs and OpenMP regions if there
6303         are any, adjust make_gimple_omp_edges caller.  Call
6304         handle_abnormal_edges.
6305         (make_abnormal_goto_edges): Remove.
6306         * tree-cfg.h (make_abnormal_goto_edges): Remove.
6307         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
6308         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
6309         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
6310         * internal-fn.def (ABNORMAL_DISPATCHER): New.
6311         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
6312         filling *region also set *region_idx to (*region)->entry->index.
6313
6314         PR other/58712
6315         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
6316         For REGs set ORIGINAL_REGNO.
6317
6318 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
6319
6320         * doc/md.texi: Mention that a target shouldn't implement
6321         vec_widen_(s|u)mul_even/odd pair if it is less efficient
6322         than hi/lo pair.
6323
6324 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
6325
6326         PR tree-optimization/59594
6327         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
6328         a copy of the datarefs vector rather than the vector itself.
6329
6330 2014-01-28  Jason Merrill  <jason@redhat.com>
6331
6332         PR c++/53756
6333         * dwarf2out.c (auto_die): New static.
6334         (gen_type_die_with_usage): Handle C++1y 'auto'.
6335         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
6336         on definition.
6337
6338 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
6339
6340         PR target/59672
6341         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
6342         (SPEC_X32): Likewise.
6343         (SPEC_64): Likewise.
6344         * config/i386/i386.c (ix86_option_override_internal): Turn off
6345         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
6346         for TARGET_16BIT.
6347         (x86_file_start): Output .code16gcc for TARGET_16BIT.
6348         * config/i386/i386.h (TARGET_16BIT): New macro.
6349         (TARGET_16BIT_P): Likewise.
6350         * config/i386/i386.opt: Add m16.
6351         * doc/invoke.texi: Document -m16.
6352
6353 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
6354
6355         PR preprocessor/59935
6356         * input.c (location_get_source_line): Bail out on when line number
6357         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
6358
6359 2014-01-28  Richard Biener  <rguenther@suse.de>
6360
6361         PR tree-optimization/58742
6362         * tree-ssa-forwprop.c (associate_plusminus): Handle
6363         pointer subtraction of the form (T)(P + A) - (T)P.
6364
6365 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6366
6367         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
6368         at const_int_cost.
6369
6370 2014-01-28  Richard Biener  <rguenther@suse.de>
6371
6372         Revert
6373         2014-01-28  Richard Biener  <rguenther@suse.de>
6374
6375         PR rtl-optimization/45364
6376         PR rtl-optimization/59890
6377         * var-tracking.c (local_get_addr_clear_given_value): Handle
6378         already cleared slot.
6379         (val_reset): Handle not allocated local_get_addr_cache.
6380         (vt_find_locations): Use post-order on the inverted CFG.
6381
6382 2014-01-28  Richard Biener  <rguenther@suse.de>
6383
6384         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
6385
6386 2014-01-28  Richard Biener  <rguenther@suse.de>
6387
6388         PR rtl-optimization/45364
6389         PR rtl-optimization/59890
6390         * var-tracking.c (local_get_addr_clear_given_value): Handle
6391         already cleared slot.
6392         (val_reset): Handle not allocated local_get_addr_cache.
6393         (vt_find_locations): Use post-order on the inverted CFG.
6394
6395 2014-01-28  Alan Modra  <amodra@gmail.com>
6396
6397         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
6398         * configure.ac <recursive call for build != host>: Define
6399         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
6400         and LD_FOR_BUILD too.
6401         * configure: Regenerate.
6402
6403 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
6404
6405         * config/i386/i386.c (get_builtin_code_for_version): Separate
6406         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
6407         Broadwell from Haswell.
6408
6409 2014-01-27  Steve Ellcey  <sellcey@mips.com>
6410
6411         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
6412         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
6413         * config/mips/mips.c (mips_option_override): Change setting
6414         of TARGET_DSP.
6415         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
6416         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
6417         Change from Mask to Var.
6418
6419 2014-01-27  Jeff Law  <law@redhat.com>
6420
6421         * ipa-inline.c (inline_small_functions): Fix typo.
6422
6423 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
6424
6425         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
6426         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
6427         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
6428         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
6429         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
6430         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
6431         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
6432         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
6433         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
6434         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
6435         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
6436         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
6437         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
6438         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
6439         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
6440         (_mm512_storeu_epi64): Ditto.
6441         (_mm512_cmpge_epi32_mask): Ditto.
6442         (_mm512_cmpge_epu32_mask): Ditto.
6443         (_mm512_cmpge_epi64_mask): Ditto.
6444         (_mm512_cmpge_epu64_mask): Ditto.
6445         (_mm512_cmple_epi32_mask): Ditto.
6446         (_mm512_cmple_epu32_mask): Ditto.
6447         (_mm512_cmple_epi64_mask): Ditto.
6448         (_mm512_cmple_epu64_mask): Ditto.
6449         (_mm512_cmplt_epi32_mask): Ditto.
6450         (_mm512_cmplt_epu32_mask): Ditto.
6451         (_mm512_cmplt_epi64_mask): Ditto.
6452         (_mm512_cmplt_epu64_mask): Ditto.
6453         (_mm512_cmpneq_epi32_mask): Ditto.
6454         (_mm512_cmpneq_epu32_mask): Ditto.
6455         (_mm512_cmpneq_epi64_mask): Ditto.
6456         (_mm512_cmpneq_epu64_mask): Ditto.
6457         (_mm512_expand_pd): Ditto.
6458         (_mm512_expand_ps): Ditto.
6459         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
6460         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
6461         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
6462         * config/i386/i386.c (ix86_builtins): Add
6463         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
6464         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
6465         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
6466         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
6467         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
6468         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
6469         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
6470         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
6471         IX86_BUILTIN_PMOVUSQW512_MEM.
6472         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
6473         __builtin_ia32_pmovsqd512mem_mask,
6474         __builtin_ia32_pmovqd512mem_mask,
6475         __builtin_ia32_pmovusqw512mem_mask,
6476         __builtin_ia32_pmovsqw512mem_mask,
6477         __builtin_ia32_pmovqw512mem_mask,
6478         __builtin_ia32_pmovusdw512mem_mask,
6479         __builtin_ia32_pmovsdw512mem_mask,
6480         __builtin_ia32_pmovdw512mem_mask,
6481         __builtin_ia32_pmovqb512mem_mask,
6482         __builtin_ia32_pmovusqb512mem_mask,
6483         __builtin_ia32_pmovsqb512mem_mask,
6484         __builtin_ia32_pmovusdb512mem_mask,
6485         __builtin_ia32_pmovsdb512mem_mask,
6486         __builtin_ia32_pmovdb512mem_mask.
6487         (bdesc_args): Add __builtin_ia32_expanddf512,
6488         __builtin_ia32_expandsf512.
6489         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
6490         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
6491         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
6492         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
6493         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
6494         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
6495         (avx512f_<code>v8div16qi2_mask_store): This.
6496         (avx512f_expand<mode>): New.
6497
6498 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
6499
6500         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
6501         New.
6502         (_mm512_mask_prefetch_i64gather_pd): Ditto.
6503         (_mm512_prefetch_i32scatter_pd): Ditto.
6504         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
6505         (_mm512_prefetch_i64scatter_pd): Ditto.
6506         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
6507         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
6508         (_mm512_mask_prefetch_i64gather_ps): Ditto.
6509         (_mm512_prefetch_i32scatter_ps): Ditto.
6510         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
6511         (_mm512_prefetch_i64scatter_ps): Ditto.
6512         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
6513         * config/i386/i386-builtin-types.def: Define
6514         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
6515         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
6516         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
6517         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
6518         IX86_BUILTIN_SCATTERPFQPD.
6519         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
6520         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
6521         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
6522         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
6523         __builtin_ia32_scatterpfqps.
6524         (ix86_expand_builtin): Expand new built-ins.
6525         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
6526         fix memory access data type.
6527         (*avx512pf_gatherpf<mode>_mask): Ditto.
6528         (*avx512pf_gatherpf<mode>): Ditto.
6529         (avx512pf_scatterpf<mode>): Ditto.
6530         (*avx512pf_scatterpf<mode>_mask): Ditto.
6531         (*avx512pf_scatterpf<mode>): Ditto.
6532         (GATHER_SCATTER_SF_MEM_MODE): New.
6533         (avx512pf_gatherpf<mode>df): Ditto.
6534         (*avx512pf_gatherpf<mode>df_mask): Ditto.
6535         (*avx512pf_scatterpf<mode>df): Ditto.
6536
6537 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
6538
6539         PR bootstrap/59934
6540         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
6541         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
6542         reached.
6543
6544 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
6545
6546         * common/config/arm/arm-common.c
6547         (arm_rewrite_mcpu): Handle multiple names.
6548         * config/arm/arm.h
6549         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
6550
6551 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
6552
6553         * gimple-builder.h (create_gimple_tmp): Delete.
6554
6555 2014-01-27  Christian Bruel  <christian.bruel@st.com>
6556
6557         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
6558         words comparisons.
6559
6560 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
6561
6562         * config/pa/pa.md (call): Generate indirect long calls to non-local
6563         functions when outputing 32-bit code.
6564         (call_value): Likewise except for special call to buggy powf function.
6565
6566         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
6567         portable runtime and PIC indirect calls.
6568         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
6569         and PIC call sequences.  Use ldo instead of blr to set return register
6570         in PIC call sequence.
6571
6572 2014-01-25  Walter Lee  <walt@tilera.com>
6573
6574         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
6575         avoid clobbering a live register.
6576
6577 2014-01-25  Walter Lee  <walt@tilera.com>
6578
6579         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
6580         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
6581         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
6582         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
6583
6584 2014-01-25  Walter Lee  <walt@tilera.com>
6585
6586         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
6587         arguments on even registers.
6588         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
6589         STACK_BOUNDARY.
6590         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
6591         (BIGGEST_ALIGNMENT): Ditto.
6592         (BIGGEST_FIELD_ALIGNMENT): Ditto.
6593
6594 2014-01-25  Walter Lee  <walt@tilera.com>
6595
6596         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
6597         insns before bundling.
6598         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
6599
6600 2014-01-25  Walter Lee  <walt@tilera.com>
6601
6602         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
6603         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
6604         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
6605
6606 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
6607
6608         * config/mips/constraints.md (kl): Delete.
6609         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
6610         define expands, using...
6611         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
6612         instructions for MIPS16.
6613         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
6614         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
6615
6616 2014-01-25  Walter Lee  <walt@tilera.com>
6617
6618         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
6619         (clzdi2): Ditto.
6620         (ffsdi2): Ditto.
6621
6622 2014-01-25  Walter Lee  <walt@tilera.com>
6623
6624         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
6625         (TARGET_EXPAND_TO_RTL_HOOK): Define.
6626
6627 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
6628
6629         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
6630         Handle XOR.
6631
6632 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
6633
6634         * print-rtl.c (in_call_function_usage): New var.
6635         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
6636         EXPR_LIST mode as mode and not as reg note name.
6637
6638         PR middle-end/59561
6639         * cfgloopmanip.c (copy_loop_info): If
6640         loop->warned_aggressive_loop_optimizations, make sure
6641         the flag is set in target loop too.
6642
6643 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
6644
6645         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
6646         flag_cilkplus.
6647         * builtins.def: Likewise.
6648         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
6649         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
6650         * ira.c (ira_setup_eliminable_regset): Likewise.
6651         * omp-low.c (gate_expand_omp): Likewise.
6652         (execute_lower_omp): Likewise.
6653         (diagnose_sb_0): Likewise.
6654         (gate_diagnose_omp_blocks): Likewise.
6655         (simd_clone_clauses_extract): Likewise.
6656         (gate): Likewise.
6657
6658 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6659
6660         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
6661         correction for little endian...
6662         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
6663         here.
6664
6665 2014-01-24  Jeff Law  <law@redhat.com>
6666
6667         PR tree-optimization/59919
6668         * tree-vrp.c (find_assert_locations_1): Do not register asserts
6669         for non-returning calls.
6670
6671 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
6672
6673         * common/config/aarch64/aarch64-common.c
6674         (aarch64_rewrite_mcpu): Handle multiple names.
6675         * config/aarch64/aarch64.h
6676         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
6677
6678 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
6679
6680         * input.c (add_file_to_cache_tab): Handle the case where fopen
6681         returns NULL.
6682
6683 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
6684
6685         PR target/59929
6686         * config/i386/i386.md (pushsf splitter): Get stack adjustment
6687         from push operand if code of push isn't PRE_DEC.
6688
6689 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
6690
6691         PR target/59909
6692         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6693         -mquad-memory-atomic.  Update -mquad-memory documentation to say
6694         it is only used for non-atomic loads/stores.
6695
6696         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
6697         -mquad-memory or -mquad-memory-atomic switches.
6698
6699         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
6700         -mquad-memory-atomic to ISA 2.07 support.
6701
6702         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
6703         to separate support of normal quad word memory operations (ldq, stq)
6704         from the atomic quad word memory operations.
6705
6706         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6707         support to separate non-atomic quad word operations from atomic
6708         quad word operations.  Disable non-atomic quad word operations in
6709         little endian mode so that we don't have to swap words after the
6710         load and before the store.
6711         (quad_load_store_p): Add comment about atomic quad word support.
6712         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
6713         options printed with -mdebug=reg.
6714
6715         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
6716         -mquad-memory-atomic as the test for whether we have quad word
6717         atomic instructions.
6718         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
6719         or -mp8-vector are used, allow byte/half-word atomic operations.
6720
6721         * config/rs6000/sync.md (load_lockedti): Insure that the address
6722         is a proper indexed or indirect address for the lqarx instruction.
6723         On little endian systems, swap the hi/lo registers after the lqarx
6724         instruction.
6725         (load_lockedpti): Use indexed_or_indirect_operand predicate to
6726         insure the address is valid for the lqarx instruction.
6727         (store_conditionalti): Insure that the address is a proper indexed
6728         or indirect address for the stqcrx. instruction.  On little endian
6729         systems, swap the hi/lo registers before doing the stqcrx.
6730         instruction.
6731         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
6732         insure the address is valid for the stqcrx. instruction.
6733
6734         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
6735         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
6736         type of quad memory support is available.
6737
6738 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
6739
6740         PR regression/59915
6741         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
6742         there is a danger of looping.
6743
6744 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
6745
6746         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6747         force flag_ira_loop_pressure if set via command line.
6748
6749 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
6750
6751         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
6752         (ashr_simd): New builtin handling DI mode.
6753         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
6754         (aarch64_sshr_simddi): New match pattern.
6755         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
6756         (vshrd_n_s64): Likewise.
6757         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
6758
6759 2014-01-23  Nick Clifton  <nickc@redhat.com>
6760
6761         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
6762         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
6763         favour of mcu specific scripts.
6764         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
6765         430x multilibs.
6766
6767 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
6768             Alex Velenko  <Alex.Velenko@arm.com>
6769
6770         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
6771         (vaddv_s16): Likewise.
6772         (vaddv_s32): Likewise.
6773         (vaddv_u8): Likewise.
6774         (vaddv_u16): Likewise.
6775         (vaddv_u32): Likewise.
6776         (vaddvq_s8): Likewise.
6777         (vaddvq_s16): Likewise.
6778         (vaddvq_s32): Likewise.
6779         (vaddvq_s64): Likewise.
6780         (vaddvq_u8): Likewise.
6781         (vaddvq_u16): Likewise.
6782         (vaddvq_u32): Likewise.
6783         (vaddvq_u64): Likewise.
6784         (vaddv_f32): Likewise.
6785         (vaddvq_f32): Likewise.
6786         (vaddvq_f64): Likewise.
6787         (vmaxv_f32): Likewise.
6788         (vmaxv_s8): Likewise.
6789         (vmaxv_s16): Likewise.
6790         (vmaxv_s32): Likewise.
6791         (vmaxv_u8): Likewise.
6792         (vmaxv_u16): Likewise.
6793         (vmaxv_u32): Likewise.
6794         (vmaxvq_f32): Likewise.
6795         (vmaxvq_f64): Likewise.
6796         (vmaxvq_s8): Likewise.
6797         (vmaxvq_s16): Likewise.
6798         (vmaxvq_s32): Likewise.
6799         (vmaxvq_u8): Likewise.
6800         (vmaxvq_u16): Likewise.
6801         (vmaxvq_u32): Likewise.
6802         (vmaxnmv_f32): Likewise.
6803         (vmaxnmvq_f32): Likewise.
6804         (vmaxnmvq_f64): Likewise.
6805         (vminv_f32): Likewise.
6806         (vminv_s8): Likewise.
6807         (vminv_s16): Likewise.
6808         (vminv_s32): Likewise.
6809         (vminv_u8): Likewise.
6810         (vminv_u16): Likewise.
6811         (vminv_u32): Likewise.
6812         (vminvq_f32): Likewise.
6813         (vminvq_f64): Likewise.
6814         (vminvq_s8): Likewise.
6815         (vminvq_s16): Likewise.
6816         (vminvq_s32): Likewise.
6817         (vminvq_u8): Likewise.
6818         (vminvq_u16): Likewise.
6819         (vminvq_u32): Likewise.
6820         (vminnmv_f32): Likewise.
6821         (vminnmvq_f32): Likewise.
6822         (vminnmvq_f64): Likewise.
6823
6824 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
6825
6826         * config/aarch64/aarch64-simd.md
6827         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
6828         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
6829         (*aarch64_mul3_elt<mode>): Likewise.
6830         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
6831         (*aarch64_mul3_elt_to_64v2df): Likewise.
6832         (*aarch64_mla_elt<mode>): Likewise.
6833         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
6834         (*aarch64_mls_elt<mode>): Likewise.
6835         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
6836         (*aarch64_fma4_elt<mode>): Likewise.
6837         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
6838         (*aarch64_fma4_elt_to_64v2df): Likewise.
6839         (*aarch64_fnma4_elt<mode>): Likewise.
6840         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
6841         (*aarch64_fnma4_elt_to_64v2df): Likewise.
6842         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
6843         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
6844         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
6845         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
6846         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
6847         (aarch64_sqdmull_lane<mode>_internal): Likewise.
6848         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
6849
6850 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
6851
6852         * config/aarch64/aarch64-simd.md
6853         (aarch64_be_checked_get_lane<mode>): New define_expand.
6854         * config/aarch64/aarch64-simd-builtins.def
6855         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
6856         New builtin definition.
6857         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
6858         Use new safe be builtin.
6859
6860 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
6861
6862         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
6863         New define_insn.
6864         (aarch64_be_st1<mode>): Likewise.
6865         (aarch_ld1<VALL:mode>): Define_expand modified.
6866         (aarch_st1<VALL:mode>): Likewise.
6867         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
6868         (UNSPEC_ST1): Likewise.
6869
6870 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
6871
6872         * config/microblaze/microblaze.md: Add trap insn and attribute
6873
6874 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
6875
6876         PR preprocessor/58580
6877         * input.h (location_get_source_line): Take an additional line_size
6878         parameter.
6879         (void diagnostics_file_cache_fini): Declare new function.
6880         * input.c (struct fcache): New type.
6881         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
6882         New static constants.
6883         (diagnostic_file_cache_init, total_lines_num)
6884         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
6885         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
6886         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
6887         (get_next_line, read_next_line, goto_next_line, read_line_num):
6888         New static function definitions.
6889         (diagnostic_file_cache_fini): New function.
6890         (location_get_source_line): Take an additional output line_len
6891         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
6892         read_line_num.
6893         * diagnostic.c (diagnostic_finish): Call
6894         diagnostic_file_cache_fini.
6895         (adjust_line): Take an additional input parameter for the length
6896         of the line, rather than calculating it with strlen.
6897         (diagnostic_show_locus): Adjust the use of
6898         location_get_source_line and adjust_line with respect to their new
6899         signature.  While displaying a line now, do not stop at the first
6900         null byte.  Rather, display the zero byte as a space and keep
6901         going until we reach the size of the line.
6902         * Makefile.in: Add vec.o to OBJS-libcommon
6903
6904 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
6905             Ilya Tocar     <ilya.tocar@intel.com>
6906
6907         * config/i386/avx512fintrin.h (_mm512_kmov): New.
6908         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
6909         (__builtin_ia32_kmov16): Ditto.
6910         * config/i386/i386.md (UNSPEC_KMOV): New.
6911         (kmovw): Ditto.
6912
6913 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
6914
6915         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
6916         (_mm512_storeu_si512): Ditto.
6917
6918 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
6919
6920         PR target/52125
6921         * rtl.h (get_referenced_operands): Declare.
6922         * recog.c (get_referenced_operands): New function.
6923         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
6924         operands have been referenced when recording LO_SUM references.
6925
6926 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
6927
6928         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
6929
6930 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
6931
6932         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
6933         Enable for generic and recent AMD targets.
6934
6935 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
6936
6937         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
6938         ARG_SIZE note when adjustment was eliminated.
6939
6940 2014-01-22  Jeff Law  <law@redhat.com>
6941
6942         PR tree-optimization/59597
6943         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
6944         in file.  Accept new argument REGISTERING and use it to modify
6945         dump output appropriately.
6946         (register_jump_thread): Corresponding changes.
6947         (mark_threaded_blocks): Reinstate code to cancel unprofitable
6948         thread paths involving joiner blocks.  Add code to dump cancelled
6949         jump threading paths.
6950
6951 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
6952
6953         PR rtl-optimization/59477
6954         * lra-constraints.c (inherit_in_ebb): Process call for living hard
6955         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
6956
6957 2014-01-22  Tom Tromey  <tromey@redhat.com>
6958
6959         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
6960         PARAMS.
6961         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
6962
6963 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
6964
6965         PR rtl-optimization/59896
6966         * lra-constraints.c (process_alt_operands): Check unused note for
6967         matched operands of insn with no output reloads.
6968
6969 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
6970
6971         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
6972         (mips_move_from_gpr_cost): Likewise.
6973
6974 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
6975
6976         PR rtl-optimization/59858
6977         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
6978         ira_class_hard_regs_num.
6979         (process_alt_operands): Increase reject for dying matched operand.
6980
6981 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
6982
6983         PR target/59003
6984         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
6985         smaller than size, perform several stores or loads and stores
6986         at dst + count - size to store or copy all of size bytes, rather
6987         than just last modesize bytes.
6988
6989 2014-01-20  DJ Delorie  <dj@redhat.com>
6990
6991         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
6992         that CLOBBERs are REGs before propogating their values.
6993
6994 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
6995
6996         PR middle-end/59789
6997         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
6998         (cgraph_inline_failed_type): New function.
6999         * cgraph.h (DEFCIFCODE): Add type.
7000         (cgraph_inline_failed_type_t): New enum.
7001         (cgraph_inline_failed_type): New prototype.
7002         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
7003         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
7004         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
7005         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
7006         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
7007         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
7008         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
7009         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
7010         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
7011         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
7012         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
7013         OPTIMIZATION_MISMATCH.
7014         * tree-inline.c (expand_call_inline): Emit errors during
7015         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
7016
7017 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
7018
7019         PR target/59685
7020         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
7021         mode attribute in insn output.
7022
7023 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
7024
7025         * output.h (output_constant): Delete.
7026         * varasm.c (output_constant): Make private.
7027
7028 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
7029
7030         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
7031
7032 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
7033
7034         PR middle-end/59860
7035         * tree.h (fold_builtin_strcat): New prototype.
7036         * builtins.c (fold_builtin_strcat): No longer static.  Add len
7037         argument, if non-NULL, don't call c_strlen.  Optimize
7038         directly into __builtin_memcpy instead of __builtin_strcpy.
7039         (fold_builtin_2): Adjust fold_builtin_strcat caller.
7040         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
7041
7042 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
7043
7044         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
7045         for SImode_address_operand operands, having only a REG argument.
7046
7047 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7048
7049         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
7050         loader name using mbig-endian.
7051         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
7052
7053 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
7054
7055         * doc/invoke.texi (-march): Clarify documentation for AArch64.
7056         (-mtune): Likewise.
7057         (-mcpu): Likewise.
7058
7059 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
7060
7061         * config/aarch64/aarch64-protos.h
7062         (aarch64_cannot_change_mode_class_ptr): Declare.
7063         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
7064         aarch64_cannot_change_mode_class_ptr): New.
7065         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
7066         backend hook aarch64_cannot_change_mode_class.
7067
7068 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
7069
7070         * common/config/aarch64/aarch64-common.c
7071         (aarch64_handle_option): Don't handle any option order logic here.
7072         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
7073         selected_cpu, warn on architecture version mismatch.
7074         (aarch64_override_options): Fix parsing order for option strings.
7075
7076 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7077             Iain Sandoe  <iain@codesourcery.com>
7078
7079         PR bootstrap/59496
7080         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
7081         warning.  Amend comment to reflect current functionality.
7082
7083 2014-01-20  Richard Biener  <rguenther@suse.de>
7084
7085         PR middle-end/59860
7086         * builtins.c (fold_builtin_strcat): Remove case better handled
7087         by tree-ssa-strlen.c.
7088
7089 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
7090
7091         * config/aarch64/aarch64.opt
7092         (mcpu, march, mtune): Make case-insensitive.
7093
7094 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
7095
7096         PR target/59880
7097         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
7098         if operands[1] is a REG or ZERO_EXTEND of a REG.
7099
7100 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
7101
7102         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
7103
7104 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
7105
7106         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
7107         long non-pic millicode calls.
7108
7109 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7110
7111         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
7112
7113 2014-01-19  Kito Cheng  <kito@0xlab.org>
7114
7115         * builtins.c (expand_movstr): Check movstr expand done or fail.
7116
7117 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
7118             H.J. Lu  <hongjiu.lu@intel.com>
7119
7120         PR target/59379
7121         * config/i386/i386.md (*lea<mode>): Zero-extend return register
7122         to DImode for zero-extended addresses.
7123
7124 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
7125
7126         PR rtl-optimization/57763
7127         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
7128         on the new indirect jump_insn and increment LABEL_NUSES (label).
7129
7130 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
7131
7132         PR bootstrap/59580
7133         PR bootstrap/59583
7134         * config.gcc (x86_archs): New variable.
7135         (x86_64_archs): Likewise.
7136         (x86_cpus): Likewise.
7137         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
7138         --with-arch/--with-cpu= options.
7139         Support --with-arch=/--with-cpu={nehalem,westmere,
7140         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
7141
7142 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
7143
7144         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
7145         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
7146
7147 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
7148
7149         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
7150
7151 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
7152
7153         PR target/58944
7154         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
7155         clear cpp_get_options (parse_in)->warn_unused_macros for
7156         ix86_target_macros_internal with cpp_define.
7157
7158 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
7159
7160         * jump.c (delete_related_insns): Keep (use (insn))s.
7161         * reorg.c (redundant_insn): Check for barriers too.
7162
7163 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
7164
7165         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
7166
7167 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
7168
7169         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
7170         call to $$dyncall when TARGET_LONG_CALLS is true.
7171
7172 2014-01-17  Jeff Law  <law@redhat.com>
7173
7174         * ree.c (combine_set_extension): Temporarily disable test for
7175         changing number of hard registers.
7176
7177 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
7178
7179         PR middle-end/58125
7180         * ipa-inline-analysis.c (inline_free_summary):
7181         Do not free summary of aliases.
7182
7183 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
7184
7185         PR middle-end/59706
7186         * gimplify.c (gimplify_expr): Use create_tmp_var
7187         instead of create_tmp_var_raw.  If cond doesn't have
7188         integral type, don't add the IFN_ANNOTATE builtin at all.
7189
7190 2014-01-17  Martin Jambor  <mjambor@suse.cz>
7191
7192         PR ipa/59736
7193         * ipa-cp.c (prev_edge_clone): New variable.
7194         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
7195         Also resize prev_edge_clone vector.
7196         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
7197         (ipcp_edge_removal_hook): New function.
7198         (ipcp_driver): Register ipcp_edge_removal_hook.
7199
7200 2014-01-17  Andrew Pinski  <apinski@cavium.com>
7201             Steve Ellcey  <sellcey@mips.com>
7202
7203         PR target/59462
7204         * config/mips/mips.c (mips_print_operand): Check operand mode instead
7205         of operator mode.
7206
7207 2014-01-17  Jeff Law  <law@redhat.com>
7208
7209         PR middle-end/57904
7210         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
7211         so that pass_ccp runs first.
7212
7213 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
7214
7215         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
7216         (ix86_adjust_cost): Use !TARGET_XXX.
7217         (do_reorder_for_imul): Likewise.
7218         (swap_top_of_ready_list): Likewise.
7219         (ix86_sched_reorder): Likewise.
7220
7221 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
7222
7223         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7224         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
7225         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
7226         (intel_memset): New.  Duplicate slm_memset.
7227         (intel_cost): New.  Duplicate slm_cost.
7228         (m_INTEL): New macro.
7229         (processor_target_table): Add "intel".
7230         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
7231         with PROCESSOR_INTEL for "intel".
7232         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
7233         PROCESSOR_SILVERMONT.
7234         (ix86_issue_rate): Likewise.
7235         (ix86_adjust_cost): Likewise.
7236         (ia32_multipass_dfa_lookahead): Likewise.
7237         (swap_top_of_ready_list): Likewise.
7238         (ix86_sched_reorder): Likewise.
7239         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
7240         instead of TARGET_OPT_AGU.
7241         * config/i386/i386.h (TARGET_INTEL): New.
7242         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
7243         (processor_type): Add PROCESSOR_INTEL.
7244         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
7245         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
7246
7247 2014-01-17  Marek Polacek  <polacek@redhat.com>
7248
7249         PR c/58346
7250         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
7251         size is zero.
7252
7253 2014-01-17  Richard Biener  <rguenther@suse.de>
7254
7255         PR tree-optimization/46590
7256         * opts.c (default_options_table): Add entries for
7257         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
7258         all enabled at -O1 but not for -Og.
7259         * common.opt (fbranch-count-reg): Remove Init(1).
7260         (fmove-loop-invariants): Likewise.
7261         (ftree-pta): Likewise.
7262
7263 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
7264
7265         * config/i386/i386.c (ix86_data_alignment): For compatibility with
7266         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
7267         decls to at least the GCC 4.8 used alignments.
7268
7269         PR fortran/59440
7270         * tree-nested.c (convert_nonlocal_reference_stmt,
7271         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
7272         of GIMPLE_BIND stmts, adjust associated decls.
7273
7274 2014-01-17  Richard Biener  <rguenther@suse.de>
7275
7276         PR tree-optimization/46590
7277         * vec.h (vec<>::bseach): New member function implementing
7278         binary search according to C89 bsearch.
7279         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
7280         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
7281         bitmap pointer again.  Make accesses_in_loop a flat array.
7282         (mem_ref_obstack): New global.
7283         (outermost_indep_loop): Adjust for mem_ref->stored changes.
7284         (mark_ref_stored): Likewise.
7285         (ref_indep_loop_p_2): Likewise.
7286         (set_ref_stored_in_loop): New helper function.
7287         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
7288         (memref_free): Adjust.
7289         (record_mem_ref_loc): Simplify.
7290         (gather_mem_refs_stmt): Adjust.
7291         (sort_locs_in_loop_postorder_cmp): New function.
7292         (analyze_memory_references): Sort accesses_in_loop after
7293         loop postorder number.
7294         (find_ref_loc_in_loop_cmp): New function.
7295         (for_all_locs_in_loop): Find relevant cluster of locs in
7296         accesses_in_loop and iterate without recursion.
7297         (execute_sm): Avoid uninit warning.
7298         (struct ref_always_accessed): Simplify.
7299         (ref_always_accessed::operator ()): Likewise.
7300         (ref_always_accessed_p): Likewise.
7301         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
7302         loop postorder numbers here.
7303         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
7304         numbers.
7305
7306 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
7307
7308         PR c++/57945
7309         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
7310         on decls for which assemble_alias has been called.
7311
7312 2014-01-17  Nick Clifton  <nickc@redhat.com>
7313
7314         * config/msp430/msp430.opt: (mcpu): New option.
7315         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
7316         (msp430_option_override): Parse target_cpu.  If the MCU name
7317         matches a generic string, clear target_mcu.
7318         (msp430_attr): Allow numeric interrupt values up to 63.
7319         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
7320         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
7321         option.
7322         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
7323         Add mcpu matches.
7324         * config/msp430/msp430.md (popm): Use %J rather than %I.
7325         (addsi3): Use msp430_nonimmediate_operand for operand 2.
7326         (addhi_cy_i): Use immediate_operand for operand 2.
7327         * doc/invoke.texi: Document -mcpu option.
7328
7329 2014-01-17  Richard Biener  <rguenther@suse.de>
7330
7331         PR rtl-optimization/38518
7332         * df.h (df_analyze_loop): Declare.
7333         * df-core.c: Include cfgloop.h.
7334         (df_analyze_1): Split out main part of df_analyze.
7335         (df_analyze): Adjust.
7336         (loop_inverted_post_order_compute): New function.
7337         (loop_post_order_compute): Likewise.
7338         (df_analyze_loop): New function avoiding whole-function
7339         postorder computes.
7340         * loop-invariant.c (find_defs): Use df_analyze_loop.
7341         (find_invariants): Adjust.
7342         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
7343
7344 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7345
7346         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
7347         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
7348
7349 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
7350
7351         * ipa-ref.c (ipa_remove_stmt_references): Fix references
7352         traversal when removing references.
7353
7354 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
7355
7356         PR ipa/59775
7357         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
7358
7359 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
7360
7361         PR middle-end/56791
7362         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
7363         pushing a reload for an autoinc when we had previously reloaded an
7364         inner part of the address.
7365
7366 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
7367
7368         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
7369         field.
7370         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
7371         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
7372         when not giving up or versioning for alias only because of
7373         loop->safelen.
7374         (vect_analyze_data_ref_dependences): Set to true.
7375         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
7376         is a GIMPLE_PHI.
7377         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
7378         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
7379         to the condition.
7380
7381         PR middle-end/58344
7382         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
7383
7384         PR target/59839
7385         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
7386         operand 0 predicate for gathers, use a new pseudo as subtarget.
7387
7388 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
7389
7390         PR middle-end/59609
7391         * lra-constraints.c (process_alt_operands): Add printing debug info.
7392         Check absence of input/output reloads for matched operands too.
7393
7394 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
7395
7396         PR rtl-optimization/59835
7397         * ira.c (ira_init_register_move_cost): Increase cost for
7398         impossible modes.
7399
7400 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
7401
7402         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
7403
7404 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
7405
7406         PR target/59780
7407         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
7408         non-register objects.  Use gen_(high/low)part more consistently.
7409         Fix assertions.
7410
7411 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
7412
7413         PR target/59844
7414         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
7415         endian support, remove tests for WORDS_BIG_ENDIAN.
7416         (p8_mfvsrd_3_<mode>): Likewise.
7417         (reload_gpr_from_vsx<mode>): Likewise.
7418         (reload_gpr_from_vsxsf): Likewise.
7419         (p8_mfvsrd_4_disf): Likewise.
7420
7421 2014-01-16  Richard Biener  <rguenther@suse.de>
7422
7423         PR rtl-optimization/46590
7424         * lcm.c (compute_antinout_edge): Use postorder iteration.
7425         (compute_laterin): Use inverted postorder iteration.
7426
7427 2014-01-16  Nick Clifton  <nickc@redhat.com>
7428
7429         PR middle-end/28865
7430         * varasm.c (output_constant): Return the number of bytes actually
7431         emitted.
7432         (output_constructor_array_range): Update the field size with the
7433         number of bytes emitted by output_constant.
7434         (output_constructor_regular_field): Likewise.  Also do not
7435         complain if the total number of bytes emitted is now greater
7436         than the expected fieldpos.
7437         * output.h (output_constant): Update prototype and descriptive comment.
7438
7439 2014-01-16  Marek Polacek  <polacek@redhat.com>
7440
7441         PR middle-end/59827
7442         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
7443         it is error_mark_node.
7444
7445 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
7446
7447         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
7448         VALID_AVX256_REG_OR_OI_MODE.
7449
7450 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
7451
7452         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
7453         current procedure should be profiled.
7454
7455 2014-01-15  Andrew Pinski  <apinski@cavium.com>
7456
7457         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
7458         of moving from/to the STACK_REG register class.
7459
7460 2014-01-15  Richard Henderson  <rth@redhat.com>
7461
7462         PR debug/54694
7463         * reginfo.c (global_regs_decl): Globalize.
7464         * rtl.h (global_regs_decl): Declare.
7465         * ira.c (do_reload): Diagnose frame_pointer_needed and it
7466         reserved via global_regs.
7467
7468 2014-01-15  Teresa Johnson  <tejohnson@google.com>
7469
7470         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
7471
7472 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
7473
7474         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
7475         and vmulosh rather than call gen_vec_widen_smult_*.
7476         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
7477         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
7478         (vec_widen_smult_even_v16qi): Likewise.
7479         (vec_widen_umult_even_v8hi): Likewise.
7480         (vec_widen_smult_even_v8hi): Likewise.
7481         (vec_widen_umult_odd_v16qi): Likewise.
7482         (vec_widen_smult_odd_v16qi): Likewise.
7483         (vec_widen_umult_odd_v8hi): Likewise.
7484         (vec_widen_smult_odd_v8hi): Likewise.
7485         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
7486         vmuloub rather than call gen_vec_widen_umult_*.
7487         (vec_widen_umult_lo_v16qi): Likewise.
7488         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
7489         vmulosb rather than call gen_vec_widen_smult_*.
7490         (vec_widen_smult_lo_v16qi): Likewise.
7491         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
7492         rather than call gen_vec_widen_umult_*.
7493         (vec_widen_umult_lo_v8hi): Likewise.
7494         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
7495         rather than call gen_vec_widen_smult_*.
7496         (vec_widen_smult_lo_v8hi): Likewise.
7497
7498 2014-01-15  Jeff Law  <law@redhat.com>
7499
7500         PR tree-optimization/59747
7501         * ree.c (find_and_remove_re): Properly handle case where a second
7502         eliminated extension requires widening a copy created for elimination
7503         of a prior extension.
7504         (combine_set_extension): Ensure that the number of hard regs needed
7505         for a destination register does not change when we widen it.
7506
7507 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7508
7509         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
7510         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
7511         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
7512         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
7513         (avr-*-rtems*): Likewise.
7514         (bfin*-rtems*): Likewise.
7515         (moxie-*-rtems*): Likewise.
7516         (h8300-*-rtems*): Likewise.
7517         (i[34567]86-*-rtems*): Likewise.
7518         (lm32-*-rtems*): Likewise.
7519         (m32r-*-rtems*): Likewise.
7520         (m68k-*-rtems*): Likewise.
7521         (microblaze*-*-rtems*): Likewise.
7522         (mips*-*-rtems*): Likewise.
7523         (powerpc-*-rtems*): Likewise.
7524         (sh-*-rtems*): Likewise.
7525         (sparc-*-rtems*): Likewise.
7526         (sparc64-*-rtems*): Likewise.
7527         (v850-*-rtems*): Likewise.
7528         (m32c-*-rtems*): Likewise.
7529
7530 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
7531
7532         PR rtl-optimization/59511
7533         * ira.c (ira_init_register_move_cost): Use memory costs for some
7534         cases of register move cost calculations.
7535         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
7536         instead of BB frequency.
7537         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
7538         * lra-assigns.c (find_hard_regno_for): Ditto.
7539
7540 2014-01-15  Richard Biener  <rguenther@suse.de>
7541
7542         PR tree-optimization/59822
7543         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
7544         (vectorizable_load): Use it to hoist defs of uses of invariant
7545         loads out of the loop.
7546
7547 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
7548             Kugan Vivekanandarajah  <kuganv@linaro.org>
7549
7550         PR target/59695
7551         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
7552         truncation.
7553
7554 2014-01-15  Richard Biener  <rguenther@suse.de>
7555
7556         PR rtl-optimization/59802
7557         * lcm.c (compute_available): Use inverted postorder to seed
7558         the initial worklist.
7559
7560 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7561
7562         PR target/59803
7563         * config/s390/s390.c (s390_preferred_reload_class): Don't return
7564         ADDR_REGS for invalid symrefs in non-PIC code.
7565
7566 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
7567
7568         PR other/58712
7569         * builtins.c (determine_block_size): Initialize *probable_max_size
7570         even if len_rtx is CONST_INT.
7571
7572 2014-01-14  Andrew Pinski  <apinski@cavium.com>
7573
7574         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
7575         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
7576         (cortexa53_tunings): Likewise.
7577         (aarch64_sched_issue_rate): New function.
7578         (TARGET_SCHED_ISSUE_RATE): Define.
7579
7580 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
7581
7582         * ira-costs.c (find_costs_and_classes): Add missed
7583         ira_init_register_move_cost_if_necessary.
7584
7585 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
7586
7587         PR target/59787
7588         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
7589
7590 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
7591
7592         PR target/59794
7593         * config/i386/i386.c (type_natural_mode): Add a bool parameter
7594         to indicate if type is used for function return value.  Warn ABI
7595         change if the vector mode isn't available for function return value.
7596         (ix86_function_arg_advance): Pass false to type_natural_mode.
7597         (ix86_function_arg): Likewise.
7598         (ix86_gimplify_va_arg): Likewise.
7599         (function_arg_32): Don't warn ABI change.
7600         (ix86_function_value): Pass true to type_natural_mode.
7601         (ix86_return_in_memory): Likewise.
7602         (ix86_struct_value_rtx): Removed.
7603         (TARGET_STRUCT_VALUE_RTX): Likewise.
7604
7605 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7606
7607         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
7608         converting a conditional jump into a conditional return.
7609
7610 2014-01-14  Richard Biener  <rguenther@suse.de>
7611
7612         PR tree-optimization/58921
7613         PR tree-optimization/59006
7614         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
7615         hoisting invariant stmts.
7616         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
7617         invariant loads on the preheader edge if possible.
7618
7619 2014-01-14  Joey Ye  <joey.ye@arm.com>
7620
7621         * doc/plugin.texi (Building GCC plugins): Update to C++.
7622
7623 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
7624
7625         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
7626         (_mm_rcp28_round_ss): Ditto.
7627         (_mm_rsqrt28_round_sd): Ditto.
7628         (_mm_rsqrt28_round_ss): Ditto.
7629         (_mm_rcp28_sd): Ditto.
7630         (_mm_rcp28_ss): Ditto.
7631         (_mm_rsqrt28_sd): Ditto.
7632         (_mm_rsqrt28_ss): Ditto.
7633         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
7634         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
7635         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
7636         (IX86_BUILTIN_RCP28SD): Ditto.
7637         (IX86_BUILTIN_RCP28SS): Ditto.
7638         (IX86_BUILTIN_RSQRT28SD): Ditto.
7639         (IX86_BUILTIN_RSQRT28SS): Ditto.
7640         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
7641         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
7642         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
7643         (ix86_expand_special_args_builtin): Expand new FTYPE.
7644         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
7645         (srcp14<mode>): Make insn unary.
7646         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
7647         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
7648         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
7649         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
7650         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
7651         Fix rounding: make it SAE only.
7652         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
7653         Ditto.
7654         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
7655         Ditto.
7656         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
7657         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
7658         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
7659         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
7660         (round_saeonly_mask_scalar_operand4): Ditto.
7661         (round_saeonly_mask_scalar_op3): Ditto.
7662         (round_saeonly_mask_scalar_op4): Ditto.
7663
7664 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7665
7666         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7667         Implement -maltivec=be for vec_insert and vec_extract.
7668
7669 2014-01-10  DJ Delorie  <dj@redhat.com>
7670
7671         * config/msp430/msp430.md (call_internal): Don't allow memory
7672         references with SP as the base register.
7673         (call_value_internal): Likewise.
7674         * config/msp430/constraints.md (Yc): New.  For memory references
7675         that don't use SP as a base register.
7676
7677         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
7678         "an integer without a # prefix"
7679         * config/msp430/msp430.md (epilogue_helper): Use it.
7680
7681 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
7682
7683         PR target/59617
7684         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
7685         AVX512F gather builtins.
7686         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
7687         on gather decls with INTEGER_TYPE masktype.
7688         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
7689         directly into the builtin rather than hoisting it before loop.
7690
7691         PR tree-optimization/59387
7692         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
7693         (scev_const_prop): If folded_casts and type has undefined overflow,
7694         use force_gimple_operand instead of force_gimple_operand_gsi and
7695         for each added stmt if it is assign with
7696         arith_code_with_undefined_signed_overflow, call
7697         rewrite_to_defined_overflow.
7698         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
7699         gimple-fold.h instead.
7700         (arith_code_with_undefined_signed_overflow,
7701         rewrite_to_defined_overflow): Moved to ...
7702         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
7703         rewrite_to_defined_overflow): ... here.  No longer static.
7704         Include gimplify-me.h.
7705         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
7706         rewrite_to_defined_overflow): New prototypes.
7707
7708 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7709
7710         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
7711
7712 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
7713
7714         * builtins.c (get_object_alignment_2): Minor tweak.
7715         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
7716
7717 2014-01-13  Christian Bruel  <christian.bruel@st.com>
7718
7719         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
7720         optimized non constant lengths.
7721
7722 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
7723
7724         PR libgomp/59194
7725         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
7726         load as __atomic_load_N if possible.
7727
7728 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
7729
7730         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
7731         target parameter.
7732         (rs6000_expand_builtin): Adjust call.
7733
7734 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
7735
7736         PR target/58115
7737         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
7738         * config/rs6000/rs6000.c: Include target-globals.h.
7739         (rs6000_set_current_function): Instead of doing target_reinit
7740         unconditionally, use save_target_globals_default_opts and
7741         restore_target_globals.
7742
7743         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
7744         FPSCR.
7745         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
7746         (rs6000_expand_builtin): Handle mffs and mtfsf.
7747         (rs6000_init_builtins): Define mffs and mtfsf.
7748         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
7749         (rs6000_mffs): New pattern.
7750         (rs6000_mtfsf): New pattern.
7751
7752 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
7753
7754         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
7755         Start narrowing with START.  Apply candidate-use pair
7756         and check overall cost in narrowing.
7757         (iv_ca_prune): Pass new argument.
7758
7759 2014-01-10  Jeff Law  <law@redhat.com>
7760
7761         PR middle-end/59743
7762         * ree.c (combine_reaching_defs): Ensure the defining statement
7763         occurs before the extension when optimizing extensions with
7764         different source and destination hard registers.
7765
7766 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
7767
7768         PR ipa/58585
7769         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
7770         vtables into the type inheritance graph.
7771
7772 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
7773
7774         PR rtl-optimization/59754
7775         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
7776         modes in the REGNO != REGNO case.
7777
7778 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7779
7780         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
7781
7782 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
7783
7784         PR tree-optimization/59745
7785         * tree-predcom.c (tree_predictive_commoning_loop): Call
7786         free_affine_expand_cache if giving up because components is NULL.
7787
7788         * target-globals.c (save_target_globals): Allocate < 4KB structs using
7789         GC in payload of target_globals struct instead of allocating them on
7790         the heap and the larger structs separately using GC.
7791         * target-globals.h (struct target_globals): Make regs, hard_regs,
7792         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
7793         of GTY((skip)) and change type to void *.
7794         (reset_target_globals): Cast loads from those fields to corresponding
7795         types.
7796
7797 2014-01-10  Steve Ellcey  <sellcey@mips.com>
7798
7799         PR plugins/59335
7800         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
7801         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
7802         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
7803
7804 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
7805
7806         PR target/59744
7807         * aarch64-modes.def (CC_Zmode): New flags mode.
7808         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
7809         represents an equality.
7810         (aarch64_get_condition_code): Handle CC_Zmode.
7811         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
7812
7813 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7814
7815         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
7816         extraction in good case.
7817
7818 2014-01-10  Richard Biener  <rguenther@suse.de>
7819
7820         PR tree-optimization/59374
7821         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
7822         checking after SLP discovery.  Mark stmts not participating
7823         in any SLP instance properly.
7824
7825 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7826
7827         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
7828         when handling a SET rtx.
7829
7830 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7831
7832         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
7833         (cortex-a57): Likewise.
7834         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
7835
7836 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7837
7838         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
7839         non-iwmmxt builtins.
7840
7841 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
7842
7843         PR ipa/58252
7844         PR ipa/59226
7845         * ipa-devirt.c record_target_from_binfo): Take as argument
7846         stack of binfos and lookup matching one for virtual inheritance.
7847         (possible_polymorphic_call_targets_1): Update.
7848
7849 2014-01-10  Huacai Chen  <chenhc@lemote.com>
7850
7851         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
7852         kernel strings for Loongson-2E/2F/3A.
7853
7854 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
7855
7856         PR middle-end/59670
7857         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
7858         is_gimple_call before calling gimple_call_internal_p.
7859
7860 2014-01-09  Steve Ellcey  <sellcey@mips.com>
7861
7862         * Makefile.in (TREE_FLOW_H): Remove.
7863         (TREE_SSA_H): Add file names from tree-flow.h.
7864         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
7865         * tree.h: Remove tree-flow.h reference.
7866         * hash-table.h: Remove tree-flow.h reference.
7867         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
7868         reference with tree-ssa-loop.h.
7869
7870 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7871
7872         * doc/invoke.texi: Add -maltivec={be,le} options, and document
7873         default element-order behavior for -maltivec.
7874         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
7875         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
7876         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
7877         when targeting big endian, at least for now.
7878         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
7879
7880 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
7881
7882         PR middle-end/47735
7883         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
7884         var satisfies use_register_for_decl, just take into account type
7885         alignment, rather than decl alignment.
7886
7887         PR tree-optimization/59622
7888         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
7889         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
7890         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
7891         Don't devirtualize for inplace at all.  For targets.length () == 1,
7892         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
7893
7894 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
7895
7896         * config/i386/i386.md (cpu): Remove the unused btver1.
7897
7898 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
7899
7900         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
7901
7902 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
7903
7904         PR target/58115
7905         * tree-core.h (struct target_globals): New forward declaration.
7906         (struct tree_target_option): Add globals field.
7907         * tree.h (TREE_TARGET_GLOBALS): Define.
7908         (prepare_target_option_nodes_for_pch): New prototype.
7909         * target-globals.h (struct target_globals): Define even if
7910         !SWITCHABLE_TARGET.
7911         * tree.c (prepare_target_option_node_for_pch,
7912         prepare_target_option_nodes_for_pch): New functions.
7913         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
7914         * config/i386/i386.c: Include target-globals.h.
7915         (ix86_set_current_function): Instead of doing target_reinit
7916         unconditionally, use save_target_globals_default_opts and
7917         restore_target_globals.
7918
7919 2014-01-09  Richard Biener  <rguenther@suse.de>
7920
7921         PR tree-optimization/59715
7922         * tree-cfg.h (split_critical_edges): Declare.
7923         * tree-cfg.c (split_critical_edges): Export.
7924         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
7925
7926 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
7927
7928         * cfgexpand.c (expand_stack_vars): Optionally disable
7929         asan stack protection.
7930         (expand_used_vars): Likewise.
7931         (partition_stack_vars): Likewise.
7932         * asan.c (asan_emit_stack_protection): Optionally disable
7933         after return stack usage.
7934         (instrument_derefs): Optionally disable memory access instrumentation.
7935         (instrument_builtin_call): Likewise.
7936         (instrument_strlen_call): Likewise.
7937         (asan_protect_global): Optionally disable global variables protection.
7938         * doc/invoke.texi: Added doc for new options.
7939         * params.def: Added new options.
7940         * params.h: Likewise.
7941
7942 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
7943
7944         PR rtl-optimization/59724
7945         * ifcvt.c (cond_exec_process_if_block): Don't call
7946         flow_find_head_matching_sequence with 0 longest_match.
7947         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
7948         non-active insns if !stop_after.
7949         (try_head_merge_bb): Revert 2014-01-07 changes.
7950
7951 2014-01-08  Jeff Law  <law@redhat.com>
7952
7953         * ree.c (get_sub_rtx): New function, extracted from...
7954         (merge_def_and_ext): Here.
7955         (combine_reaching_defs): Use get_sub_rtx.
7956
7957 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
7958
7959         * cgraph.h (varpool_variable_node): Do not choke on null node.
7960
7961 2014-01-08  Catherine Moore  <clm@codesourcery.com>
7962
7963         * config/mips/mips.md (simple_return): Attempt to use JRC
7964         for microMIPS.
7965         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
7966
7967 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
7968
7969         PR rtl-optimization/59137
7970         * reorg.c (steal_delay_list_from_target): Call update_block for
7971         elided insns.
7972         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
7973
7974 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7975
7976         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7977         two duplicate entries.
7978
7979 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
7980
7981         Revert:
7982         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
7983
7984         * config/mips/mips.c (mips_truncated_op_cost): New function.
7985         (mips_rtx_costs): Adjust test for BADDU.
7986         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
7987
7988         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
7989
7990         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
7991         (*baddu_si): ...this new pattern.
7992
7993 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
7994
7995         PR ipa/59722
7996         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
7997
7998 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7999
8000         PR middle-end/57748
8001         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
8002         inner_reference_p.
8003         (expand_expr, expand_normal): Adjust.
8004         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
8005         inner_reference_p. Use inner_reference_p to expand inner references.
8006         (store_expr): Adjust.
8007         * cfgexpand.c (expand_call_stmt): Adjust.
8008
8009 2014-01-08  Rong Xu  <xur@google.com>
8010
8011         * gcov-io.c (gcov_var): Move from gcov-io.h.
8012         (gcov_position): Ditto.
8013         (gcov_is_error): Ditto.
8014         (gcov_rewrite): Ditto.
8015         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
8016         only part to libgcc/libgcov.h.
8017
8018 2014-01-08  Marek Polacek  <polacek@redhat.com>
8019
8020         PR middle-end/59669
8021         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
8022
8023 2014-01-08  Marek Polacek  <polacek@redhat.com>
8024
8025         PR sanitizer/59667
8026         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
8027
8028 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
8029
8030         PR rtl-optimization/59649
8031         * stor-layout.c (get_mode_bounds): For BImode return
8032         0 and STORE_FLAG_VALUE.
8033
8034 2014-01-08  Richard Biener  <rguenther@suse.de>
8035
8036         PR middle-end/59630
8037         * gimple.h (is_gimple_builtin_call): Remove.
8038         (gimple_builtin_call_types_compatible_p): New.
8039         (gimple_call_builtin_p): New overload.
8040         * gimple.c (is_gimple_builtin_call): Remove.
8041         (validate_call): Rename to ...
8042         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
8043         check return types.
8044         (validate_type): New static function.
8045         (gimple_call_builtin_p): New overload and adjust.
8046         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
8047         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
8048         (gimple_fold_stmt_to_constant_1): Likewise.
8049         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
8050
8051 2014-01-08  Richard Biener  <rguenther@suse.de>
8052
8053         PR middle-end/59471
8054         * gimplify.c (gimplify_expr): Gimplify register-register type
8055         VIEW_CONVERT_EXPRs to separate stmts.
8056
8057 2014-01-07  Jeff Law  <law@redhat.com>
8058
8059         PR middle-end/53623
8060         * ree.c (combine_set_extension): Handle case where source
8061         and destination registers in an extension insn are different.
8062         (combine_reaching_defs): Allow source and destination registers
8063         in extension to be different under limited circumstances.
8064         (add_removable_extension): Remove restriction that the
8065         source and destination registers in the extension are the same.
8066         (find_and_remove_re): Emit a copy from the extension's
8067         destination to its source after the defining insn if
8068         the source and destination registers are different.
8069
8070         PR middle-end/59285
8071         * ifcvt.c (merge_if_block): If we are merging a block with more than
8072         one successor with a block with no successors, remove any BARRIER
8073         after the second block.
8074
8075 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
8076
8077         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
8078
8079 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
8080
8081         PR target/59652
8082         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
8083         for 14-bit register offsets when INT14_OK_STRICT is false.
8084
8085 2014-01-07  Roland Stigge  <stigge@antcom.de>
8086             Michael Meissner  <meissner@linux.vnet.ibm.com>
8087
8088         PR 57386/target
8089         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8090         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
8091
8092 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
8093
8094         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
8095         -mcpu.
8096
8097 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
8098
8099         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
8100         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
8101         rtx is const0_rtx or not.
8102
8103 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
8104
8105         PR target/58115
8106         * target-globals.c (save_target_globals): Remove this_fn_optab
8107         handling.
8108         * toplev.c: Include optabs.h.
8109         (target_reinit): Temporarily restore the global options if another
8110         set of options are in force.
8111
8112 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
8113
8114         PR rtl-optimization/58668
8115         * cfgcleanup.c (flow_find_cross_jump): Don't count
8116         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
8117         to determine what is counted.
8118         (flow_find_head_matching_sequence): Use active_insn_p to determine
8119         what is counted.
8120         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
8121         counting change.
8122         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
8123         determine what is counted.
8124
8125         PR tree-optimization/59643
8126         * tree-predcom.c (split_data_refs_to_components): If one dr is
8127         read and one write, determine_offset fails and the write isn't
8128         in the bad component, just put the read into the bad component.
8129
8130 2014-01-07  Mike Stump  <mikestump@comcast.net>
8131             Jakub Jelinek  <jakub@redhat.com>
8132
8133         PR pch/59436
8134         * tree-core.h (struct tree_optimization_option): Change optabs
8135         type from unsigned char * to void *.
8136         * optabs.c (init_tree_optimization_optabs): Adjust
8137         TREE_OPTIMIZATION_OPTABS initialization.
8138
8139 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
8140
8141         PR target/59644
8142         * config/i386/i386.h (struct machine_function): Add
8143         no_drap_save_restore field.
8144         * config/i386/i386.c (ix86_save_reg): Use
8145         !cfun->machine->no_drap_save_restore instead of
8146         crtl->stack_realign_needed.
8147         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
8148         this function clears frame_pointer_needed.  Set
8149         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
8150         and DRAP reg is needed.
8151
8152 2014-01-06  Marek Polacek  <polacek@redhat.com>
8153
8154         PR c/57773
8155         * doc/implement-c.texi: Mention that other integer types are
8156         permitted as bit-field types in strictly conforming mode.
8157
8158 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
8159
8160         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
8161         is newly allocated.
8162
8163 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
8164
8165         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
8166
8167 2014-01-06  Martin Jambor  <mjambor@suse.cz>
8168
8169         PR ipa/59008
8170         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
8171         to int.
8172         * ipa-prop.c (ipa_print_node_params): Fix indentation.
8173
8174 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
8175
8176         PR debug/59350
8177         PR debug/59510
8178         * var-tracking.c (add_stores): Preserve the value of the source even if
8179         we don't record the store.
8180
8181 2014-01-06  Terry Guo  <terry.guo@arm.com>
8182
8183         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
8184
8185 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
8186
8187         PR bootstrap/59541
8188         * config/darwin.c (darwin_function_section): Adjust return values to
8189         correspond to optimisation changes made in r206070.
8190
8191 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
8192
8193         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
8194         from prefetch_block tune setting.
8195         (nocona_cost): Correct size of prefetch block to 64.
8196
8197 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
8198
8199         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
8200         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
8201         used to save the static chain register in the computation of the offset
8202         from which the FP registers need to be restored.
8203
8204 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
8205
8206         PR tree-optimization/59519
8207         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
8208         ICE if get_current_def (current_new_name) is already non-NULL, as long
8209         as it is a phi result of some other phi in *new_exit_bb that has
8210         the same argument.
8211
8212         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
8213         or vmovdqu* for misaligned_operand.
8214         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
8215         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
8216         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
8217         aligned_mem for AVX512F masked aligned load and store builtins and for
8218         non-temporal moves.
8219
8220 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
8221
8222         PR tree-optimization/59651
8223         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
8224         Address range for negative step should be added by TYPE_SIZE_UNIT.
8225
8226 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
8227
8228         * config/m68k/m68k.c (handle_move_double): Handle pushes with
8229         overlapping registers also for registers other than the stack pointer.
8230
8231 2014-01-03  Marek Polacek  <polacek@redhat.com>
8232
8233         PR other/59661
8234         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
8235         __builtin_FILE.
8236
8237 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
8238
8239         PR target/59625
8240         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
8241         asm goto as jump.
8242
8243         * config/i386/i386.md (MODE_SIZE): New mode attribute.
8244         (push splitter): Use <P:MODE_SIZE> instead of
8245         GET_MODE_SIZE (<P:MODE>mode).
8246         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
8247         (mov -1, reg peephole2): Likewise.
8248         * config/i386/sse.md (*mov<mode>_internal,
8249         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
8250         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
8251         *<code><mode>3, *andnot<mode>3<mask_name>,
8252         <mask_codefor><code><mode>3<mask_name>): Likewise.
8253         * config/i386/subst.md (mask_mode512bit_condition,
8254         sd_mask_mode512bit_condition): Likewise.
8255
8256 2014-01-02  Xinliang David Li  <davidxl@google.com>
8257
8258         PR tree-optimization/59303
8259         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
8260         (dump_predicates): Better output format.
8261         (pred_equal_p): New function.
8262         (is_neq_relop_p): Ditto.
8263         (is_neq_zero_form_p): Ditto.
8264         (pred_expr_equal_p): Ditto.
8265         (pred_neg_p): Ditto.
8266         (simplify_pred): Ditto.
8267         (simplify_preds_2): Ditto.
8268         (simplify_preds_3): Ditto.
8269         (simplify_preds_4): Ditto.
8270         (simplify_preds): Ditto.
8271         (push_pred): Ditto.
8272         (push_to_worklist): Ditto.
8273         (get_pred_info_from_cmp): Ditto.
8274         (is_degenerated_phi): Ditto.
8275         (normalize_one_pred_1): Ditto.
8276         (normalize_one_pred): Ditto.
8277         (normalize_one_pred_chain): Ditto.
8278         (normalize_preds): Ditto.
8279         (normalize_cond_1): Remove function.
8280         (normalize_cond): Ditto.
8281         (is_gcond_subset_of): Ditto.
8282         (is_subset_of_any): Ditto.
8283         (is_or_set_subset_of): Ditto.
8284         (is_and_set_subset_of): Ditto.
8285         (is_norm_cond_subset_of): Ditto.
8286         (pred_chain_length_cmp): Ditto.
8287         (convert_control_dep_chain_into_preds): Type change.
8288         (find_predicates): Ditto.
8289         (find_def_preds): Ditto.
8290         (destroy_predicates_vecs): Ditto.
8291         (find_matching_predicates_in_rest_chains): Ditto.
8292         (use_pred_not_overlap_with_undef_path_pred): Ditto.
8293         (is_pred_expr_subset): Ditto.
8294         (is_pred_chain_subset_of): Ditto.
8295         (is_included_in): Ditto.
8296         (is_superset_of): Ditto.
8297
8298 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
8299
8300         Update copyright years.
8301
8302 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
8303
8304         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
8305         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
8306         config/arc/arc.md, config/arc/arc.opt,
8307         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
8308         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
8309         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
8310         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
8311         config/linux-protos.h, config/linux.c, config/winnt-c.c,
8312         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
8313         vtable-verify.c, vtable-verify.h: Use the standard form for the
8314         copyright notice.
8315
8316 2014-01-02  Tobias Burnus  <burnus@net-b.de>
8317
8318         * gcc.c (process_command): Update copyright notice dates.
8319         * gcov-dump.c: Ditto.
8320         * gcov.c: Ditto.
8321         * doc/cpp.texi: Bump @copying's copyright year.
8322         * doc/cppinternals.texi: Ditto.
8323         * doc/gcc.texi: Ditto.
8324         * doc/gccint.texi: Ditto.
8325         * doc/gcov.texi: Ditto.
8326         * doc/install.texi: Ditto.
8327         * doc/invoke.texi: Ditto.
8328
8329 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8330
8331         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
8332
8333 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
8334
8335         * config/i386/sse.md (*mov<mode>_internal): Guard
8336         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
8337
8338         PR rtl-optimization/59647
8339         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
8340         new_rtx into UNSIGNED_FLOAT rtxes.
8341 \f
8342 Copyright (C) 2014 Free Software Foundation, Inc.
8343
8344 Copying and distribution of this file, with or without modification,
8345 are permitted in any medium without royalty provided the copyright
8346 notice and this notice are preserved.