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